Choosing your first coding language is an important decision, the more time you spend with a language the more comfortable you will feel writing it. It’s a good idea to focus your learning on a language that is not only in demand for today’s job market, but also expected to be in demand in the future.
In a lot of ways choosing a language is like making a bet on that language, but instead of money you are investing your time. If you spend a lot of time learning a language or technology that is soon to be outdated that time investment is not as fruitful. The safest strategy is to focus on a language that is already popular and expected to be popular for the foreseeable future. So how do we know which language to choose?
There are a couple of ways we might answer this. Let’s check google trends to see which language is being searched for the most.
Ruby has lost some popularity over the past few years. There are still a lot of jobs to be had as a ruby developer, especially since there are a lot of legacy codebases written in Ruby, but it’s probably not the best choice starting out in 2020.
Javascript is extremely popular in web development. Even if you write your server code in a different language you will still need to be familiar with Javascript for updating the dom in the browser. Frontend frameworks like React, Angular, and Vue continue to increase in popularity. Javascript is also popular for writing server side code using Node and Express.
If you are curious about what software engineers have to say about their favorite technologies and statistics on the most popular languages check out the annual stack overflow survey. Here is a screenshot from 2020.
https://insights.stackoverflow.com/survey/2020
Notice that for web development, many of the most popular frameworks are written in Javascript including jQuery, React, Angular, and express.
Python is also a solid choice especially if you are more interested in working with data. Python is an often used language for implementing machine learning, this is a likely contributor to increased popularity over the past few years. Python is also a great choice for writing server side code with frameworks like Django and Flask.
While some might argue that learning a more complex language like C++ or Java is a good choice for a first language, the more common path is to choose a less complex language like Javascript, Python, or Ruby. This approach will most likely shorten the length of time needed for securing that first job and generally more popular for people career switchers.
The knowledge that you gain from coding in one language can typically be applied to other languages. The syntax will be different but the concepts are very similar, learning a second language is much easier than the first. Over the course of your career you will most likely pick up multiple languages. It is important to not tie yourself too closely to one technology. JavaScript is a good choice for web development and has a rich ecosystem of libraries for solving common web development problems. Python has a richer set of libraries related to working with data or machine learning. The only way to use these libraries is to code in the language they were intended to be coded in.
Don’t put too much pressure on yourself to choose the correct language, at Rithm school we learn to write servers in both JavaScript and Python, and use React for managing client side Javascript. Occasionally students will also work on web applications written in Rails during company projects. Over the course of the four month program some students have exposure to three different languages. We have also had a student who studied Javascript Python and wrote code in Ruby for company projects only to land a job writing server side code in Go.
Choosing a good first language is important for landing your first job but more important is probably your overall strategy for learning to code. This is a topic that deserves it’s own post, but some things to think about when learning to code. Do you have access to mentors and peers who can help guide your efforts into landing the first job? Are you not only studying but also applying what you are learning toward building something. Are you getting exposure to code bases that are challenging enough to develop your skills for both writing code and also for reading code? These topics are probably more important than choosing the correct first language.
I hope this post was useful for you, feel free to reach out at nate@rithmschool.com. Happy learning!