Choosing a Programming Language

One of the main questions prospective programmers ask is ‘what language should I learn first?’ There is no right or wrong answer here, merely points you should consider to help you make the best decision for your current situation.

Most people will probably tell you that one of the easiest languages to start with is Python, and I agree. It is very high level—meaning it’s further removed from machine language and closer to English—and it just makes sense. Many people think of it as a simple scripting language but it is actually extremely versatile and is often used in data science and as the back end for websites. You can even make games with Python if you want.

But maybe you don’t feel you have time to start learning a language that may not match up with your end goals. If you want to start applying for programming jobs as soon as possible, then you should first look at what is available in your area. It may not make much sense for you to start learning PHP when there aren’t many jobs requiring that language.

You may also just want to learn a language quickly so that you can create a project you’ve been thinking of. Although programming languages are versatile and there is a lot of overlap in what they can do, there are usually some areas where certain languages excel.

Automation

Maybe you just want to automate some tasks at work to make your job easier. Python is a great language to begin with for this, and there is even a free online book available that focuses on this topic called Automate the Boring Stuff.

Web Development

If you are interested in creating websites then I suggest you first learn HTML and CSS. These are not programming languages but they are crucial to web development and they will not take you long to learn. After that, you should move on to JavaScript. This is all you really need to get started if you intend to focus on the front end.

If you think you would like to concentrate more on back end development, then after learning HTML and CSS you have a few options. It’s a good idea to learn at least some JavaScript, which is a solid choice for the back end too and a good default if you are not sure what you want. But there are many other languages that can be used here including PHP, Java, Ruby, C# and Python.

Games

I know that wanting to create your own game is a pretty big reason for learning programming. I’d like to make one myself one day. The languages that are most often used for game development are C++, C# and Java.

System Software

If you are interested in programming system software—think operating systems and web browsers—then you should learn C or C++. These are more difficult to learn, especially as a first language, but if you become competent in either then it will help you a lot when you go on to learn other languages.

Mobile Development

If you want to develop for Android, you should start by learning Java (which has no relation to JavaScript).

If you want to develop for iOS, then you should learn Objective-C followed by Swift.

In recent years other languages have released tools to develop mobile applications, such as JavaScript’s React Native, so there may be other options out there.

Data Science

Data science seems to be very popular these days. Maybe you really just want to learn programming so that you can work with data and statistics. You will likely benefit most from learning Python, which has many libraries to help analyze and visualize data. When you’re confident with your Python skills you may like to learn R too.

Conclusion

If you are still not sure, check out this infographic.

Still can’t decide? Then start with Python. As you learn, you will come to discover the kinds of projects you enjoy working on. And once you know Python, you’ll find it easier to learn another programming language.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s