Guide to choosing your first programming language image

Guide to choosing your first programming language

Shares

So you are adamant you want to learn to program and you have told yourself, “this is it!”. Brilliant, I commend you on your conviction. But now what? where do you start? Well, the obvious place is choosing your first programming language. This will be the first step on your programming journey, exciting isn’t it? However exciting this may be, it can also be very confusing for a complete beginner. There are so many languages, how do you decide?

What even is a programming language?

This may seem like a trivial question, but I know before I did any research I didn’t fully understand. I thought all code was created equal. How naive of me!

To give you a quick overview, all software you encounter on your phone, tablet, and computer is created using code, written in a particular programming language and or a combination of languages.

Programming languages are similar to spoken languages, in that they communicate the same or similar things, however, appear different.

The basic concepts of all programming languages are relatively the same but what makes them inherently different is their syntax.

The syntax is the actual written code itself. What makes one language’s syntax different from another are the characters, words, and phrases used, and their arrangement.

So you can better understand, I have written the same thing but in two different languages. They both print out “Hello, World!”, but as you can see they look very different.

Python:

print("Hello, World!")

Java:

System.out.println("Hello, World!");

So, where do we start? 

From my experience, I feel there are two main ways to go about choosing your first programming language.

Route 1, you can start by learning a relatively easy language, with a simple syntax, then progress to other languages.

Route 2, you can choose a language that aligns more with your end goals. For example, a particular job or project you want to build.

Route 1 VS Route 2

An easier language is…

  • Obviously, easier to pick up and learn
  • Provides quicker motivational pay off thanks to a shorter time between learning and creating
  • Like any other language, it will still teach you the concepts of programming, aka the hard part!

A language based on your goals…

  • Will shorten the time between learning and achieving your end goals
  • Can be more fulfilling as you are working with a language you have a vested interest in. This can also help maintain long-term focus
  • May set a higher standard. If your chosen language which is particularly hard anything after that will seem like child’s play

It boils down to this…

If you want to ease yourself in, and you are okay with taking some time before moving toward your chosen field. Then start with a simpler language to get the concepts down, then progress.

This is perfectly fine, and to be frank, you’re going to be learning many other languages down the line anyway.

However, if you have a very focused goal, and learning this certain language will help you achieve it. Then sure, follow this route and pick the languages that will lead straight to your goal. Just be aware if your language is particularly hard, you may have a few sleepless night ahead!

One final note…Not everyone is going to have such a specific goal in mind, or know exactly what kind of developer they want to be. You may even change your mind down the road. And that is FINE.

When it comes to choosing your first language remember it is not a fatal decision. You can always change or pick up another language. The key is to get started! I defined the two routes as a way of narrowing your choice and giving you focus.

In my opinion, the role of your first language is to teach you programming concepts. These concepts are the hard part, and are universal across most languages. So by learning one you will have a fundamental understanding of the others, which will makes learning other languages easier.

What are the different programming languages? And which one is right for me?

You may have done a quick Google search already and have realized that there are literally tons of programming languages. But to help you choose I thought I would provide a little overview of some of the most popular languages. Plus, a handy guide so you can see how easier their syntax is to learn.

Difficulty score (1 easy – 5 hard) – This is a relative scoring system so it is not to say any one language will be a walk in the park. Learning to program is hard! It’s just some languages are easier to pick up than others.

Objective-C – Difficulty level: 3

If you’re an Apple fan and interest in building desktop apps and mobile apps, then Objective-C may be the one for you.

Objective-C is a language of choice for developing apps for Mac, iPhone, and iPad. Ton’s of apps are still written in Objective-C, and I say “still” because back in 2014 Apple released their new language, Swift.

Now, Objective -C has been the tech giants language of choice since the mid 80’s and even with the release of Swift, I can’t see it disappearing anytime soon. The main reason is that Apple is still supporting the language, plus there is a lot of third-party support still out there.

You have to remember that it’s been around decades so there will naturally be more resources, tools and reusable code compared to Swift. Also, if you get a job as an iOS developer, chances are you will run into Objective-C sooner or later.

