Wednesday, October 29, 2014

Which Programming Language Should You Learn To Make Money?


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.

The popular languages today are: Ruby, Python, PHP, Objective-C, HTML, CSS, JavaScript, Java, .Net, C/C++. Google all of those.
Each language has its popular uses:
LanguagePopular Use
Python/Ruby/PHP 
Server-side for websites and mobile apps.
Objective-C
IPhone
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.
JavaScript
Client-side for websites, used to manipulate HTML/CSS. jQuery is what you need to know here.
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 don't care how you'll make money, then my opinion would be this, in order: Python, Objective-C, JavaScript, HTML, CSS. You'll also need to get some kind of database (MySQL, MongoDB), and learn how to program with it, although that's not a big problem.
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.
JavaScript, HTML and CSS are used together and is used for making stuff look good in your web browser. They will always be used in conjunction with a server-side language such as Python, Ruby or PHP.
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 RoleSkill 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.
Front-end/Client-side Programmer
HTML, CSS, JavaScript. Possibly has design skill.
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. 
When learning these languages, start small. Don't start by wanting to build the next Facebook, it's not going to happen. Start with small projects and find tutorials. Google 'hello world python' or 'hello world javascript' to find simple tutorials to get started. Once you can program projects for yourself and friends, then you will be ready to put a portfolio together to try to get a job, or start with some freelance work to build up that portfolio. You can definitely do it

No comments:

Post a Comment

Please post your Comment..