
One of the most common questions that any beginner to programming will ask is, “What language do I choose?” After all, with the number of options out there, it can get quite overwhelming for someone who doesn’t know the pros and cons of each one. So what is the right answer? Truth is, there is no right answer to this question. Like all choices you’re presented with in life, you’ve got to decide based upon your specific needs or goals. Now while I cannot simply choose for you, I can show you the best options, and why. Let’s get started.
Identifying your Goals
The very first step in choosing an appropriate starting programming language is to ask yourself, “What do I want to accomplish?” You need to have a basic idea of what you’ll want to create or what jobs you’ll want to do. Write these down somewhere, it’s very important. Then, follow the list below and compare it with your goals.
Choosing your Starting Programming Language
Java
As one of the most popular programming languages, Java has been a staple of the coding world for years. At one point it was the ‘brain’ behind many web applications, until HTML5 and JavaScript took over. Don’t let this turn you off; Java is still a highly used coding language even in 2016. In fact, it is one of the most popular languages for employers worldwide. According to Indeed, Java showed up in job titles over 4 times as much as its closest competitor, C#. You can check out the entire post discussing these findings over at the NewRelic blog.
So what’s so good about Java? Simply put, it’s a highly reliable language that is also quite versatile. One of the biggest selling points of Java is that it’s the language behind all Android applications. Yes, by learning Java, you could go on to developing high-quality Android apps that are featured in the Google Play store.
Pros:
- Fairly easy to learn
- Is in very high-demand in job markets
- Has a great Object-Oriented structure
- Is the foundation for Android app development
- Plenty of documentation and resources to learn from
- Can produce applications for multiple platforms
Cons:
- Had its reputation tainted by numerous security issues (early 2000s)
- Has lost popularity on the web in favour of HTML5, JavaScript and other web-focused languages
Result: Choose Java if you want to get into mobile app development, or you want a great, stable language with plenty of documentation to go around. It’s a great language for learning many core programming principles, and makes learning other languages easy.
C++
As another major contender in the coding world, C++ is very stable, has plenty of documentation, and is still in pretty high demand. Despite not being completely beginner friendly, C++ is still very easy to learn. It also teaches important concepts which are found in many of the most popular programming languages today. Also, Unreal Engine 4, a widely popular game development engine, uses C++.
Although it is now growing outdated, and outclassed in some respects by its successor C#, C++ remains a powerful and fast language.
Pros:
- Extremely popular
- Very powerful
- Runs faster than many modern languages
- Used in Unreal Engine 4 for game development
Cons:
- Has a higher difficulty curve as opposed to other popular options available
- Lacks many security features, causing memory leaks among other problems
- Is picky with code formatting
Result: Choose C++ if you’re willing to deal with the slightly higher difficulty curve of the language. If you learn C++ well, you can learn just about any modern language a lot easier. Also, if you want to get into game development, C++ provides a great pathway to this.
JavaScript
Despite having the word ‘Java’ in its name, don’t be fooled. JavaScript is a completely different language, with a different purpose in mind. If you’ve ever wanted to code, with websites in mind, this is the perfect language for you. With a very low barrier to entry, and a smooth learning curve, JavaScript comes out ahead of the competition where ease of learning is concerned. In addition, having a ton of frameworks made under it, has allowed JavaScript to become one of the most versatile languages for web development.
Despite being mostly limited to the web, there are now a few methods of creating applications for other platforms using JS.
Pros:
- Easy to learn
- Highly popular among developers
- Very powerful
- Has a ton of frameworks which extend its capabilities
Cons:
- Limited in use outside of web apps
- Can present various security issues
Result: If you have an interest in web development, choosing JavaScript is a no-brainer. You will have to learn a few more languages such as HTML5 & CSS to make the most of it, but due to the ease of learning all 3, you’ll likely have a great time with it.
Python
As a widely popular programming language, Python combines ease of learning with simple implementations and great flexibility. With a core focus on beautiful code, Python is an excellent beginner’s choice that has plenty of potential for a wide range of uses. In addition, Python contains a large standard library, as well as plenty of available 3rd-party libraries extending its functionality.
Unfortunately, Python isn’t really present on mobile or web platforms because of being hard to secure. It finds its strength on desktop and servers alike.
Pros:
- Easy to learn, easy to use
- Highly readable
- Used often in automation of repetitious tasks
- Catered to various programming styles
- Has been instrumental in the creation of new platforms such as the Raspberry Pi
Cons:
- Can be slower than most compiled languages
- Limited use in platforms outside of desktop
- Has many design restrictions
Result: As a modern language with an emphasis on clean, readable code, Python is a great choice for beginners who want to learn the creation of good-looking code. Its also great for getting into newer platforms such as the Raspberry Pi. Despite being slower than many of the other popular options, Python makes up for this with a very powerful library.
Summary
Choosing a starting language can be difficult choice for a beginner, but it all comes down to what features you value the most. If you need to develop on multiple platforms, C++ and Java are great options. Need to create Android apps? Java is the obvious choice. Need to automate various daily tasks? Python is excellent!
In the end, your first language should never be your last. Programming is all about continuous learning and testing. If you spend all day worrying about which one to learn first, you may never actually get started. Get out there, pick a language and get started coding!
Do you agree with this list? Comment below and let me know your thoughts! You’re free to suggest even more options for a beginner.