I often hear people ask what programming language they should learn first. But the question should be: why do you want to program in the first place? If you are interested in it because it seems fun, then any language will do.
But I have a feeling some of you have bills to pay, and you’re thinking it wouldn’t be so bad if programming could foot some of that.
Now the question is more specific: which programming language should you learn to make money? Now the question is ponderable, but be warned, the answer won’t be the same for everybody.
The good news is that all popular languages are pretty fair in terms of compensation. The median pay today with 3-5 years of experience is around $60-80k/year, but that number can vary wildly, and can be much higher, particularly for folks on the east or west coast, or in consulting. YMMV.
Each language has its popular uses:
|Python/Ruby/PHP||Server-side for websites and mobile apps.|
|HTML||Client-side for websites. Markup language for building web sites, the ‘building block’ of websites.|
|CSS||Client-side for websites. Presentation language for HTML.|
|Java/.Net||Android programming. Server-side for websites, more popular with big businesses.|
|C/C++||High performance (stock trading) or graphics (video games).|
Which programming language should you learn to make money? The bad news is probably not just one. The good news is you don’t need to learn everything about every language, just enough to accomplish your goals.
So which one of these should you pick up first? As you can see, it really depends on how you want to make money.
If you want to program video games or high-frequency trading apps, then C++ is probably the way for you. If you want to make websites, Python, Ruby or PHP are great, along with HTML/CSS/JS. If you want to program IPhone then Objective-C is the way.
In the job market, you would not likely not be using all the languages I suggested, rather jobs are generally broken out by skills:
|Job Role||Skill Set|
|Back-end/Server-side Programmer||Usually uses one of the following: Python, Ruby, PHP, Java or .Net. Has database knowledge. Possibly has some sysadmin knowledge.|
|Mobile Programmer||Objective-C or Java (for Android). HTML/CSS for mobile websites. Potentially has server-side knowledge.|
|3d Programmer/Game Programmer||C/C++, OpenGL, Animation. Possibly has good artistic skill.|
|High-Performance Programmer||C/C++, Java. May have background in mathematics or quantitative analysis.|
Typically, there are folks who deal with the back-end and folks who deal with the front-end. These days there is a new crop of people who do mobile. Sometimes you can find people who do all of the above, but generally when you look for a job you will fill just one of those roles.