Failure. Re-group. Start again.
I am not going to lie, I have been getting downbeat about this learning to code project. It is not so much that I feel overwhelmed by the topic, but just that I cannot devote the extended blocks of time I need to cement the knowledge I am picking up from books and tutorials.
I finished Michael Hartl's railstutorial.org, which is just fabulous and I would recommend this to anyone who is learning rails. I then started my first rails project, a Kanban board that I could use at work, using Agile Zen (www.agilezen.com) as my template. I thought this would be a good place to start as I could use it at work, and I cared about the project, so it wasn't just completely academical. However I just hit the limits of my knowledge, I got so far basically just following the Rails Tutorial again, and changing it to fit the new project, but as soon as I wanted to do something new I was paralyzed. Without a guide in front of me I froze. I just couldn't construct code fron scratch because I just didn't understand the Ruby language well enough. You can see this project on GitHub, not that it is much to look at: https://github.com/tatterzig96/kanban_me
So after a few weeks of brooding over this I read this article http://innonate.com/hope/ and started to feel energized again. This guy understood the difficulty of learning to code, and the primary problem was that he was only spending a few stolen hours a week as opposed to good block of time. So he created the sweat lodge approach and was more successful. Unfortunately as a full-time employee and father of a 2 year old, I don't have that luxury. However it did give me a reason I could hang my failure on. I just cannot devote a solid 40 hours to cementing this knowledge, so it will take me longer. However I refute the claim that it is impossible at a few hours a week.
So I started learning again. I felt like I really needed to fundamentally understand Ruby as a language, and not just in the context of Rails. So I bought Beginning Ruby from Apress and ploughed my way through that over the course of a month. This was really helpful, and I now have a Ruby reference book to turn to, and can think to myself, is this an array or hash for example. I then worked through the Ruby Koans which I used as a practical way to apply what I learned in the book. These are very helpful mostly because they forced me to pick up the Ruby book again and review each section for each Koan.
So I am starting again. I am going to try and either complete the Kanban project I started, or a new project idea that would again be useful for my job, the ability to upload new stories to Agile Zen using excel. This involves file manipulation and API calls, so I am not sure that is such a great first project, but I will try anyway. I see someone has created a Ruby gem for the Agile Zen API (http://rubygems.org/gems/agilezen), so that has got to help right?
Let's see how this goes now I have some fundamentals of the Ruby language in place. I also want to utilize this blog more to flesh out my learning, especially after reading this article ("Four tips for learning how to program") which stressed the importance of documenting your learning as you go when learning to code.
















