What Programming Language Do I Learn?

The great debate of the modern technological era

With software engineering not going away anytime soon, despite the threat of Artificial Intelligence like ChatGPT, there’s no better time to start learning to code. And if the recent surge in popularity of new tech has inspired you to decide to get into programming, or decide to change directions towards a programming focus, how do you get started?

The first major and seemingly most common question is, “what programming language do I learn?”.

It is indeed an important question, it’s hard to make progress if you don’t pick a language to get started. But that can lead to the first potential roadblock.

Everyone has an opinion on what language is the best language to learn. Researching the question online will produce hundreds of different answers, and I suppose this is another contribution to the noise, but I’d like to take a slightly different stance.

I honestly don’t think the language matters. The experience and the hours practicing are what matters. Learning to think in terms of code is more important than the language itself, especially as a new developer.

But obviously that advice in itself is not helpful because you have to pick a language to get started. So what do you pick?

Right now, the main contenders seem to be Python or JavaScript for just starting out.

And if I was starting over, or just beginning my journey into programming, I would have to recommend… JavaScript.

I’m sure that will ruffle some feathers of the more experienced coders, but for the unfamiliar, there’s a few reasons it’s a realistic starting point. Popularity, accessibility, and versatility.

Javascript is ubiquitous. It’s everywhere. Chances are, if you’re involved with any technology that is related to computers, you’ll run into it at some point. Which also means it’s incredibly easy to get started using.

If you’re feeling particularly adventurous and happen to be on a desktop computer, anywhere in the browser you’re reading this in, you can right-click and select the “Inspect” option. In that new window there should be a tab named “Console” and in the Console you can play around with JavaScript right now! There’s a JavaScript interpreter built into every browser, no extra steps needed beyond Open Web Browser and Open Console to begin practicing.

Removing friction is really the most important aspect here, and getting started with JavaScript may be the most frictionless coding option.

Additionally, since JavaScript is everywhere, there is a multitude of resources to teach you JavaScript, including straight-forward sources like freeCodeCamp.org and https://www.w3schools.com/js/ to learn the basics.

Experimenting with JavaScript in the Developer Console of a Web Browser will only get you so far, though, and the above tutorials will require something more substantial. Luckily this can be easily remedied with a quick download of Microsoft’s VS Code. A few clicks and you have an IDE (Integrated Development Environment) that’s free and commonplace in the industry, unless you’re hardcore and want to go the IDE-free route by using something like VIM if you’re on Mac or Linux.

When I was first trying to learn how to program, with the goal of making video games, after some internet sleuthing, I came to the conclusion that I needed something called a “compiler” to be able to turn code into an executable program. Despite my best efforts, and complete lack of understanding of what I was trying to do, I never found a compiler solution for the family Windows XP computer. I settled for rudimentary HTML and CSS manipulation after I stumbled on the Dev Console I was referring to above. I didn’t get my hands on a compiler until high school computer science class. It’s kind of mind blowing that today you can download VS Code for free and start coding away in less than a minute.

With that history lesson over, I’ve covered aspects of the popularity and accessibility of JavaScript, now for the versatility. JavaScript can also be used to run a server through something like NodeJS. Since a server is required for a website or any web-based app to work and JavaScript is capable of acting as a server, using only JavaScript, you can generate an entire working web application quickly and easily running on your own computer.

For those combined reasons, experience with JavaScript will inevitably prove useful in one way or another, which is why I would recommend it as a worthwhile initial commitment.

Variations of JavaScript remain one of the popular web technologies used all over the world, in all aspects of companies large and small, and if you can demonstrate you know your way around with it, you should be able to land a position with enough experience, effort, and a little luck. Or if you’re just looking to hack together an idea for a project, jumping in with JavaScript can prove to be a rather frictionless experience for a prototype.

Up to this point, I’ve been primarily referring to pure “vanilla” JavaScript. One of the advantages of JavaScript also lends itself to becoming a disadvantage in a way. JavaScript itself has plenty of issues in terms of performance and capability. There are dozens of libraries and frameworks built with JavaScript to improve its usage and capabilities, but it can again be overwhelming when deciding what flavor of JavaScript to side with depending on what you want to work on and where you want to end up. A popular option like React is a safe bet, but by the time you are making that decision, you should start to have a feel for what aspects of coding you enjoy and can further research an option that is more suitable to what you’d like to do on a day to day basis.

And you may find that after learning JavaScript, you don’t really like it, which is completely justified. By then, you’ve learn some of the core concepts of programming, and it can lead you to other languages that follow similar but slightly different rules. The hardest part is getting started and gaining those first 20 solid hours of experience to lay a foundation. From there you can begin your journey of becoming the next multi-billion dollar app creator.

But for now, if you’re just getting started, or decided to change directions, I would recommend JavaScript as a jumping off point into the world of coding.

And if you have questions along the way, let me know! Ask me at @jaypetersdotdev or email [email protected]. Thanks for reading!