Ask HN: What steps do you take in learning a new programming language?

4 points by alltakendamned ↗ HN
What process do you follow to acquire and start using a new programming language?

What exercises do you go through, or what experiments or programs do you implement ?

3 comments

[ 3.0 ms ] story [ 11.8 ms ] thread
First, I get the tools installed. Then, I follow an introductory tutorial, paying particular attention to the concepts that I am least familiar with, and doing any exercises that are part of the tutorial. I then pick an example of a problem that I know, such as parsing a log file, writing a lisp interpreter, a simple web server, maybe a problem or two from the Euler site.

Picking a good tutorial can help a lot. For Python, I have both the introduction and the recipes book.

Also, I try to read a lot of code from github.

[Amateur hour alert]

I spend some time thinking about which version. Not a language, but recently - tensorflow. v1 has epic documentation but is about to die, v2 has no documentation but is the future. Made a conscious choice to accept pain & suffering by struggling with (temp) lack of support.

Any type of new tech - I usually start by spinning up a Ubuntu VM.

...because I've realised something always goes horribly wrong on first attempt & I'll need to sh!tcan the VM.

And second I like to try to push all the tech to latest beta (but not alpha/nightly). Not because I need the latest but because it lets me touch base with where the current community pain points/issues/thinking is. Emphasis on try. Noob attempting to roll with a beta of a tech he/she doesn't know is a very conscious & deliberate reach.

>What exercises do you go through

On the actual programming side - I make a bee line for the debugging equivalent of "print". It's all a black box to me until I can pipe output to something.

>programs do you implement

I find the classic example that is simple yet not hello world and dissect that. e.g. for ML the classic MNIST set. The code to get that to 90%+ accuracy is like 10 lines...you can dissect the hell out of that for understanding

First I read all the documentation.

Then I read the source code.

Then I check some tutorials.

Then I try it out with simple examples, nothing fancy.