People who have been following me kind of know that I have been mostly writing about machine learning these days. But it’s the end of the year and everyone is coming up with their best programming languages for year 2018 and what could be the programming languages for the year 2018. So, I also thought that I should also say something on the topic and not let the chance go by. 🙂
This post is for those developers who are seasoned in Python and are looking for ways to improve their skills and become more attractive in the job market. In case you are a beginner still this post may have something for you. As a bonus I will tell you the programming language you need to start with. Also, please note that the listing here does not mean that I am ordering them. Please take into account your individual goals and motivations then choose the language that you would like to learn.
That was web programming. Although Python has many advantages but one of the key disadvantages is that it is notoriously difficult to create native apps. If that is the case, why should you as a developer disadvantage yourself. Take a look at Xamarin. You would write in C# and easily deploy in Android, iOS and even desktop apps. I would suggest learn basic C# and Xamarin, keep all your business logic in flask endpoints and easily create android and iOS apps on the fly with minimal code.
Armin loves Rust and hence I love Rust. So, you should learn Rust. Period.
The above statement should be your biggest motivation, but in case you are not convinced, there are many good things going on with Rust. The fact that it does not have a runtime makes it an excellent candidate for those small patches of code that take a lot of memory and CPU. In case you are looking to make code optimizations and were thinking about C or C++, take a look at rust. It might be just right for you and your team. Take a look at this excellent article on the same.
Although I don’t really like these languages, the fact of the matter is there is a lot of legacy code in C and C++. Also Python is written in C and if you want to get into the internals of Python you should probably know C. Another way to look at it is that the current trends are Machine Learning, Artificial Intelligence and probably AR/VR. All of them are computationally intensive and hence, to wring out the most from your machines you probably will need to know some C and C++. Maybe this is the right time to get into those languages now that you have solid Python under your belt.
All of the above are good choices but probably you are just interested in earning money. Or probably things are not going good at work and hence you are thinking of taking the freelancing route. In that case PHP should be a good bet. You may think why am I saying this although you may have heard a lot of people dissing it. Generally, tools are not inherently bad, its the programmers who are bad. An excellent example is that Facebook was able to build a massive empire based on PHP. Also, major portion of the web is based on WordPress and there is still a lot of wordpress related freelancing jobs. In fact, I would argue that its a good thing that people are speaking bad about WordPress. Think about it this way. Once the code in a lot of websites become old and are legacy, there will be high demand for people who know PHP and you will be able to demand a high charge for your services.
Now lets get away from money and come to the world of the uber geeks, code quality and best code structure. If you fall in that realm, probably you should look at Clojure. You can choose any of the other functional programming languages as well but I will tell you why you should consider Clojure. IT WILL GIVE YOU A PURPOSE. Just imagine you started with Clojure and you have mastered the functional programming concepts and are writing pure code with microscopic amount of side effects.
Interestingly, Clojure runs on JVM and you can now write Java apps. You now have the power to wage war against those corporate managers and team leaders and those corporate developers. They will write all those massive architectural designs for simple TODO apps while you will be doing the same thing in 50 lines of code. You will able able to piss off everyone. Just a little food for thought for the rebel in you.
That’s it from me. In case you have some favorite lang which I have not included in this list do write them out in the comments. Also, I had promised that I will speak about the language that you should learn in case you are interested in programming and what to start in the field. The answer is easy. PYTHON.