How do you start programming in a new language or technology? Do you take time to unlearn some of the specific things you've learnt, read up documentation and then dive into coding or do you start off coding and then pick up specifics as you go?
views:
61answers:
5Like most people, I learn best by doing.
The best way to learn a new language/platform/technology is to try and build something - write some application using it, read up when you get stuck, ask questions on SO.
It's perhaps easier to tackle existing problems with a new language/tool (if you can afford the time). That said, I have to again recommend ProjectEuler, if you're comfortable with algorithm complexity and mathematics in general. Otherwise, why not port an existing program you wrote into a different language? I believe many people went through VB -> VB.NET transition, or (if you're a Maya scripter) MEL -> Python.
I read background information to get a rough idea of what the language is about, which platforms it's made for, what apps it's designed for, etc. Once I'm ready to learn the language I'll first stop by the official site which should have a tutorial (Hello World :D), download whatever I need to get coding, then try the tutorial, hands-on. And I just continue from that point, trying more samples, reading further and so on.
I always start by reading a book. If there are multiple books available, I choose the one which covers a recent version of the technology and is highly rated on Amazon.
Looking at it from another angle, sometimes I'm looking for an answer for a problem and I find one which is only implemented in a new language/platform/technology.
This does not stop me from investigating and in the process I learn.
If it turns out to be fun then this encourages me to delve.
Just recently, I learnt some applescript because I wanted to remote control a mac app. That doesn't make me an applescript expert (only thru experience will make me that) but I see more possibilities which might help me do other tasks in the future.