Wednesday, December 10, 2008

What's the best way to learn a new technology?

I started learning Cocoa recently. There are so few people who know Cocoa that it is really difficult to find someone to teach you. There isn't anyone I know that offers training in Hyderabad.

Again, is it really necessary to find someone to teach you? Once you know programming concepts, picking up a new technology should be fairly straightforward. All you need is some documentation or a good book to follow.

I started learning Cocoa by using the training material that was put up on the web for Stanford's CS193e course on Cocoa. This was excellent material and they had the instruction slides, the sample apps and some very good assignments. The only problem with this approach is there was no one I could turn to when I got stuck. Sravan, a former colleague of mine helped me out a few times. But he now stays in Noida and the only way I can get in touch with him is by email which is not the fastest form of communication.

I think it is important to have a mentor who is good at the technology when you are learning it. It helps clarify doubts, learn to do things the 'right' way and simply act as a sounding board to bounce ideas off. The mentor does not have to teach you like in a classroom setting but just be there to help you when you get stuck with something.

I found a very good book called 'Cocoa Programming for Mac OS X' by Aaron Hillegass which is fairly hands on and the concepts are taught by making the reader actually write applications. I have since switched to this book from the Stanford material. I will probably get back to the Stanford material once I am through with this book. The best part of the Stanford material is the assignments. They are by no means easy. You have to think through your approach before implementing them. That's where a mentor would have been really useful.

I really wish I had made the time to learn this beautiful technology while I was in Effigent. I had the mentors sitting next to me. Unfortunately, I got caught up in other things. Things I was good at but did not necessarily enjoy.

No comments: