The age-old question: “What is the best programming language to learn?” I have asked this question too when I first started learning to programme. However, before I answer this question, let me share a short story about myself regarding this topic.
When I was a kid, I became very interested in the software development process. I always wanted to know how software programs came to be. I started consuming a lot of media that had any kind of programming in it.
This led me to believe that there was one programming language for every purpose out there. When I finally decided to get serious and learn how to code, the first book I picked up was “C Programming Absolute Beginner’s Guide” by Greg Perry and Dean Miller.
After I had finished the book, I thought “Well, I know how to program, now I can build apps and websites!”. So I began searching for ways to convert my knowledge into real software with search queries such as: “How to create web pages in C” and “How to build iOS apps in C on windows.” I was quickly met with a lot of articles suggesting several markup and programming languages.
This discouraged me at first but I was determined to do what it took to make sure I developed the skills necessary to be able to build websites.
What I realized when I started learning these other languages is that they were so much easier to pick up and grasp than my first programming language. The biggest differences between programming languages seemed to mainly reside in syntax, conventions and paradigms.
I quickly realized that picking up programming languages and frameworks as I needed them was going to be an integral part of my software development career.
The question itself has an answer that many people do not like to hear and I used to be guilty of this myself. That answer is: “It depends.” There are many types of software out there and each serves its own purpose and runs in an environment that will determine the kind of technologies used.
Embedded software, web apps, mobile apps, and video games are just some of the types of software that we use every day and there are hundreds more. In fact, if you are going to be employed, it is very likely that you will be working on projects that are already in development and will need you to work with the technologies being used whether or not you prefer them.
As mentioned before, the type of application will heavily affect your decision on which technologies to use. For example, I would use Python over C to develop a web app due to python’s simpler syntax and the availability of popular web frameworks like Django.
However, if I wanted to develop embedded systems, I would pick C over Java due to the overhead of running the JVM. If your decision on which language/framework is not swayed by the purpose of the software or the platform that you’re developing for, then you’re probably going to run into some problems.
The biggest issue with this question, however, is the fact that it actually isn’t the right question to ask at all. Whenever someone asks me which programming language to start with I either suggest C, Python or Java but this is only because I’m biased towards these languages due to personal preference.
These are not objectively the best programming languages by any means. Besides, even if there are multiple choices that are suitable for a specified project, languages differ in strengths and weaknesses. Whether you prefer simpler syntax or a language with a larger community will also factor into your decision.
Whatever language you pick up in the beginning, make sure you use it as a medium to learn about programming concepts and develop best practices that will be beneficial in the future.
If there’s one thing to take away from this post, it’s that you should not have an unshakable attachment to any one programming language. Putting more emphasis on the result and using the most suitable approach is more important as a software developer.
Focus on learning concepts, they have a large carry-over between languages and frameworks. Once you’ve learned a few languages and have experience building apps, learning new languages will not be too difficult. The best programming language is the one that you can be productive with.