The question of which language is the “best” has plagued programmers ever since there was more than one language to choose from. This poses a bit of a problem for beginners, since if you ask twenty developers “what language should I learn first”, you will get twenty unique answers. I aim to clear that confusion up in this blog post.

Before we can answer the question of “what language should I start with,” we need to know what you want to do with the language.

What are you trying to do?

There’s a big difference between working on desktop applications, mobile apps, web apps, websites, video games, and any other specific flavor of software. In fact, you might not even be looking into a specific branch development: there’s a decent chance your only question is “what can make me the most money the fastest?” That’s a question for a future blog post.

For the rest of you, let’s get you pointed in the right direction with a handful of good options (before any diehards start raging in the comments because their favorite language wasn’t included, remember that this is by no means an exhaustive list: it’s a summary for beginners).

Desktop Applications

A word of warning: desktop applications aren’t dying, but they are fading somewhat as everything continues to move online. Most likely you either have an idea for the next great app (in which case let me convince you that you should be focusing on web development instead - but that’s a topic for a future blog post) or you want a steady, safe job working for any of the countless large corporations with software developers out there. You should be looking into…

Java

Java is one of the most widely used programming languages, although it’s not certainly not exclusively used for desktop applications. Far from it: Java’s big claim to fame was the fact that in runs inside something called a virtual machine. The virtual machine is built to run on nearly any platform (Windows, Mac, Linux, Android, and even web browsers), which means you can develop a Java application once and run it most anywhere.

C#

C# (“C Sharp”, for anyone unfamiliar with sheet music notation) is a language created by Microsoft that, like Java, is used basically everywhere. It’s syntax (the way code is structured and written) is very similar to Java as well, which makes it easier to transition between the two of them (and make no mistake, you will jump between languages at an uncomfortable pace).

Python

Python is one of the big beginner-friendly languages that a lot of people start with. It’s also a big name in web development and the language of choice for the Raspberry Pi, so it’s a good choice if you want to get into the Internet of Things. The syntax is very different from Java and C#, however.

Web Applications

Moreso than desktop applications, this is where you will most likely want to focus. We’re moving away from a world where people download and install software onto their computer and into a world where everything loads in a web browser on an as-needed basis. There’s a lot of good reasons for that: it’s simpler for the user, it allows access from multiple computers, and it lets the app run on any platform. There’s never been higher demand for web application developers, so if landing a job in that field sounds good to you, you should be looking into…

JavaScript

JavaScript is the language of the internet. It runs in browsers (did you know every time you open up Facebook, it’s using JavaScript to fill your feed with cat pictures?), it runs on servers (now that Node.js is a big thing), it runs everywhere. If you want to develop web apps, learn JavaScript.

One point to note, though: don’t get it confused with Java. Despite the similar names, they’re two very different things.

Python

Python is a big name when it comes to web apps, although it isn’t quite as ubiquitous as JavaScript. It can’t run in your browser, but it’s a powerful tool for server-side development. A lot of major sites use Python in some capacity, including Instagram, Pinterest, and Quora.

SQL

SQL (some people pronounce it “ess-queue-ell”, other say “sequel”) is a database language. It doesn’t make complete applications on its own, but you’ll need to use it in conjunction with a language like JavaScript or Python to store data (user account data, for example). Don’t start with it, but expect to have to learn it at some point.

Web Design

You’ll notice I listed web applications and web design separately. Even though they often work side-by-side on the same projects, application developers focus on logic while designers focus on user interfaces. It’s much more artistic as opposed to logical. If that sounds like your idea of a good time, you should be looking into…

HTML

The acronym that everyone finds first when they Google “how do websites work.” HTML controls all of the content on a web page, so it’s the core of every web designer’s arsenal of technologies. If you’re at all interested in creating websites, start with HTML.

Fun fact: HTML technically isn’t a programming language. It’s a markup language. The difference will become readily apparent if you work with HTML and literally any other language.

CSS

The yin to HTML’s yang. The potatoes to its steak. The peanut butter to its chocolate. HTML is used to display content, but CSS makes the content pretty (or at least that’s what it’s supposed to do - it really depends on the designer). As soon as you have a rudimentary understanding of HTML, you should be adding in CSS.

Much like HTML, CSS is not really programming - it doesn’t involve coding logic. That doesn’t mean it’s not absolutely necessary, though.

JavaScript

Again, JavaScript is everywhere. Even as a designer, you will need to have a decent understanding of this language if you want to build websites professionally.

And yes, this one actually is a programming language.

Mobile Apps

“I’m gonna make the next Flappy Bird and get rich off of the app store,” you might say. More realistically, “I’m gonna make a useful app / get a job writing useful apps and make a living!” Mobile app development is a huge industry, and you really only need one language per operating system (iOS and Android). If that’s the direction you want to head, you should look into…

Java

Java is the primary language for Android apps. It can’t run on iPhones, but you can write pretty much any app for Android with it.

Swift

iOS (iPhones, iPads, iWatches, and every other mobile device created by Apple) used to use Objective-C as its primary language, but Apple introduced Swift in 2014 as an alternative to the less beginner-friendly C-based language.

C#

This is an odd option, but a very valuable one. Unity 3D (a video game engine) allows developers to create mobile apps (not just games) using C# instead of Java or Swift. The advantage is that Unity allows you to create an app for both platforms using one language, instead of needing separate languages for each platform.

Video Games

Vidya game development might not be a big money-maker for new programmers, but it’s one of the big reasons why people get into coding in the first place. Video games need an engine to run on (you may have heard of Unreal, CryEngine, Unity, Source, Gamebryo, or any of the other multitude of engines out there), which you usually don’t want to develop from scratch.

Unity 3D is one of the most popular engines for new developers, but other engines (such as Unreal) now offer free options for indie developers. If turning that game idea you’ve always had into reality sounds appealing, you’ll want to look into...

C#

C# is the scripting language of choice for development in Unity 3D. You’ll need to learn how to use the engine’s tools as well as how to write code, but it’s easy to get started with.

But what if I don’t know what I want to make?

Alright, Mr. Indecisive, I’ll simplify it for you. You want to make web applications and you should learn JavaScript. Case closed.

...I guess you might want an explanation for that.

In a professional environment, programmers aren’t just “Java programmers” or “Python programmers”. They work with many different languages (I’ve used C++, C#, JavaScript, PHP, Java, Liquid, Python, HTML, CSS, and a handful of others). The good news is that the most difficult language to learn is your first: every language after that will only require you to make minor adjustments to what you’re already used to.

So don’t worry too much about where you’re starting. Web applications are everywhere, JavaScript is everywhere, and every language after that will be much, much easier. Don’t sweat it.

0 comment(s)