Which programming language should I learn?
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
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
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.