Live data from Hacker News

Ask HN: Learning New Programming Languages

news.ycombinator.com

1–10 of 13 posts

Ask HN: Learning New Programming Languages

#1
I know I am not the only one interested in learning new languages and I find myself dabbling in a few at the moment. However I struggle to get the feeling that I make any progress. I scroll through tutorials where they describe what variables are or how to create a list already knowing these basic concepts.

I can breeze past the simple things but when it comes to advanced concepts in a language, I sometimes get the idea that I glossed over something I should not have. In the end I want to start writing a project right away and skip over your "Hello, World" material.

How do you all handle learning a new language and becoming comfortable with it?

Re: Ask HN: Learning New Programming Languages

#2
Just like you said! Start a project with it, and learn what you need along the way. Obviously your code will not be all idiomatic on the first try, but that's OK. Along the way you will run into situations where you'll think, "There's got to be a better way," or "If only I could use X feature from Y language." Or maybe you need to debug something with a library you're using but you don't understand how it works. Those are perfect opportunities to learn more advanced concepts.

Re: Ask HN: Learning New Programming Languages

#3
Try implementing something that has a real world use case. It may not matter that your use case doesn't have much of an audience. My first Python web app was a syslog search/filter app that I only used on my home network machines.

After a couple of tutorials you really need to break out and try something on your own. I got quite proficient in C++ by specifically using it in programming competitions such as those hosted by TopCoder or CodinGame. I wasn't in the competition for the top score I was there to learn. I knew about core C/C++ syntax but not much about the standard library. Now I do, as I needed to quickly use the stdlib to get the data structures I needed to solve the problem.

Re: Ask HN: Learning New Programming Languages

#4
post #3

Try implementing something that has a real world use case. It may not matter that your use case doesn't have much of an audience. My first Python web app was a syslog search/filter app that I only used on my home network machines. After a couple of tutorials you really need to break out and try something on your own. I got quite proficient in C++ by specifically using it in programming competitions such as those host…

I suppose most of my ideas for projects seem silly and I never follow through. Maybe I need more discipline :).

Re: Ask HN: Learning New Programming Languages

#5

Just like you said! Start a project with it, and learn what you need along the way. Obviously your code will not be all idiomatic on the first try, but that's OK. Along the way you will run into situations where you'll think, "There's got to be a better way," or "If only I could use X feature from Y language." Or maybe you need to debug something with a library you're using but you don't understand how it works. Thos…

This is true. There will always be room for improvement on anything, especially this.

Re: Ask HN: Learning New Programming Languages

#6
You need to pick a project you feel passionate about, find a small piece of paid work, or find a friend in need of getting a project done to push yourself through. I also found looking at other people's DEV work being helpful, too, granted that the developer is willing to share and explain.

Re: Ask HN: Learning New Programming Languages

#7
I tend to solve a problem that I fully understand in order to get a feeling for the language and what it can do. For example try programming a version of tetris or blockout. You know what the result should look like and will be able to evaluate how the language behaves, what apis there are and how well it is documented.

You might want to experiment with different types of projects, for example a little webserver, webscraper, games or general tooling for whatever problems you encountered before (I tend to write desktop cleaning programs a lot).

Maybe you can find inspiration in this book:

https://pragprog.com/book/btlang/seven-languages-in-seven-we...

Re: Ask HN: Learning New Programming Languages

#8
post #7

I tend to solve a problem that I fully understand in order to get a feeling for the language and what it can do. For example try programming a version of tetris or blockout. You know what the result should look like and will be able to evaluate how the language behaves, what apis there are and how well it is documented. You might want to experiment with different types of projects, for example a little webserver, web…

I agree with you. I wrote a very simple HTTP server in C once to learn more about threading. The thing is, I want to become better with Go and it has a lot of stuff baked into the language. There is a seemingly infinite amount of other things I could write though.

Re: Ask HN: Learning New Programming Languages

#9
post #6

You need to pick a project you feel passionate about, find a small piece of paid work, or find a friend in need of getting a project done to push yourself through. I also found looking at other people's DEV work being helpful, too, granted that the developer is willing to share and explain.

I do try and scan through Github every now and then but even then don't feel comfortable if I am still new to the language. But giving back to open source is always a good thing to try out.

Re: Ask HN: Learning New Programming Languages

#10
Martin Ordersky hisself is teaching Functional Programming in Scala starting September 15th:

https://www.coursera.org/course/progfun

If you don't know C, or Python or Ruby, there's always "The hard way" with Zed Shaw:

http://learncodethehardway.org/

October 2, Coursera is abain offering Dan Grossman's Programming Languages, it covers general concepts in programming language design using SML, Racket, and Ruby.

https://www.coursera.org/course/proglang

Post reply on HN