Which Language Should You Learn First

The answer is always JavaScript! :)

Everyone who has spent any time learning to code has asked this question, and likely more times than they can count. When you first start out, you'll ask Google this question in several different variations, and you will ask some people online either on social media platforms or in digital communities like Discord channels. The reason this question is asked in such volume and in such a variety of ways is that there is no correct answer. At least not without answering some other questions first. The main thing you want to know is what type of coding you want to do. What is it that you want to code? There are several different career fields and focuses of computer science that all have their own path of learning. This is also one of the reasons that so many potentially awesome new people get overwhelmed by the sheer amount of information and decide that they just "can't" learn to code. The truth is, I'm pretty sure very few people that get started in tech actually know the right answer to this question before they get started, because you never really know until you get started if that's what you really want to do. So, let's talk about it, and see if we can at least come up with a decent place for you to get started!

Break It Down

You may already know that there are several different career fields that are considered "coding" careers. Each of these career fields have their own set of languages, tools, and technologies that engineers use on a daily basis, so depending on which of these fields you would like to work within, what you need to learn first will be a bit different. The fields that we will talk about in this reading are made to broad. This means that there will absolutely be niche careers that may require a bit of a different path; however, the 'first' languages for each of these different paths should be common even across the niche fields. The following are the main five fields we will discuss here.

  • Application Development (web/mobile/software)
  • Game Development
  • Systems Engineering
  • Data Science
  • Machine Learning & Artificial Intelligence

Application Development

Application development, for the purpose of this article will encompass all of web, mobile, and desktop software application development. Admittedly, these three are different animals the more you dig into them, but this article is suppose to be helping people are completely new to computer science or tech careers in general. So, for application development I would highly recommend learning JavaScript first. You likely also need to learn Java, Kotlin, C++, or Python, but JavaScript will give you a very good starting point. JavaScript is very widely used, is relatively beginner friendly, and has a very large community of developers that use it on a daily basis, including myself. JavaScript also has a very wide range of frameworks and libraries that are developed specifically for the use of JavaScript so you can even continue to expand your own toolbox relatively easily after learning some basic JavaScript. If you know you want to be front end developer, learn HTML and CSS first as these will allow you to get something up on the screen very quickly and provide you some confidence. These are NOT programming languages though so beware when you are talking to other developers. They are indeed languages, but they only determine the structure/markup and style of the application. Actually, HTML and CSS really shine when used in conjunction with a programming language like JavaScript.

Game Development

Would you be surprised if I said JavaScript was the best first language to learn here as well? Well... SURPRISE! It really is though. Now, admittedly, C++ is the most used language when it comes to game development, but JavaScript is still less difficult to learn and can provide an easier time for someone just getting started with programming. Plus, with games like Angry Birds and Bejeweled being build using JavaScript, it's hard to argue that it's a viable option for a game developer's first language. If you're up for the challenge though, you also can't go wrong with C++. If you're still on the fence, the best way to decide is really to just look up the company you'd like work for or the type of game you'd like to make and figure out what the main language is and go from there.

Systems Engineering

Deciding your first language for going into systems engineering is a bit tricky. This is because systems engineering for different industries can mean different things. Depending on your industry and the specific company you work for, you could be dealing mainly with hardware and running simulations to build (or improve) the best, most efficient systems for that particular company's needs. You could also be dealing with mostly software and file architecture. With this wide variety of potential responsibilities, it's hard to nail down what language you should choose to learn first. Some companies still use MATLAB for a lot of things, and a lot of companies use Java or C++. In my honest opinion, I think Python would be the best language to learn for a beginner looking to get into this career field. Python is a VERY popular language for beginners for the same reason that JavaScript is popular - it's easy to learn and get started. Also, from my knowledge of MATLAB and Python so far, anything you can do in MATLAB, you can also do in Python.

Data Science

If you are looking to start a career in data science, you are looking to join one of the fastest growing job markets available in 2022. With a year over year growth rate of around 30%, it's no wonder this particular job title is being talked about so much. With that, we may need to talk about what a data scientists actually do. On a very high level, data scientists are tasked with taking dirty and unstructured data, cleaning it up, and figuring out what insights to gain from it and how. So, what's the the best programming language to start of with here? Well, I highly recommend going for Python first. Python is the most popular language for data scientists currently and because of that, it also has a ton of libraries that are helpful for data scientists. There are other fairly common languages for data science like R and Scala, but in my opinion, Python still is the best for beginners. JavaScript also wouldn't be a bad place to start either. It's still a scripting language and helps you keep your options a bit more open should you decide data science just isn't for you. Python does that too though. :)

Machine Learning / Artificial Intelligence

Machine Learning and Artificial Intelligence are probably two of the most used phrases or titles in the tech world currently. Well besides crypto, NFTs, and web3, but those are really smaller subsets of the main five fields we are talking about today. All the press isn't without good reason though. Machine learning is essentially the process of teaching a machine to teach itself. If you didn't know this before, don't go all Y2K on me just yet, we aren't to level where we are programming sentient robots in our garage... yet. ML/AI is capable of some really cool things though, like teaching a computer to play the Google Dinosaur game.. almost to perfection! Machine learning is also being used in the business world to make better financial predictions and make more efficient workflows. Ml/AI, like data science, is also a rapidly growing field. Hopefully it's no surprise that I am recommending Python here again. JavaScript again wouldn't be a terrible idea for a first language, but Python is just as beginner friendly and provides a very large community of people that are also using it for ML/AI.

Summary: TLDR

Basically, you can't go wrong with JavaScript or Python. If you are more interested in the art of design, definitely go with JavaScript. On the other hand, if you are more interested in the logical part of programming and working on the inner workings of things, definitely go with Python. The good news is, even if you pick a field like web development and later realize you really want to pursue a career in game development or data science, the principles that you learn when learning to code translate fairly well across different languages and technologies. The best thing to do is just get started. Don't get too bogged down in the decision because you will eventually get too overwhelmed to even get started. You make 100% of the shots you don't miss... or something like that. :)