Live data from Hacker News

Ask HN: How do experienced programmers learn new languages?

news.ycombinator.com

11–20 of 21 posts

Re: Ask HN: How do experienced programmers learn new languages?

#11
I don't know about other people, but the only way I really learn a new language is by dedicating myself to build a project using it, no matter the size, but it has to be something that you have a clear vision of what you want to build (so you struggle at the hard parts, instead of just changing the course of the project). This will make you search for ways to "say" what you need in that language. It's analogous to going to another country to learn a foreign language.

Re: Ask HN: How do experienced programmers learn new languages?

#12
Read through the documentation. Write some simple code to learn toolbox idioms and patterns. Read through the docs again. Look at some simple code. Build something non-trivial. Then read through the docs again and you're ready to go.

Learning something new in your field of study is not different, it is just easier because you have some context.

Re: Ask HN: How do experienced programmers learn new languages?

#13
I keep a list of side project i want to build. When i begin a new project and the new language/technology i think might be a fit, i'll build something in it. THis forces me to think outside the usual hello world tutorial and building another to do list. And the problems I face to build my custom project forces me to think and get into what i'm learning

Re: Ask HN: How do experienced programmers learn new languages?

#14
post #9

This was taught to me in college a decade. "Programming language is just a syntax, the core logic of getting things done is already available in your brain." Here is what i'd do A) Remember what you already learnt from your favorite language 1] Syntax 2] Libraries 3] Reference Documentation 4] Organizing your code 5] Building / Running Programs 6] Deploying code to farms of servers (if you are interested in sysops, e…

"Programming language is just a syntax, the core logic of getting things done is already available in your brain."

Is this actually true, though, when jumping between programming paradigms?

Re: Ask HN: How do experienced programmers learn new languages?

#15
If you have a background with a Computer Science degree, it makes it easier. One of the later courses in the program I had was assembly programming. Everyone said this was the class that weeded out people. I found it easy because there were only so many ways to do things and you really begin to understand how computers work at the lowest software level possible.

Once you have a basis of data structures, object-oriented programming, and an understanding of libraries in one area (say web programming with Java Servlets) then learning another language is just a matter of building something and reading the API docs as you go.

Try re-writing something not trivial but not overly huge to learn the differences between old and new. After a while they all look the same, regardless of how trendy or hip something might be.

Re: Ask HN: How do experienced programmers learn new languages?

#16
post #9

This was taught to me in college a decade. "Programming language is just a syntax, the core logic of getting things done is already available in your brain." Here is what i'd do A) Remember what you already learnt from your favorite language 1] Syntax 2] Libraries 3] Reference Documentation 4] Organizing your code 5] Building / Running Programs 6] Deploying code to farms of servers (if you are interested in sysops, e…

"Programming language is just a syntax, the core logic of getting things done is already available in your brain." Is this actually true, though, when jumping between programming paradigms?

My only experience learning a new language that use a completly different paradigm is Prolog. The syntax and builtins make it hard to write something else that what it is meant for.

Do you mean learning or mastering a language. It is kind of different. Looking for "ideomatic python" will help getting pythonic Python code done.

Not going against the spirit of the language helps.

Re: Ask HN: How do experienced programmers learn new languages?

#18
There probably is something you have done lots of times, mildy complex, but you know how to write it in the languages you have done before. With the new language you take that example and try to see how it would apply to the new language. You know what you want to do and what to expect for output so most of your brain is occupied by implementing in in the new language.

I've read folks who have some game such as tetris or some other as an example.

Also since I know various language commands and methods, I'll read through the language reference from ! to z and see how it compares to what I know and probably take notes along the way.

Re: Ask HN: How do experienced programmers learn new languages?

#20

Earlier quoted context omitted.

"Programming language is just a syntax, the core logic of getting things done is already available in your brain." Is this actually true, though, when jumping between programming paradigms?

My only experience learning a new language that use a completly different paradigm is Prolog. The syntax and builtins make it hard to write something else that what it is meant for. Do you mean learning or mastering a language. It is kind of different. Looking for "ideomatic python" will help getting pythonic Python code done. Not going against the spirit of the language helps.

Well, even just using a language (without mastering it) can be a lot more difficult than simply learning the syntax.

For example, many years ago, before I really got functional programming, I tried to learn ML and while I figured the syntax out very quickly, solving problems in a functional style was a lot more difficult and I found it hard to use the language. Learning to use Python or Ruby or Java or C#, albeit not idiomatically, is a hell of a lot easier.

Of course, knowing a language is a lot more than just learning enough to use it, though you certainly don't have to master a language to know it (and many people will never completely master their languages, despite knowing them quite well and using them effectively - for example, I'd wager few people have truly mastered C++).

Post reply on HN