We all follow tutorials. Coming up with an idea for a new app, including the scaffolding and the specific functionality, is hard. Struggling through something on your own can be valuable and helps you internalize it, but you also risk "reinventing the wheel" if you fail to take advantage of the resources and experience available from those who have "done it before." Tutorials help you work through an ambitious project step by step and "learn while doing."
But blindly copying someone else's code without knowing why you are doing what you are doing can severely limit your learning. Use the following steps to get the best of both worlds -- a dedicated teacher who will guide you every step of the way through the app you want to make AND a system that will hold you responsible for what you learn and help you to internalize it so that you can generalize specific steps for future pet projects (or work assignments).
1. Pause The Tutorial
Pause the tutorial and figure out how you might do something before you watch the video explain it. (This breaks the tutorial into a series of assignments but helps you avoid the paralysis of having to figure out all of the scaffolding for an app. BUT -- you can make your own high level plan for the app before you watch the tutorial. I made the mistake of not doing this when I worked through a console Blackjack App for Ruby, with the consequence that I didn't really understand, as I was watching the tutorial, how the creator was implementing the rules of the game -- and thus implemented them incorrectly. The idea is to turn the tutorial, as much as possible, into peer programming.)
2. Integrate TDD
Testing is an important part of development. Some tutorials will go half an hour without testing their code -- only to suffer the embarrassment of compiler and interpretation errors or general bugs. Figure out how to write tests for the tutorial if it does not include them and test as you go. This will also help you as you interview and complete coding challenges, because even though you might not learn test driven development in a boot camp, being able to write tests for your code can make the difference between a second interview and a rejection letter (I know from personal experience).
3. Show Your Work
Explain the tutorial to other people. Write a blog post summarizing what you did and why you did it. This will keep you from simply "copying" the tutorial and help you to internalize it. Rewrite the app from scratch after you finish the tutorial. Think about ways to improve the code and structure of the app. Practice writing the app as if you were a musician adding it to your "repertoire." Create your own tutorial explaining how to make the app. (The best way to learn something, as they say, is to explain it to someone else. And "if you can't explain something simply, you don't understand it yourself" -- John Searle.)
Conclusion
In sum, I'm not sure I agree with people who say that you should stop following tutorials. Until you reach a certain level, the value in being guided outweighs the downside of producing unoriginal work. And honestly, you will be face the temptation of copying whenever you run into difficulties, whether you're copying from an answer on Stack Overflow to solve a problem with your pet project or following instructions in a tutorial. The key is not whether to copy, but how. By the following the steps above, I believe you will spend less time imitating and more time learning.
But at the end of the day, Aristotle was right: "What learners must learn to do they learn by doing." Happy coding!
Comments
Post a Comment