The Best Programming Languages for YOU
Not all coding languages are created equal, and some are definitely much easier to learn than others. Which ones are more beginner friendly? Which ones should you avoid?
Myriad of Choices
Hey Pirates, PK here. In this video, I will talk about the best programming languages you should learn as a beginner, a student, or someone seriously considering a career transition. You've heard about programming languages: C, C++, Objective-C, C#, F#, Java, JavaScript, Python, Swift, HTML, CSS, SQL, Go, Kotlin, Ruby, Scala, Perl... I mean, holy 💩. The sheer list itself is overwhelming; there are just so many of them. And guess what? That's not all! So which language should you focus on now as a beginner? What is the best language for setting that first step in a particular industry? On the other hand, which ones should you avoid as your first language? Let's find out 😎.
2021 Stack Overflow Survey
Here's the list of programming scripting and markup languages in the order of most popular technologies in the 2021 Stack Overflow survey: JavaScript, HTML, CSS, Python, SQL, Java, Node.js, TypeScript, C#, Bash, C++, C, and PowerShell. Let's set the right expectations. There's no such thing as the ultimate programming language. Each programming language has pros and cons; even a language that's worst to learn can be the best for specific situations. For this video, I've curated the six best programming languages for beginners to learn in terms of popularity, utility, and relevance. Popularity: is it commonly used? Utility: is it widely used? Relevance: is it future-proof? I tailored my suggestions to these criteria, so decide which suits you the best given your current situation.
Dodge C++
Before I tell you which languages are the best, let me first share the two languages you should dodge as a beginner - at least not until you are comfortable with coding. They are C++ and C. C++ is the language that started the OOP, object-oriented programming. But because it's what started the OOP paradigm, it's also the most premature of them. Compare it to those that came after it, like Java and C#. In terms of the language's syntax, C++ is probably one of the most convoluted and difficult-to-write programming languages out there. Most senior C++ engineers at Microsoft even confess that they still devote a significant portion of their time fighting the language syntax; that's how bloody difficult that language is. I'm aware there are a lot of schools and institutions that still teach computer science 101 with C++. Shame on you! What is your goal here? To demotivate students? It pains me to learn that students gave up programming because they couldn't keep up with C++. I don't think coding is for everyone, but C++ is the language with the steepest learning curve. But then, what is C++ for? Consider learning it if you're interested in becoming a game developer. It's because most high-end games, like PlayStation, Xbox, Unreal Engine, and virtual reality headsets, are in C++. You can write scripts on Unity with C# or JavaScript, but Unity itself is written in it. Also, C++ is fast, which is crucial for running games on limited hardware. Learn C++ only if you are serious about game development and working on some hardware products.
Dodge C
The next programming language you should dodge (as a beginner) is C. But it's such a fabulous language! Well, you are correct; C is a good language. After all, it's the father of ALL modern programming languages. However, I don't recommend it to beginners because of pointers. You can avoid them with other high-level languages like Java and return once you understand how coding works. In fact, one of Java's purposes was to be a C-like language but with greater simplicity by removing pointers.
Don't get me wrong. C and C++ are remarkable technologies, both widely used, but they're not the most beginner-friendly languages. From my experience, a simple language that helps you focus solely on how coding works is the best for newbies.
Now that we've discussed the two programming languages you should dodge as a beginner, let's talk about the six I recommend. Again I will talk about their popularity, utility, and relevance. Take note of their pros and cons and see which one suits you the best.
Learn JavaScript
The first programming language I recommend is JavaScript. Popularity: according to Stack Overflow, it's been the most commonly used language for nine consecutive years. You can pretty much assume that everything you do on your browser runs on JavaScript. Also, most software engineers work on web technology. Utility: it's one of the most versatile languages out there. Learn React.js for the frontend, Node.js for the backend, and hey, you're a full-stack developer. You also have to learn the markup languages HTML and CSS, but they're easy. Making a website with one language wasn't possible before, but it is now, thanks to Node.js.
Moreover, you can develop native mobile apps for Android and iOS using React Native and even desktop apps using Electron! Yes, React Native is cross-platform compatible. Not only that, you can make games on the web and Unity using JavaScript. Lastly, JavaScript is used in machine learning and AI, to name a few others. With web mobile, desktop, client, server, machine learning, and AI combined, you open up a world of possibilities! What about relevance? As I've mentioned, it's the most popular and commonly used programming language. Because of that, it's one of the most sought-after skills in the job market. JavaScript has been everywhere on the web since its appearance in 1995. With Node strong on the server side, React backed by Meta on the client side, and the language itself supported by all browsers, JavaScript's not going anywhere.
Learn Python
The second programming language I recommend is Python. Popularity: according to Stack Overflow, it's the third most popular language in 2021 and the most wanted language for its fifth year. Its syntax is so simple and easy that it's considered one of the best languages to learn for beginners. It has great support from the massive community along with the thousands of free excellent libraries out there. Utility: it's widely used in nearly any environment, including web, desktop, mobile, and hardware. Django and Flask are backend frameworks written in Python, and you can't talk about cloud computing and big data without Python. It's completely dominated the fields of AI, Machine Learning, and Data Science as well. Relevance: it's one of the languages colleges teach due to the high demand in the job market, and numerous conglomerates, including Google, Facebook, and Amazon, use them. Simply put, Python's not going anywhere anytime soon. It’s a relatively easy-to-learn language that opens up multiple career opportunities.
The following two languages are for those serious about becoming a software engineer: C# and Java.
Learn C#
The third programming language I recommend is C#. Hey, I'm not recommending C# before Java because I work at Microsoft! My mother language is Java, the first programming language I learned in college. Java was the more famous one (also a better one), and C# benchmarked Java. But C# has not only caught up but also gotten better. There are many features in C# that Java doesn't have or added after C#. For example, class properties, extension methods, generics with primitive types, async and await keywords, LINQ, much better lambda, and the var keyword, to name a few. Long story short, C# beats Java, in my opinion. So let's go back to popularity, utility, and relevance. Popularity: according to Stack Overflow, .NET Core is the most loved library; it's a C# framework. C# also tops the most commonly used language in the survey, although it's behind Java; we'll get to that later. But think about why people love it the most. It's because it's easy, simple, and convenient in many scenarios. Utility: C# is surprisingly versatile for a strongly- and statically-typed language. You can build Windows applications, backend servers, cloud apps on Azure, native mobile apps for both Android and iOS via Xamarin, games with Unity, the Internet of Things, etc. Relevance: people also refer to C# as a Windows language because Microsoft developed it. Just like JavaScript and Python, C# is widely used. It's open source, and with Microsoft developing it, it's a reliable core language.
Learn Java
The fourth programming language I recommend is Java. As I said earlier, Java was ahead of C# in many aspects. Now, it's behind C# in my opinion. Regardless, I still find Java to be an excellent, one of the best beginner-friendly languages. Popularity: according to Stack Overflow, it's the fifth most popular language and the most popular strongly- and statically-typed language - even beating C#. I think C# falls behind Java in popularity because Java dominated for a while. It's also worth noting that big guys like Google, Facebook, and Amazon use Java, but none of them uses C#. Utility: Java's ubiquitous. More than three billion devices run Java (according to Oracle). Many server applications are written in Java using frameworks like Spring, and you need Java for Android development. The official language for Android has changed to Kotlin, but Java's still the dominant language, regardless, with a great online community for support. Relevance: you can't discuss Android without Java, and many schools still teach computer science with it. With its vast community cultivated over a decade and Oracle powering the language, Java's still a solid core language to learn.
Learn Swift
The fifth programming language I recommend is Swift. It's the language that powers Apple's operating systems. Popularity: I wouldn't say it's popular, with the popularity index at 5.1% at Stack Overflow. However, it’s necessary for developing Apple devices. It's similar to how you have no option but to use C# when you join Microsoft. Utility: you can use the language to build native apps for iOS, Mac, Apple TV, and Apple Watch. Relevance: the two trillion-dollar company is not going anywhere anytime soon.
Learn SQL
The last programming language I recommend is SQL (pronounced sequel). SQL stands for Structured Query Language, a programming language used to communicate with databases. It's also the language you should learn for the backend. There are SQL and NoSQL, but they're very similar. You can think of NoSQL as a simple SQL where you won't likely have to do complex joins anymore. Popularity, utility, and relevance: again, databases are essential. It's how you make your app feature-rich.
Master One
We looked at the two programming languages you should avoid and the six I recommend as a beginner. Here's the summary: dodge C++ unless you aim to become a game developer or work on hardware; the language is too complicated. Dodge C; no need to get lost with pointers as a beginner. Learn JavaScript or Python for simple, versatile, and easy-to-learn languages with broad utility and good job prospects. Learn C# or Java if you are serious about software engineering. Learn Swift if you want to work on building apps for Apple devices. And finally, learn SQL to understand how a database works. Most importantly, remember this: whatever language you decide, try to stick to it; don't give up midway. As a software engineer, perseverance is essential. I promise you; if you master one language, you'll realize that all programming languages are virtually the same.