Skip to content

Comment on Ask HN: How do you learn a new programming language?

Comments

First, I go through a light language overview: fundamental concepts and syntax. This gives me a feel language, whether or not I want to pursue it (I keep revisiting and abandoning Clojure), and what I can learn from it and apply to other development in other programming languages I already know. For example, playing with programming languages with functional influences (Python, Scala) has influenced how I write Java code in my day job (more static functions, object composition over class inheritance, more re-use) even if I rarely touch those influential languages. For examples of a light overview, take a look at anything on w3schools.com or take a look at http://tour.golang.org which I read recently. I've taken notes before and it seems to provide very little value, especially if you have access to the light overview again.

Then you must build something to exercise that learning. If you just read and don't build, it'll slip away just as quick as it came. Solving an actual problem that you have is a good motivator for building something. Recreating something as you believe it should be is another one; for example, build your ideal word processor. Complete learning involves building things of significant complexity.

I would learn complementary languages to diversify skills. If you know C#.NET, time spent also learning Java is not necessarily that beneficial. They are similar. However, learning Bash for shell programming is at a different level of abstraction and is optimal for tasks that the aforementioned languages are not.

AboutSource Built by g1lg1l

Hackerly is an independent reader for Hacker News, built on the public HN API. Not affiliated with Y Combinator.