Sunday, May 21, 2006

Ruby Exercises - Continued

It has been a few days since I forced myself to start coding in Ruby. So far, it's been very rewarding. I have been coding simple things that I had already coded before: towers of Hanoi, anagrams, reverse polish notation, primes "up to", great common divider, lowest common denominator, etc. The whole point is not to learn new algorithms ... it's to learn Ruby.

I have tried to become aware of my areas of uncertainty/darkness. Whenever I code and I get this feeling that I am cutting corners or avoiding a problem, I take a moment to analyze my doubts. This is all part of my new life philosophy I have adopted since I read: Make a Mess, Clean it Up!

Avoidance is easy. It's easy to code "around" a problem rather than looking things up. I have read about this recently: Creeping featurism and the ratchet effect. I understand the argument for laziness. But, I think there is also something else - something I would like to call "checkbox mentality".

This phenomenon occurs when you are working on a task and would like to finish it - to cross is off your list. But, at some point during the execution of that task, you realize that the problem is more complicated than you thought. As such, not only are you not done, you now have to divide your task in a collections of subtasks.

Here is an example for something I worked on today. I tried to put as many tasks as I could remember I did. (photo exported from FreeMind btw)

Everytime you subdivide your task, you create more work for yourself. You create something that requires effort.

I had to Google. I had to go back to the book. Sometimes I had to go back for reference reasons. Some other times, I had to go back because my brain did not register what I thought I had read and understood. It's all part of learning. It's all part of being a professional and striving for perfection.

Now I know: if it hurts it's because I'm doing the right thing. :)


Post a Comment

<< Home