Ask a pro: “Which programming language should I learn?”
By: Ville Yli-Knuutila
Tags: Information Technology, Development, Software Development, Programming

In job ads, technologies are mentioned to give an idea of what kind of software development is being conducted. So, jobs ads don’t directly answer the question of what you “should” learn.

The industry has learned that programmers, ideally, are communicative problem solvers and quick to learn. Our suggestion is: pick a modern language suitable for what you want to do, and learn this language well. Then you can tell a recruiter that you’re a skilled user of that particular tool. Such skills and understanding of programming fundamentals likely give you the capability to adapt to other tools.

Java and Python are widely used languages. They’re commonly taught at trade schools and universities alike. If you learn one, we dare to say that it’ll be easy to pick up the other. There are lots of beginner friendly resources available for both and you can get offered a junior developer position with either.

Never stop learning

So, you know Java or Python. What’s the next stepping stone? We think that could be JavaScript, which has little to do with Java, other than bizarre branding decisions made in the 90s.

Nowadays, JavaScript is an industry standard for in-browser apps and server side backends, which can help bring a sense of unity to complex codebases. However, JavaScript hands beginners numerous fine opportunities to shoot oneself in the foot.

JavaScript is being developed at a breakneck pace, and it can be tough to find learning materials that are both good and up to date. The opposite is true for more stable languages, like Java and Python.

What’s more, JavaScript is versatile and offers several ways to do things, especially when compared to Java. Useful as this is, it can be confusing for beginners, which endangers the goal of always understanding what code and examples thereof are trying to accomplish.

Know when it’s time to get the latest toys

Say you know a few languages. At this point, the next step to broaden your horizons is to try out different paradigms computer science has to offer. In other words, start taking advantage of the clever tricks specific languages have up their sleeves.

We’re talking about techniques like object-oriented programming, in which data is defined as objects and can be manipulated with methods and functions, and functional programming, when a function is fed input, and then outputs something. Examples of functional languages are Haskell and Clojure.

Languages offer different paradigms, and it’s not always feasible to say that one is superior to another. On the contrary, it’s advantageous to understand how computation can be performed in vastly different ways.

Conclusion

To sum things up: whichever language you pick first, stick with it for a bit. Put your mind towards really grasping the fundamentals of programming and then some. You can save a lot of trouble by picking up a second language that’s similar to your first.

When you truly are productive with your first tools, look for new things. JavaScript is a good candidate thanks to its wide use on the market. But remember, any single language in itself isn’t what really sets your CV/resume apart in the long term. The industry changes rapidly and employers looking for capable programmers want people who like learning new tools and solving hairy problems.

When you’re fluent in two or three languages, it’s time to approach them with an analytical approach. What are their differences? Which distinguished techniques are offered by each language? The internet is jam-packed with information and discussions about programming. Checking up on that talk is as important for programmers as medical journals are for physicians.

That’s it! Good luck, and remember to have fun.

This question was answered by Jan, Jussi, Herkko and Juhis.

“Ask a pro” is a blog series in which Kodan’s experienced developers and designers answer your questions. Want to pick the brains of the people digitizing the world around us? Submit your question here.