views:

373

answers:

11

I've read that an effective approach to improving your programming skills is to learn new languages and frameworks.

How do you approach learning a new language/framework?

Even with the wide range of information available online, I often find myself looking for a good book on the language I'm interested in. With the basics understood, I then feel comfortable to begin to look elsewhere for further information. However, I recently began to look at the EXT JS javascript library and without a book to hand I found myself digging into the documentation in combination with the demos/samples provided. I was 'hands on' writing the code and seeing what would happen far earlier than I normally would be.

I'm interested in how others do this. Do you have a consistent approach when looking to take on new skills?

+21  A: 

Find a good reference and start building something. Learn what you need for the current task and you'll have a basis on which to decide what to take on next.

Joe Skora
+3  A: 

I find some tutorials/documentation, and then I proceed to write a small but useful project of my own devising in it - frequently referencing the tutorials/docs. I find it works much better that just blindly following some tutorial, as it really forces you to think about what you're doing.

Ycros
A: 

Get a book and try practising some of the examples. Write some simple hello world programs, and then experiment with the more advanced features by trying to write a non-trivial application such as a small game, text editor, or web browser.

I think a hands on approach and actively trying to write some code are very important.

Chris
A: 

Start with "Hello world" or equivalent. Once you have that then you can compile/run successfully so you can start actually doing something useful. Just jump in has always served me best. I'm still using perl apps that I wrote when I was learning perl. The web is always a great resource if you don't understand something or can't figure something out on your own.

tloach
+1  A: 

I always start by looking for introductory examples online. Based on the examples and my motivation for learning the language/framework, I come up with a short project for myself to get used to the new technology. After that, if I feel I need more comprehensive documentation, I might pick up a book on the subject.

David Crow
A: 

If there are not many books available then I usually try to find and understand several code snippets to acclimate to the syntax. Then, I translate several programs/algorithms with the new language.

Nescio
A: 

Find a good tutorial watch screencast (if any). Read documentation and listen to related podcasts when away from computer.

Build something - start from basics, apply all those things you've learned.

When stuck ask on a forum (or on StackOverflow) and wait for help from community

Tomasz Tybulewicz
A: 

Well, I start by building up a list of sites about the tech I'm interested in learning. I'll also look for community sites or forums and blogs that have recent activity or participation by the principles of the technology. If the official site has any tutorials or guides I'll read those and try out the samples.

Once I've identified the key people that are actively publishing information about the technology, I'll ready their blogs, try some of their samples out. If I'm actively attempting to apply the technology in a hobby project or at work, and I have any issues or questions about it, I'll direct it towards those forums and principals I've identified.

Kris
+2  A: 

Find a quality written reference (online or paper), and a good video/podcast about the subject. I think immersion is the best method for approaching any new subject.

I usually:

1: Read high level explanations to get the concepts.

2: Listen/Watch a video or podcast on more specifics.

3: Pull up a good reference manual with easy to find methods and syntax.

4: Pick a problem and get to tackling it.

5: Throw any problems or error messages into google (or stackoverflow)

6: rinse and repeat

ethyreal
+1  A: 

I follow two simple guidelines which have worked extremely well for me:

  1. Do research to find the single best source of learning for you about the topic you're interested in. Sometimes this may be a book, sometimes this may be video lectures, or something else entirely
  2. Practice every single day

For example, when I wanted to learn C, I did the following:

  1. I read every review for every C book on amazon.com in addition to doing some independent analysis of the choices. I settled on Steve Kochan's "Programming in C"
  2. I did every single exercise in the book and more importantly did some programming in C every single day

The only way you're ever going to become proficient in something is by practice.

Fhoxh
A: 

You may be interested in the answers to "How do Programmers go about learning programming?", as your question is a closely related, if not a duplicate.

Anders Sandvig