Which programming language to learn?

in #programming7 years ago

code-horror.gif
What you need to know is that it doesn't matter that much which language you choose, as long as it is possible to achieve with it what you are trying to do.

This article is meant as an general overview. It just scratches the surface of the choices and possibilities that you have.

Language types.

Browser based

Languages that are used for browser-based development. (Websites, Webapps)

Low-Level

Low/High level means how much abstraction they have above machine code. (0's and 1's)

ASM is considered one of the most low level programming languages. You input data directly into computers registers
C and C++ are considered low level but they have some high level elements.

High-Level

C#, Java, Python, Ruby are the most popular examples here.

scripting2.jpg

What is a scripting language.

It is pretty much any language with which you can extend functionality of an existing application.
When creating mods for video games you will likely use LUA or Python, but for example programming in Unity with C# is also considered scripting.

Do you want to program as a hobby or want to be hired?

If it is a hobby or if you want to build something on your own, it is practically up to you. If you are looking to be hired by a company, your options are starting to get limited. On top of knowing the skills it will also help to have some certification.

What do you want to program?

Websites

www-for-user-experience.jpg
The most common approach here is to use HTML + CSS + JavaScript for frontend. (designing the look of the website)
For backend (website functionality), commonly used options are Ruby on Rails, Python and PHP. It is also possible to work on backend with JavaScript with libraries such as Node.js.

As an alternative to JavaScript, TypeScript is gaining popularity.

Mobile Applications

android_vs_ios.jpg
Here you need to decide if you want to support Android, iOS or both.

Android

Java is the standard. It is also common to use C++.

iOS

Apple uses Swift for their devices. C++ is also an option.

Both

There are some libriaries out there that let you write multiplatform code, most commonly in C++ and C#.

Desktop Applications

images.jpg
C++, Java and C# seem to be leading here. Python is mostly used for scientific computing.

Video Games

images.png
Majority of companies use C++ engines for their games, but there is also a variety of other options. I will only list most common ones.

Unity3D

While it has support for three scripting languages (C#, JavaScript, Boo), recently mostly C# is used.

UnrealEngine 4

Blueprints (visual programming language, drag nodes instead of writing code) and C++

Godot3

GDScript (in-house language similar to python), C++, C# and more languages are being added.

JMonkeyEngine3

Java

With creating video games it is possibile to find an engine or library for most (if not all) languages that are able to create executable file. It is also possible to create browser based games, for example with Phaser. (JavaScript)

Electronics

indeks.jpg
If you want to program microcontrollers such as Arduino, C and C++ are most common.

Machines

qwe.jpg
I have virtually no experience programming machines, here your choices would be limited to ASM and its offsets, but if you are interested in doing that, you are probably already taking university course. :)

Drivers / Operating Systems

operating-system.jpg
Drivers are created mostly in C. For operating systems, while there are some amateur projects done in "strange" languages, ASM, C and C++ are leading.

Don't choose C++ as first language.

Don't be me. Since you most likely have noticed that C++ appears nearly everywhere, you might think it would be smart to learn it. And it is. But it is also very hard.

My recommendations for "easy" languages:

JavaScript, Java, C#, Python

Coin Marketplace

STEEM 0.26
TRX 0.20
JST 0.038
BTC 96558.27
ETH 3605.35
USDT 1.00
SBD 3.87