Moving to Three Languages

10/02/2015

I’ve made the move to just three languages: JavaScript/Node, .NET / C#, and Go. In an age where new coding languages pop up more often than a Windows update, you may question my sanity with this move.

Let me explain why I’ve moved to using only three coding languages.

You probably know that the traditional college track is to learn multiple languages — individuals with computer science degrees are usually trained in at least half a dozen languages by graduation. But is there any value in multilingual coding when you move out of the theoretical world of the classroom and into the real world and workplace?

Different coding languages are just different tools for different jobs — but they also shape how you think about programming. Learning similar languages may not progress your thinking much — that’s why I’ve gone for three very different coding languages with very different paradigms.

First up, there’s JavaScript/Node. Javascript is just everywhere and no matter how painful you may find it to learn, it’s a must-have language to build anything these days. If you know JavaScript then Node is a great add on as it gives you the server side capabilities to create simple and quick solutions. Plus there’s an amazing community behind it to make the learning process a little less painful.

C# could be the greatest language ever invented because of the changes that Microsoft has introduced. I’d even go as far to say that it surpasses Java. For a long time I have loved C# and the .NET Framework but became disillusioned by the inaccessibility of the code. Microsoft effectively locked it in so it was near impossible to run across different platforms and use with next generation tool sets. This has all changed in recent times. .NET is now open source https://msdn.microsoft.com/en-us/library/dn771552.aspx and will be cross platform. It’s fast, functional, one of the best languages out there, and can work for the smallest or largest of projects.

Finally, there’s Google’s Go, which is a new compiled programming language designed for modern hardware architectures and concurrency. It’s an engineered language, which has been designed to natively take advantage of modern hardware architectures and solve problems with existing languages and tools.

The combination of these three languages gives me the fundamental tools to solve any technical issue and keep up to date with different concepts and trends in the coding arena. They balance the old with the new, the established with the cutting edge and the back with the front end.

Which languages should you learn?

Coding languages are just tools in my development belt to solve real-world problems. These three tools need to be able to swing between the two opposite ends of the coding scale and balance scripting/ease of use with a more server side language.

So which ones should you choose? This is a matter of preference — what sort of developer do you want to become? If we glance at the TIOBE’s popularity index then Java, C, C++, PHP, JavaScript and Python all dominate. This gives a useful snapshot into the most popular languages within the current development community — which is an important consideration as you need a large community to support and answer your questions when you start coding.

There is no single answer here. There is no superior coding language — it’s like comparing apples to oranges — you have to ‘go’ with what works for you (no pun intended).

In the end, just use a tool that gets the job done.

< Get Your Kids to Start Coding
Picking a Co-Founder is Hard >