Which programming language should I learn?

When the choices are vast, decision making becomes painfully complicated. Several of our fellow engineers write to us with the same question - "Which programming language should I learn for better future, career prospects and growth?". Thankfully, we have the answers. This help article aims to provide you with what to expect in future and how should you prepare for the future with the right set of skills and tools. By the end of the article, you may expect to have a proper direction to proceed and take action.

The Basics: Learn 'programming', not 'language'.

All I meant to say is that when you learn to program, you will be able to code in any language. Programming is an art that can be learned. When you know how to 'program', you will be able to master any programming language in shortest possible time. Here's how it works:
  • You start with any programming language of your choice.
  • You learn the basics of programming - algorithm, conditions, loops, arrays et al.
  • You code several projects and develop deeper understanding of the language and how programming works in general
  • You are now ready to take on any language and learn it within weeks
With that point at the back of your mind, let's take a look at what's coming in future so that you can make smarter choices.

The Future: JavaScript and Big Data

The rise and popularity of the JavaScript (JS) and JS based frameworks (Angular, Node, React, Backbone, Ember and so on) has changed the web development scene to a large extent. JavaScript's commanding top salaries in the market these days and I'd guess the trend to continue for at least next 5-6 years. If you are preparing for future technologies - you ought to learn JavaScript and master any of the popular frameworks. Angular is backed by Google and React (is actually a library) is backed by Facebook; so you can be sure that they are here to stay. Ember is also being picked by the developers.

Point: Learn JavaScript! It's a must. Remember, JavaScript and Java are totally different! Don't get confused.

Big Data:

This is a vast domain and you will actually have to research on your own as to what specific skill you wish to pick up. Hadoop framework is one of the popular choices in the big data technologies. You might also want to look at MongoDB or other NoSQL solutions if you wish to get into Big Data domain. One thing everyone should clearly understand is contradictory to the popular notion that 'Big Data' is name of a new kind of 'technology'; it's a collection of tools and technologies that help manage tremendous amounts of data rapidly and efficiently. Yes, traditional languages are also useful in Big Data management.

What About Traditional Languages?

There are some languages that just world can't do without - C, C++, Java, Python to name a few. Many of these languages continue to form the 'base' for the newer languages and tools being developed for specific use cases. However, one thing to remember is that when it comes to the job markets and salaries; the newer technologies and programming languages seem to have an edge.

I must make it clear that the jobs and salaries are a function of your local IT ecosystem. If you are in the US - you might get paid a lot for your SWIFT (Apple) programming skills. If you are in India - you might be be well off learning a .NET language or Java programming because Indian IT thrives on outsourcing.

What should you do in such a case? When starting to learn programming - pick up any of the traditional programming language. There are several advantages:
  • The documentation and help is readily available for the traditional languages
  • There are expert communities dedicated to these languages and that can be a life-saver for a newbie programmer who needs help
  • With ample help available around, you can reduce your time to learn and move on to newer programming languages
Mobile App Development:

If you wish to make a career in App development; given that there are several mobile app development studios around, you can't ignore Android and iOS app development. You should be able to make quick progress in Android development with knowledge of Java programming and for iOS, you will need to know Objective C or Swift programming language. That is the reason I said you ought to start with any of the traditional languages when you are completely new to the world of programming. Between C or C++, I'd recommend starting with C++ so that you get a good grasp of how object oriented programming works.

PHP:

Despite the fact that several developers hate PHP; it continues to power over 70% of the Internet. When it comes to jobs - you can't ignore the power of PHP. Of course, you'll have much better chances of getting a job if you equip yourself with PHP + JavaScript. The number of jobs in PHP have remained stable over the past few years but it's on slow decline. It should NOT deter you from learning PHP; because there are going to be PHP jobs for the next 10 -15 years for sure.

Modern Languages / Tools / Frameworks:

The good and bad thing about faster technology updates is that while you've great choices for the technology, you always have to keep learning. That's the reason I suggested that you focus on learning to 'program' without getting emotional about any specific programming language. Develop confidence that you will be able to take up any programming language in days as opportunity demands.

Final Action Items:

If you skipped the above article and directly came here looking for answers; this is not going to be a very effective answer. In any case, you should have knowledge of any traditional programming language (C++, Java, Python) and then enhance your skills set with JavaScript + framework + any database solution (MySQL or MongoDB etc.)

Unfortunately, there is no short-cut to hardwork. You will have to keep reading as much you can about upcoming technologies and see which one looks interesting to you. You can always ask questions to us and we will be happy to help.

Do you have questions about any specific technology or tool? Ask here below.

Disclaimer: I'm fully aware that I did not cover all the future technologies in this article. There are so many domains - like wearable technologies, IoT, AI and so on that are going to dominate the future. Let's discuss these through questions and answers below.

Replies

  • Ramani Aswath
    Ramani Aswath
    Kaustubh Katdare
    Programming is an art
    I completely agree. In the early sixties we had only a mechanical calculator. It could only do the four basic arithmetic functions. It gave me a lot of pleasure to develop an algorithm based on number theory to get square roots from that.
  • Dijen Biswas
    Dijen Biswas
    Thanks sir for such a informative post...sir what are the essential prerequisites for learning Hadoop..?
  • Kaustubh Katdare
    Kaustubh Katdare
    Dijen Biswas
    Thanks sir for such a informative post...sir what are the essential prerequisites for learning Hadoop..?
    There are no prerequisites to learn Hadoop. However, you'd be much better prepared if you have a solid grasp over Java and UNIX systems.
  • Jash Mota
    Jash Mota
    Which are the languages which one can program in to develop VR apps and games?
  • Kaustubh Katdare
    Kaustubh Katdare
    Jash Mota
    Which are the languages which one can program in to develop VR apps and games?
    It's still mostly Android development; for which you'll need expertise in Java. There are SDKs available from VR gear makers. The best way to start would be with Android Cardboard. This would be a good starting point: #-Link-Snipped-#

You are reading an archived discussion.

Related Posts

Born and brought up in Delhi, Vinita Joshi is a first generation entrepreneur. After completing her graduation in Electrical and Electronics engineering from Guru Gobind Singh Indraprastha University, Vinita started...
I need help on my final year BCA project: Build a virtual reality system where people can interact with virtual objects or creatures without the need of headsets, goggles, or...
Market research company CyberMedia Research (CMR) released its 'India Quarterly LTE Device Report' on June 17, 2016. According to the report, more than 15.8 million LTE or 4G ready devices...
The talented engineers at MIT and University of Georgia have developed a new technology that can turn any regular smartphone camera into an eye-tracking device. The system can accurately determine...
If I am given the following information: From strain gauge readings taken at a point within a structure under plane stress conditions, it was found that the stresses with respect...