The answer is JavaScript and Python, but wait there is more to it. The fact of the matter is that there is a huge difference between learning programming languages, and actually being able to build real software – not to mention landing a job with it.

The trick is that once you have learned the basics of the language, you must then master it by delving into a popular framework, debugging tools and the whole eco system that goes with the language. You should then develop a real application using your new skillset. It’s with that knowledge and deep context that you will be able to code in real world situations or succeed in a job interview.

Let’s talk about why I recommend JavaScript and Python and what frameworks can you choose.

Why JavaScript

I recommend JavaScript for couple of reasons:

Learning JavaScript

Because of its widespread popularity; there are just way too many JavaScript courses out there. You can do your own research but if you are looking for a great starting point, I recommend the one by JavaScript Course

Learning React

Like I said earlier, learning the language itself is not going to be enough, you need to learn the whole eco system. For JavaScript I would like to recommend React. You can go with Angular too if you like, but I believe the way things are looking at the moment, React would be a better investment of your time, specially if you haven’t already mastered Angular or another JavaScript Framework like VueJS.

There are actually a lot of ways to learn React and I found it very confusing when starting out. I recommend starting with something free, like the one (again) by team and you can then graduate to something more comprehensive later. React Course

Why Python

I recommend learning Python for couple of reasons:

  • Python is really a joy to program with once you get used to the Pythonic way. Things just make sense and work as expected. Few languages can claim this.
  • Just like JavaScript, Python also has a very vibrant and active community behind it and you will find excellent industry support for it. Refer back the StackOverFlow survey – if you don’t count HTML/CSS and SQL as general purpose programming languages – you can see that Python is number two on the list. Outside of Rust I feel Python may be the most loved language out there (I have not done any data analysis on this yet, so don’t quote me just yet)
  • You can use it in a lot of scenarios and get the same consistent experience that you will learn to love. It’s used for scripting, building server applications, database programming, data science and analytics, machine learning. Trust me, it’s an absolute beast.

Learning Python

Python is actually very easy to pick up. Assuming you already know another programming language, you can just read the docs and have a good sense of it. I personally learned Python from reading code written by others, and I got better at it by reading the Effective Python book by Brett Slatkin. There are ton of video courses out there too, including one from Just remember to use Python 3. Python Course

Learn Flask

Just like I recommended React for JavaScript, I highly recommend learning Flask web application development framework to go with Python. You also have the option of Django but I recommend learning Flask if you are just starting. There nothing wrong with Django, its an awesome heavy hitter that you can use to build serious web apps from top to bottom – but if you are just staring up, go with Flask.

I don’t have a good recommendation for course because I learned Flask by reading the docs and using it extensively. I already had years of experience with web frameworks so it wasn’t too bad but you might want to consider starting with a book or course. Leave a comment if you come across something you want to share with other readers.

Make Something (Important)

Learning a language or tool superficially is not going to be good enough – you have to make something with it and deal with all the issues to really get the concepts and be able to use the technology in a real environment. Think of making a website using JavaScript and Python.

You can build your own resume website using React and Flask that includes dynamic data, for example how many people have visited your site. Let people leave messages or interact in other ways.

What about Java, C#, C++ , GoLang, PHP, Objective C, Swift or my favorite language

Before you send me some hate-mail for not including your favorite language, please note that I am not against learning and mastering any other programming language. In fact mastering a niche language like Swift can be very lucrative because you don’t have a lot of competition. However if you want to maximize your options going with JavaScript and Python will get the most bang for you buck. After all, these are the top languages in demand right now.

Here is a quick Google Trends summary; feel free to click the link and compare you own favorite language:

Google Trends summary for popular programming languages
Google Trends for popular programming languages

Parting Thoughts

I hope you found this post useful. Learning and Improving is almost a requirement for software engineers. But thats the only way to become a rockstar engineer or in some cases it’s needed just to stay relevant in our industry.

What programming languages you would like to learn and why? Share your thoughts with our growing community on the Facebook page.