Swift – Difficulty level: 2

I have already touched on Swift so you already know it’s Apple’s modern language for creating a host software for the Apple eco-system.

Although I mentioned Objective-C wasn’t going anywhere soon, Swift is equally here to stay. Swift appears to be the language Apple wants for the future, and I suspect some point in the future Swift will make Objective-C redundant. But until then, if you are keen to be abroad the Apple ship, you should really understand both.

For a beginner, I would suggest learning Swift first, then diving into Objective-C. Swift is a much easier language to learn. Apple also has interactive coding environments, know as Playgrounds, designed to help beginners.

Python – Difficulty level: 1

Python is kind of like the Swiss army knife of programming languages, it’s not dedicated to any one thing but is a general-purpose tool that used for near enough everything.

Python has been used to create web apps like Google, YouTube, and Instagram. It can also be used for Game Development, Data Analysis, and Machine Learning among other things.

If you a new to programming and just want to dip a toe in, Python is a great place to start. It is easy to read and understand, and so versatile that you can try different things to find your specialism. It has also dramatically increased in popularity over the past few years. According to IEEE Spectrum, it has jumped to No.1!

Ruby – Difficulty level: 2

Ruby is probably best known for its Ruby on Rails framework which is great for building web applications.

Ruby has a strong focus on getting stuff done. This makes it great for quickly turning ideas into reality. So if you have an idea for a start-up you want to quickly smash out, Ruby is a good choice.

It has brought us the wonders that are Twitter, Hulu, and Groupon. Plus, for first timers, it is a fairly easy language to wrap your head around. So the learning curve won’t be too great.

C – Difficulty level: 3

C is an old language, and again, can be described as a general purpose language.

It is different from many other languages on the list because it uses Procedural Programming rather than Object Oriented Programming (OOP). This means it works through a series of structured steps to compose a program. Compared to OOP, which creates objects to store data and functions. I won’t go into the details about Procedural Programming vs OOP, that’s probably best saved for another blog post.

What you need to know is that C is mostly used for systems software, namely operating systems as well as scientific programming situation. It is quite a popular language, which has held the test of time.

Personally, I would say C is more akin to learning the science of how computers actually work. So, if that interests you great! Go with it. But for a beginner who wants to start building apps quickly, it may not be ideal.

This is not to put you off C, but to give you an idea of what and who it is best suited.

C++ – Difficulty level: 4

If you serious about professional 3D Game Development than C++ could be what you are looking for. Although, be aware this is not a language for the faint hearted beginner.

C++ is a superset of C, basically C but Object Orientated and with a lot more bells and whistles. Although C++ is pretty much the gold standard for 3D Game Development it also has other uses in system software, desktop, and mobile applications.

For a dedicated beginner, it can be done, preferably with a mentor. I will say that if you manage to stare the beast in the face and walk away successful, any other languages will seem like a child’s play!

C# – Difficulty level: 3

Where Apple has Objective-C and Swift, Microsoft have C# (pronounced C sharp).

C# is your first choice for creating Windows applications for desktop and mobile. You can also expand into web development thanks to Microsoft’s ASP.NET web framework.

C# is a very versatile language and with the introduction of Xamarin, you can actually create cross-platform applications for Windows, Android, and iOS.

The syntax is surprisingly similar to Java and for a beginner, it is not that hard to learn. It’s not easy, but it’s not hard, a happy medium I would say.

Java – Difficulty level: 3

You may have heard of Java and JavaScript, but don’t get them confused, they are not the same thing. I will be covering JavaScript in a second but for now, I want to talk about that hot dark cup of Java.

Like a few other languages I have already mentioned, Java can be used for almost anything! Think desktop, web, and mobile, again it’s quite general purpose.

You will find Java among big enterprises like banks, hospitals, and universities. But many people know of Java as the language of Android. Yes, the third piece to the puzzle, Java is the choice for Android fans.

If Android App Development takes your fancy maybe think about Java. You may also take comfort in knowing that there is a considerable demand for Java developers in the job market. So you won’t be short on job opportunities.

