What coding language should I learn first?
Updated: Nov 21, 2020
This is the most common question asked by first-time coders, and there is no good blanket answer. Instead, take some time to answer the following questions, then we can point you in the write direction.
Why do you want to code?
Most people would answer this with "because programmers make a lot of money", and while that may be true in some cases, you won't make any money if you try to learn a complex language ill-suited to your career goal. Think about what pushed you to code in the first place. Did you see a clean, well done website that you enjoyed? Or maybe you have a favorite game you like to play. There are so many different branches of coding and there is no one language suited for all of them. So figure out why your here, then answer the next question.
What am I going to do with the code?
This may sound similar to the first question, but it's not supposed to be. Basically, answer where this code is going to go when you are done with it. Are you learning to code as a hobby? If so, an object oriented language may be best for you. These languages are the easiest to translate conceptually from the real world. They also take less time to learn, and are much less frustrating then more low-level languages like C or C++. However, if you want to code to build robots, or work on machinery, then low-level languages are the way to go. These languages interact closely with hardware and are used commonly to code machines.
So now you've answered a few questions about why and what you want to code. Let's take a look at a few options based on your answers.
I want to make games
Making games is in my opinion the ultimate coding challenge. It combines mathematical programming, logic, visual design, and hardware interaction into one comprehensive yet enjoyable program. I started making games in high school, but decided to pursue web development and cyber security in college. I started learning on Unity, using C#. I found this was a great springboard to other technologies where I could apply the concpets without worrying about environment setup or creating a custom engine.
I want to make websites
I'm doing this as a hobby
If you're learning to code for fun, you couldn't have picked a more rewarding hobby. Likely you are looking to create programs that simulate real-world activities. If that's the case, I highly recommend Java. Java is an object-oriented language that is relatively easy to pick up. The first lines of code I wrote were in Java, and I still do some development with it today. Start by learning the basics, and then take a deep dive on classes, interfaces, and file writing. One of my favorite first Java projects was a mock ordering system for restaurants, and I used those three concepts for the bulk of it.
I want to do a little bit of everything
Still undecided on where to start? Learn Python. The appeal to Python is that it is relatively easy to understand, and there are libraries that expand its capabilities. Want to work with web tech? Want to make your first game? There are Python libraries for both and so much more.
No matter what language you decide on, there are two best practices to learning to code. First, do not fall into what we call "Tutorial Hell". Online videos can be a great place for ideas, or walking through tough concepts, but should not be a supplemental to fundamental learning. Every language has documentation, which describes how it works. Read it, then use it in a project. You will learn so much more that way. Second, you lean code by doing, not reading. While reading documentation is important, you have to write code to understand code. And if you're taking a professional route with our learning, employers want to see your code so they know you actually have the skills.
Get excited about the world of coding. There are so many opportunities, and all so much to learn. So get out there and make that project you've always thought about!