When I first started to learn to code, I didn't struggle much trying to figure out what programming language to learn. This was mainly because I knew exactly what I needed to learn at that time. I knew for sure that I love websites, and I would like one day to be able to make a beautiful website or web app by myself. The next step was for me was to google how to make a website or which languages and tools will allow me to do that?
I hope by the end of this blog post you will know which programming language to pick.
First things first, people normally don't just say they wanna know how to program, oh! maybe they do. But what is actually in the back of their minds when they say "I wanna know how to code" is something like this – (Or and by the way, coding and programming is pretty much the same thing) :
- I wanna know how to make websites
- I wanna know how to make iOS (iPhone) apps
- I wanna know how to make Android apps
- I wanna get a job at Google or Apple as a Software Engineer
- I wanna get a good-paying job — and most good-paying jobs require that I know how to code
- I wanna be able to make a program or software that will do so and so
- I wanna make a computer game
- etc. etc.
Maybe some of those might be an exaggeration, but a majority of people who are first-time learners will fall under one of those groups. So which group are you?
What is your WHY to learn how to code?
That should be the first question you ask yourself. And once you know the answer what follows is easy. And that will exactly be the focus of my blog post. What is your why? What do you want to become? What's your end goal after learning to code? So here it goes:
1. I want to be a web designer or a web developer (I wanna know how to make websites)
A bit of history...
2. I wanna know how to make iOS (iPhone) apps (be an iOS developer)
Good! If that's what you want to be able to do as the result of you knowing how to code. I would say with 100% confidence that you should learn Swift! Yes! Swift is a programming language that was designed and developed by Apple. Swift was first announced in 2014, so in this list, Swift is probably the youngest language. And in case you're wondering, before Swift Apple was building their apps using a language called Objective-C. So they kinda abandoned (maybe not completely) Objective-C and start developing their apps with Swift.
That was easy, right? You wanna be an Apple developer, Swift is your guy!
3. I wanna know how to make Android apps (Android Developer)
Great! If you wanna be able to develop applications on the popular Android platform then you should learn JAVA. Java is a very popular and powerful programming language, actually, it's uses go way over just developing Android applications. Java can be used in software development, video game development and even to create desktop apps for your computer.
The language was created in 1995 by James Gosling. Gosling first named the language Oak because of an oak tree that was outside his office. Later on, they found out that there was a company called Oak Technologies and they had to forgo the name.
In the search for new names, so many names were suggested that could not work out...and as a joke one of the members of the team mentioned Java as one of those names that wouldn't work. As it turns out they used to drink Peet's Java and it was right in front of them during the brainstorming process. Then they sent about 10 names or so to their lawyers, and Java was mysteriously chosen.
Not much to say about Java honestly, the language really kicked my ass when I started learning how to program...so it's definitely not the easiest language to learn but also not necessarily the hardest. Good luck!
4. I wanna get a job at Google or Apple as a Software Engineer
Awesome! If your goal is to get a job in any of the big tech companies...then you can easily pick a language to learn. You won't be confined by anything really other than that company's choice of programming language and also what you will be doing day to day in your position.
If you fall under this category it might be beneficial to look at the tech stack (a collection of technologies, tools, programming languages, etc.) used by that specific company. Also, a big tech company normally has a lot of products, and their different lines of products might use different tools and languages. Here I advise you, to pick any of the major programming languages used by the company.
The good thing is that some big-tech companies have got their own programming languages. For example, if you wanna work for Microsoft then C# will be a good choice for you to learn. If you wanna work for Apple, pick Swift. And if you wanna work for Google, maybe pick Go programming language, which is sometimes called Golang.
If the company you wanna work for don't have their own programming language. I would urge you to do a quick Google search and you will find out right away what programming language they use. Something like "Which programming language is used at [put your company here]" …And don't be surprised when more than one programming language appears because most companies use all these programming languages for different purposes.
5. I wanna get a good-paying job — and most good-paying jobs require that I know how to code
Beautiful! A career in programming can be so lucrative especially if you get a job in a big tech company.
If you fall under this group, your choices are also kinda unlimited. I would say pick any of the top three languages and you should be fine. Being in this group means you really don't care much about the tool itself for the job (a programming language), you're just interested in what it will allow you to do...get a good job.
The following programming languages are both popular and said to pay a lot: Java, Python, C#, C++ and maybe a few others. It's important to know also here that the highest-paying programming languages might not necessarily be the most popular. And also it depends on the specific company, location and how strong your skillset is.
Sometimes it's all about supply and demand, there are some niche programming languages...and because of how scarce the talent pool is...the companies may be willing to pay a lot of money. However, that might also mean that there are not enough jobs for that specific language.
So I would think twice before picking COBOL as a programming language just because I saw some government agency is paying a lot of money for COBOL developers. You might easily find yourself out of the job market once the COBOL job is over or if you wanna change jobs.
You gonna learn that in this industry things move so fast and technologies are easily discarded for newer and better ones. So keep on learning and sharpening your skills.
I hope all these points are giving you a clear idea of what programming language you should pick. If you have any questions or need some clarification, here is our contact form.
But let's continue...
6. I wanna be able to make a program or software that will do so and so
If you fall under this group, I will just ask you...where do you want to put that specific software..? Do you want that software, application or program (they basically mean the same thing) to work on the browser like Chrome or Safari? Do you want it to be on your phone like Samsung or iPhone? Do you want that software to work on a computer like Windows, or Mac, or Linux?
Or do you want that software to work on all those platforms - Web, Mobile, and Computer? The ability for a software to be able to work on different platforms either computers or operating systems is called Cross-platform.
I might have an answer for you... First I think that's a lot... especially for a beginner. So I will list the following:
A. The Web (Browser)
On the other side, PHP needs a server somewhere to be able to read your code, you can't just run PHP code on the browser, it needs to be interpreted first by the server. Don't let that scare you, PHP is one of the easiest if not the easiest programming language to learn. With it comes much power of being able to work with databases, file systems, and images. PHP was created in 1994 by a Danish-Canadian programmer Rasmus Lerdorf. Little fun fact is that the most popular social media, Facebook was initially built in PHP. Have you heard of WordPress? It was also built in PHP.
PHP stands for Personal Home Page because initially Lersford just created it for himself later on the letters PHP came to stand for Hypertext Preprocessor. PHP is sometimes referred to as the Big Elephant because they use an elePHPant as their mascot. I might be lying about the Big Elephant part...but I remember reading it somewhere.
There is another programming language that is popular for web applications and web development. The language is Ruby, just like the gemstone. Ruby was designed and developed in 1995 by a Japanese computer scientist and programmer Yukihiro Matsumoto commonly known as Matz.
Apart from the web, Ruby can also be used to develop desktop applications. It's also considered to be on the easier languages to learn. Both AirBnB and Hulu were built using Ruby.
It's worth mentioning that Ruby has a very popular web framework called Ruby on Rails or just Rails.
And because I have mentioned a web framework, on a kinda different note, Python too has a popular web framework called Django. So you could also use Python for web development.
Last but not least, Microsoft has also a popular web framework called ASP.NET that works so well with languages like C#. Recently, they released ASP.NET CORE which is supposed to be cross-platform.
If you want your application to be able to run on a phone, then just refer back to our points about iOS or Android apps. To reiterate, Java is used to make Android applications, and Swift is used to make iOS apps.
That was easy!
Now just like phones, computers do come in different operating systems. You have Windows OS, Mac OS, and Linux OS.
Do you remember when I said JAVA is a very powerful programming language? Now Java can build applications for all these platforms - Windows, Mac, and Linux
But if you would like to pick just one language per each operating system I would say, Python which is a programming language that was created in 1991 will do the best job for Linux applications. Python is considered to be the easiest programming language to learn and because of that a lot of universities are teaching Python as the first intro class to programming.
Together with Java, Python is so popular. Python was created by a Dutch programmer, Guido van Rossum, and in case you're wondering why he named it Python... it's because of his favorite comedy group, Monty Python. At the time he was creating the language, he was watching one of their shows and decided to name the programming language Python. And it doesn't end there...even the Integrated Development Environment (IDE) used for Python is named IDLE which is the name of one of the founding members of Monthy Python, Eric Idle. ...Talk about inspiration!
If this was not a blog post for beginners on how to choose a programming language to learn, I would have suggested to also consider C++ for Linux applications. But unlike Python, C++ is not an easy language to master.
I feel guilt to have associated Python and Linux because they both easily stand independent of each other. Python as a language has so many uses, you can use it for web development, video game development, and to create desktop application.
The good thing when it comes to Microsoft is that they have got pretty much everything...so you can easily remain in that eco-system if you could call it so. Here am talking about another programming language C# (C-Sharp). C# is a programming language developed by Microsoft in the year 2000, the language was designed by a Danish software engineer, Anders Hejlsberg.
So if you're so much into Windows applications, C# should be your main programming language. I have to say though just like Java, C# might have a steep learning curve for beginners
For so long Mac OS applications were built using Objective-C until the introduction of Swift in 2014. Objective-C is a programming language that first appeared in 1984 and was created by Tom Love and Brad Cox, who later sold the language to NeXT, a company that was owned by Apple co-founder, Steve Jobs.
And from NeXT, that was the beginning of Objective-C to be used on Apple's Mac OS and iOS apps when NeXT was bought by Apple in 1997. Objective-C popularity might be decreasing since the introduction of Swift. But one could also argue that Swift being so young compared to Objective-C, we should still expect to see a lot of Objective-C code and developers till the time when Apple will say Adios to their old language.
That said, as a beginner, you're in a better position to learn Swift, as Objective-C is also not recommended for first-time learners.
7. I wanna make a computer game
Now things even get more interesting. If you're into games i.e video games, two of the most popular programming languages to create games are Java and C++. We already learned about Java, but what is C++?
C++ was created by a Danish computer scientist, Bjarne Stroustrup and it first appeared in 1985. Of all the languages listed here C++ might be one of the hardest if not the hardest to learn. C++ is used in large-scale software development, operating systems and video games. Even your favorite search engine, Google was built in C++.
... Okay, let me take a step back.
Game development especially video game development is not the same as other software development...this is because there's a lot involved in game development. In your typical software, you only have text, a few icons and images and some functionality. But if you have ever played a video game, you would really appreciate the level of complexity and what goes behind the scene...
Game design and development involve a lot of physics, maths and computer graphics. Hence, there are platforms that have been built to enable you to easily develop games otherwise it will be so hard for someone to code a video game from scratch just using a programming language like C# or Java or Python.
Of all the things I have explained up to this point, Game development is kinda different. I don't want to go too deep...but to start with, one of the most popular platforms on which people build games is called Unity. Unity is a game engine that allows you to program your video game...they handle all the computer graphics, maths and physics I just talked about. So if you wanna build games on the Unity platform, C# programming language will be the best tool for the job.
That was a lot! And yet I have not covered much of what there is. ...Stay hungry!
The key points you should take is that programming languages are tools, tools to help you do the job...so while I would say pick the right tool for the job...be free to actually pick the language you might enjoy writing in...or maybe the one that is convenient for you at that specific time. Your previous experience is also a good factor to consider when picking a language...some languages might be similar, some are easier to learn and a few others are quite tough to master.
If you're not creating, you're consuming...Choose your battle