What Programming Language Should I Learn?
Learning programming is already daunting enough, you shouldn’t have to sweat wondering which language you’re going to pick up! For me, this question is all about momentum. It’s imperative to find something that lets you feel the magic of writing code quickly 😮
It’s also radically important to learn a language that plenty of other people are using. This will make it easier to get help, and it will make your new skill that much more marketable!
The 2019 Stack Overflow Developer Survey offers insights into what languages developers are using the most and is definitely worth a look.
Here are 2019’s most popular programming, scripting, and markup languages
#2) HTML/CSS (though this is markup, and not technically programming)
#3) SQL (this is for databases, and we won’t look at it despite it’a ubiquitous nature)
Holding this in hand, picking a language really boils down to why you want to learn to program, so we’ll look at some common reasons.
If you want to learn to program things quickly
If you want to learn to program just for the thrill of it, Python is an incredible first choice. By far the easiest language to pick up, Python is number 4 on the list of most popular languages. Created for human readability, Python abandons countless weird syntax rules in favor of code that’s easy to write. The biggest example here is the replacement of semicolons for whitespace.
One would think code being this easy to write would have some drawbacks, but Python has surprisingly few. Honestly, I wish I had learned Python as my first language. As I was learning to program in Java, all of the seemingly arbitrary rules that didn’t make sense to me presented a massive barrier. Python lets the coder focus on the logic of it all, which is what programming is really all about.
The language is especially popular for text parsing, math, and statistics related tasks. This makes it that much more marketable outside of computer industries. In fact, I’ve seen students studying physics and even finance using python.
If you want to make apps,
Swift is without a doubt your fastest route there. Swift was created by Apple in 2014, as a tool to make development for iOS and Mac easier and more efficient at the same time.
The downside here is that you’ll need to have a Mac to begin writing Swift code, as Apple has the ecosystem locked down. Swift honestly reads a lot like Python, as it features many modern language syntactic goodies to make learning it incredibly easy compared to other languages.
Learning Swift can help you bring a cool app idea to life, start freelancing (making other people’s cool ideas for 💰), or even land a full-time job as an iOS developer.
Outside of the Mac and iOS development ecosystem, Swift isn’t that popular. This makes the choice to learn Swift really only makes sense if you’re learning to program so that you can make apps.
If you want to make websites,
If you want to learn about data structures and algorithms,
Then Java is probably your best bet.
Java is an older language, released in the mid-1990s. It’s incredibly powerful and equally harsh. Though not quite as harsh as it’s father, C, Java requires the programmer to write a lot of boilerplate code, which is code that does nothing other than set up things. Part of the reason for this is that Java is an object-oriented language. Object-oriented programming remains an invaluable skill for software design, but it often doesn’t make sense to try to tackle this concept without other core programming skills in place.
Things like polymorphism, inheritance, and class constructors are hard to swallow and can discourage a new programmer. Beyond that, an excited new programmer could spend months mastering these concepts and never write code that actually does anything. Isn’t that the whole point of programming?
Well as it turns out, another incredibly interesting part of programming is data structures and algorithms. Computers organize information (data) in many different ways (called data structures) to maximize efficiency. Similarly, algorithms are sets of instructions that accomplish a specific goal, often working directly inside a data structure. These concepts are critical to computer science as a discipline, especially in academia (looking at you, fellow CS students). Beyond that, companies that work with massive data sets are always looking for ways to improve efficiency. Becoming familiar with data structures and algorithms is an absolute must if you want to join teams at Google, Facebook, Amazon, and the likes.
While Java does involve a lot of boilerplate code and bulky syntax, its design makes understanding data structures that much more natural.
Honestly, the most important thing here isn’t even what programming language you pick. As long as you go with something that interests you and lets you gain traction quickly, it doesn’t matter what language you start with! If for some reason in the future you decided it isn’t for you, you’ve got the foundation to make learning a new language easy. Learning to program, and learning a programming language are 2 different tasks. Once you learn to program, any new language you pick up will be far less painful.
Given all that, when friends ask me what language is the best to learn, I always default to recommending Python before I ask anything about why. The truth is, I believe python is a solid choice to build a foundation in computer science, regardless of what you want to do.