The first thing a lot of students do as they finish their exams is wonder: How do I program? This question, as it did for me, eventually leads to the discovery of programming languages and, eventually, to more choices. One of the biggest questions is which language to learn. This article stems from a question a schoolgoer asked me: “which language should I learn?”
In Sri Lanka, most of the choices boil down to Java, C++, or the entire array of .NET languages. Almost every educational institute, from top-notch providers to roadside “diploma kade’s” have courses in these three. And only these three, it would seem. It’s often hard to decide, especially if you have no prior knowledge of programming. Each course is heavily advertised, often with jobs guaranteed in the flyers. Out of these choices, what’s actually useful? How do you choose?
Forget the advertising.
Flyers and promos are misleading. Consider this diagram, compiled by CodeEval for 2013. Notice how large the usage of Java is. Also notice how popular Python is.
Academia, no matter how good, are often slightly removed from the actual industry. This is why you pick up professional qualifications: to stay in tune with the industry. Now, the purpose of this article is not to hate on specific languages – but I don’t see the much-advertised Visual Basic .NET anywhere. Most of the Microsoft programming languages, in fact, seem to be missing. C++, often considered a “must-know” for any serious programmer, is surprisingly low in usage. C, C# are hanging in there. What’s happened here?
The world has moved on.
Gone are the days when much of the programming population spend time writing plugins, scripting system, functionality from the ground up. Right now, a lot of foundations has been laid. Languages like C and C++, often used to write entire operating systems, are falling out of usage – why? Because now that these platforms are stable and improving, most of the (ever expanding) population of coders have moved on to writing applications built upon these platforms. The frameworks, so to speak, are already in place. Nobody needs that timber anymore.
Let’s not take the CodeEval analysis for granted. Here’s Redmonk’s list for January, 2013:
- Visual Basic
The good news is, languages are easy to pick up. All languages, when you boil them down, do the same thing: send your vision, in little instructions, to the processor. Different languages handle this process differently, and thus some are more efficient than others at a given task, but all have this common base. If you know one language, you’ll be able to read and understand code written in another – and you’ll be able to pick up another language easily, sometimes in as little as a week. I began coding in Visual Basic 6 – mind you, I began early – and years later, I’ve picked up and used more than 6 programming languages, often dependent on what I’m working on at the time.
Going back to the original question: what to choose?
The answer: everything. Learn as much as you can. A lot of the software engineers I’ve met are well versed in a variety of languages. If you have a specific skillset or job in mind, don’t go blindly rushing into learn whatever courses are thrown your way: look in the Employment sections of newspapers for similar jobs from similar companies, and try to learn the languages they require. SQL, PHP generally pop up in these lists. Start somewhere, preferably with what you perceive as the hardest.
Have something interesting and IT related to share? email the [email protected]