About a decade ago, I’ve discovered that I have to reinvent myself every 2 – 3 years to keep up with the speed of technology. During that time I’ve managed to learn a lot of new languages and frameworks. But I also failed at a lot of them.
Talking to newcomers to the field and observing my own patterns, I now know how to succeed.
It’s all about having a Project. Passionate developers are always tinkering with something. A new gadget, framework or a pet project.
But what happens when the chasm between project and new technology is too wide?
In the last year, I’ve trying to learn functional programming. While I understand the basics, I still haven’t figured out how to get to the level where I can build something that’s useful to me. The books and tutorials that I tried, focus on areas that are too far away from my everyday work.
Next time, I will have to make sure that I find a tutorial that’s like the ones that worked.
Django Girls Tutorial
I’m impressed with this tutorial. It allows student to build a full web site and deploy it online, without wasting time on unimportant details. For each components she learns, she has an opportunity to go back later and explore it further.
I think this is the best approach on how to introduce the full-stack of web technologies. She doesn’t even need to know what technology she wants to study. When a mentor is present, it provides a good opportunity for more discussion on a wide range of topic.
Recordings of Workshops
I think workshops (or live tutorials) are the right approach to the problem of having a project. Instead of building your own, presenter guides you through building an example project. Extra explanations make it understandable but not too complex.
Python community is recording most of the workshops at different events and posting them online. This makes it easy for a wider group of people to get into the field.
When you’re following the tutorial on video, you can adjust the pace to your own level. There is also a high chance, that a participant will ask the same question that you have while watching the video.
One of the best tutorials I’ve found, is Wes McKinney’s tutorial on Python Pandas. It’s over 3 hours long and it will take you a week to do it at home. But it teaches you enough to see the full power of framework and its potential. After that you can read the book and learn all the details.
Conclusion
I don’t think Learning things the Hard way is the best approach for newcomers. It’s just like teaching grammar, and leaving out the culture. As mentors we should do a better job of explaining how different parts fits together and not focus on semantics.
What was the best tutorial that helped you learn something difficult?
Is there are practical tutorial to ClojureScript?