In preparation for Dev Bootcamp in August, I’ve drawn up a hefty syllabus for myself to cover the next few months. I based this on what I could find out about the actual DBC syllabus from their website and the countless number of DBC attendee/alumni blogs. It’s not perfect, but it should keep me out of trouble and my brain ticking.
Now, I could have just thrown a load of books into my plan and been done with it, but that doesn’t suit my apparently kinaesthetic learning style (not that I trust one online test, but I do definitely learn far better by doing). On the other hand, I could have just come up with a big project idea that incorporated everything and dove into that (AKA the 13 year olds approach to learning game development: “I’m World of Warcraft, but with machine guns!!!”). The problem with the latter is that it’s highly likely that I’ll either get overwhelmed/stressed, pick up some very bad habits, implement everything in entirely the wrong way, or all of the above.
When I’m trying to learn some new programming concept, I first try and find the most succinct yet well reviewed learning tool (this could be a book, an online course, or even a short tutorial depending on the subject), then complete it while making enough notes to capture the key points and explain it back to myself in my own way. After this, rather than jumping onto the next subject, I come up with an appropriate small project to do which implements what I have learned. The purpose of this is to re-apply the concepts of the subjects in novel ways to ensure I fully understand them, before moving onto the next thing. Ideally, I’d combine this with a previous subject I’ve gone through, either as a new project or by building on an old one, for example:
- After doing Codecademy Ruby, I created a set of bank detail validation tools
- After watching the Devise Railscast, I created an online To Do list
- After doing a tutorial on JQuery and Ajax in Rails, I implemented Ajax into the online To Do list
- After One Month Rails, I created Lazy Cexio (a site using the cex.io API to reinvest bitcoin cloud-mining profits)
- After doing Codeschool’s Testing with RSpec, I am now creating a Ruby-port of Ian Bell’s text-based version of Elite, with a focus on creating RSpec tests