Ever wonder what programming language you should learn first? I’ll review the common industries and common problems that people solve with different languages to help you figure out which is the right language for you. I’ll also review the average salaries, and which language to choose for the highest paying salary.
Table of Contents
I. What programming language should I learn first?
A common question I see all the time in programming forums is ‘What programming language should I learn first?’. However, that’s the wrong question to start with. The more appropriate question is, ‘What language do I need to do ‘X’?’ >A programming language is just a tool designed to help solve a specific problem domain and there are literally THOUSANDS of programming languages. Each language is designed to solve a particular set of issues and some may be absolutely the WRONG language for a given problem domain. Most of the language syntax are very similar but do different things based on the problem domain. Once you define the problem, then you can begin to look at the various languages that can help you solve that problem.
This is an important point for many beginner software engineers, ‘Find the right tool for the job’.
Before we begin, while some may say ‘Just jump in’. I think there are a few pre-requisites for any new software engineer.
1. You need to feel very comfortable navigating the operating system of your choice. You should understand the basics of the file system structure (creating, deleting, updating) files.
2. You should be able to install applications on the operating system, and troubleshooting why that application isn’t working. IE. You should feel comfortable googling the error message and finding a solution online, AND implementing the fix.
3. You should know command line basics as well as navigating around using the command line.
If you’re not comfortable with some of this, getting started may be a frustrating experience. Sometimes things just don’t work! There are times when simple things like just installing the packages for a language might not work. You’ll need to dig around the operating system to figure out what was going on, trying to understand a cryptic error message. If this doesn’t seem like something that you feel comfortable doing, then you should probably stop now!
III. Do you even need to code?
So you’ve decided to continue, great! Before we talk about some programming languages and their standard use-cases and industries, I’d like to ask, ‘Do you even need to learn how to program?’. There are some instances, where you may not really even need to learn how to program. This generally includes people who just want to set up a blog, e-commerce site or entrepreneurs that want to build a new startup idea.
For bloggers and e-commerce entrepreneurs, I’d recommend using off-the-shelf software instead of trying to learn the ins-and-outs of a programming language. Becoming in proficient in a language doesn’t guarantee that you’ll be able to even build a site with the language. If you want to build a web-site, use technology that exists already. Time is the most important commodity, and getting to market early and fast is the more important than learning how to program.
For entrepreneurs, this point is especially important. If you’re a non-technical founder, your area of expertise should be the domain, and not the technical details of the implementation. While there are stories of founders learning to program and becoming billionaires (Instagram), those are just the outliers. Most of the time, it’s better and more efficient to find an engineer to team-up with or a vendor to help build your idea.
This is a common dilemma, should we buy or build the solution? Build it if you have the time, buy it if you don’t.
IV. What languages use in common situations?
A) Building a web site.
B) Building a mobile/desktop application.
C) Building a desktop/mobile game.
V. What languages are used in specific industries?
A) Small Medium Sized Businesses
Most of these business are looking for web-development. These sites are limited to very simple websites. They’re usually on a running a PHP based Content Management System (CMS) or a hosted application (Wix, Shopify, WordPress.com).
C) Large Corporate
One exception to the large corporates are the finance companies. Depending on the type of finance industry it is, you’ll largely see Python, C++, Java, C#, Scala and R.
VI. I just want to get $$$$
Most of the time, find a language doesn’t really help you find a job that will pay you the most. The industry is much more important than the specific language. If you’re in an industry that is on a down trend, then the company won’t have money to pay you, regardless of what language you know. Look for high paying industries (finance and tech).
VII. Now, pick a language!
By now you’ll have narrowed it down to a handful of choices. Now it’s time to pick one. If you’re looking for a job, the first thing I would recommend is to make sure that you’ll be able to get a job in your area. Search for jobs that require that language. Can’t find any? If you’re not willing to move, then look to see the gigs available on a freelancing website. If there aren’t any, then I recommend find a different language if employment is your goal.
If you’re not looking for a job, then just pick one to begin. As I mentioned earlier, most languages are very similar in the high level concepts, but have their own idiosyncrasies. You won’t learn those idiosyncrasies until you start really using the language. So just pick a language and begin!
VIII. Still don’t know which language to use?
At this point, you should have an idea about which languages you need for your own situation. If you still have a problem try using this tool: http://www.wfplsiu.com/
A) Should I learn more than one programming language at once?
B) Are some languages harder than others?
Some language concepts are not necessarily harder, but they sure can be different. Some languages have different concepts that may force you to think differently about a problem. The language itself might even force you to think differently. That difference in thinking may be the biggest barrier to the language. Just like with learning a spoken language, the only way to get better at the language is through repetitive use of the language. Eventually, using it enough will give you the insights you need
C) But someone said ‘XXX’ is the best language! or someone said ‘XXX’ is the worst language!
Do you take everyone’s word as gospel? For some reason, engineers always feel their preferred language is the best and other languages they’ve used in the past are horrible. To be honest, their opinion doesn’t matter as long as you’ve determined what the problem domain is and you know that this specific language is the best choice for that given problem.
E) What is the difference between C, C++, Objective-C, and C#?
One of the early languages was C, C++ came after, adding some features to C. Objective-C came from it’s own set of ideas as to what should have been added to C. C# is similar to Microsoft’s version of Java, a language that was created to address the short comings of C++.
G) What computer do I need to start programming?
For most languages you can use a four or five-year old computer to start programming. The latest state of the art computer isn’t needed.
H) Can I earn lots of money programming?
Salaries for engineers are definitely higher than other jobs. Here are the average salaries for some languages (from indeed.com):
Java developer $102,171 per year
C developer $95,778 per year
Swift developer $115,418 per year
Python $116,010 per year
PHP $86,343 per year
C# developer $92,508 per year
Generally the higher end of the salary curve max out at about $200,000 a year.
I) Can I get a programming job without a Computer Science degree? Or without any degree at all?
You can definitely get a programming job without a computer science degree! That’s the beauty of programming, you’re entirely evaluated by your knowledge and not by what school you went to. The larger your body of work, the more likelihood that you’ll get noticed by a company. So keep working on different projects and keep adding those projects onto your resume!
J) How do I break into the industry and get an entry-level job?
There is definitely a chicken-or-egg problem with finding a job. Most entry-level jobs require at least 2 years experience, but you can’t get work experience without having an entry-level job! So how do you get around the requirement? Find projects to do that interest you. If you’re trying to work at a startup, build an application that uses the data from that startup. Or better yet, build a clone of the startup’s website using their language!