HTML/CSS – Difficulty level: 1

Time for a little disclaimer. Many people say HTML (Hypertext Markup Language) and CSS (Cascading Style Sheets) are not technically programming languages as they don’t provide any real programming functions.

However, if you are interested in Web Development you really need to start here. These two together are the building blocks of creating any static web page.

HTML structures all the text, images, links etc, while CSS makes it all look pretty. They are both very easy to learn and will set you up for a career in Web Development, which can be a very lucrative career!

JavaScript – Difficulty level: 2

You know I just said HTML creates the structure of a web page and CSS make it look pretty. Well, JavaScript comes in to liven things up with effect, animations, and transitions. That’s right, JavaScript makes web pages do stuff!

Although it is not just limited to websites now, JavaScript is coming out of web browsers and becoming a more general purpose language. You can EVEN create games with it.

For beginners, it is an easy language to learn and tends to be a natural progression from HTML and CSS. And in terms of the Job market, JavaScript is very sought after as it seems to be everywhere.

PHP – Difficulty level: 2

PHP is another language that is used in conjunction with HTML to provide functionality to websites.

It is one of the most popular languages for handling data on websites as it is particularly good at working with databases.

Search functions and login systems are created using PHP. And for a stamp of approval, global tech giant Facebook runs on PHP, which is worth noting if you’re looking to get a job at Facebook.

There are so many more!

Sorry but this is where the list end. There are so many languages out there and unfortunately, I just can’t go through them all because we would literally be here all day! However, I have managed to cover the most common ones out there.

Lets look at the STATS…How do the languages stack up?

It is always worth checking out the latest trends so you can get a feel for the popularity and demand of a language. Ideally, you DON’T want to pick a language to later find out that it has no future because no one uses it.

A languages demand should be a factor in your decision because that will give you an insight into the future career prospects with that language. 

Now, to save you the excruciating headache of trawling through hundreds of search results, I have compiled a little bit of research and found some great links.

Images attributed to Stackify.com

Its worth mentioning that Swift is fairly low down because it’s a new language. I would not fully dismiss it just yet since it’s part of the Apple family.

There are far more stats than this! But to avoid making this post too stats heavy, I thought I would only include these two key stats.

For in-depth stats on the latest programming trends, I would recommend checking out Stack Overflow Developer Survey Results for 2017.

One thing to note is demand for certain languages can depend on your location. So if an unspecified developer job is your main focus, look at the demand around you. But don’t worry, this is can be done with a quick job search.

My mistake…

Yes, I make mistakes…quite a lot to be honest. I am only human! In fact, many moons ago, before I even started this journey, I attempted to learn C. Don’t ask me why C, I just did. My thought process went a little like this, “I want to learn programming”, “C is a programming language right?”, “Ok, I will learn C”.

I had no clue what C was, what it was for, or where it would lead. Not surprisingly, I soon lost interest.

You need to know the practical applications of the language. Being able to learn practically helps you cement what you learn. You will also find it makes the experience fun! You get a real buzz when you stop and look at what you created, knowing not long ago it was just a fantasy.

The point of this cautionary tale is to do your research. Know what the language is for, what you can build with it, and even start thinking about small projects to get you started.

However, on the flip side, don’t spend your life researching. It will get to the point of procrastination and really what you need to do is JUST START.

Summary

First decided where your interests and priorities lie. Whether you’re looking to ease yourself in, carve out a career in the particular field, or have a really cool idea for a startup. Know what the important factors are for you, this will give you your starting point.

Next, do some research, and hopefully, this post has helped a bit with that. Also, have a clear idea of how you can use the language, and possible projects you could build.

Finally, don’t waste time on researching and just GET STARTED! In all honesty, your first language is not a fatal decision. You can always pick up and learn another, and chances are you will learn a handful of languages on your journey.   

As always, thank you for reading!

Sharing is caring!

About the Author Owen

Creator of Code Dad, father and self-taught programmer. My mission is to balance life, work, family, all while learning to code, and hopefully help others who want to do the same.

follow me on: