When I started learning more and more about Rails, I became very aware that my programming skills in Ruby was lacking. I would read the code examples and I would find many methods and concepts that I repeatedly had to look up online in order to understand. I started to panic a little bit then because I was afraid that what I was doing wasn’t working and that I wasn’t internalizing what I was learning. A lot of times I feel like I’m fumbling around trying to find a way to reach out and find something to hold on to and effectively learn. The main way I’ve been doing this is through code challenges and tutorials but I’ve been finding that there is a huge gap between the code that I was writing and the code that I would read on open source projects.
Because of that gap, I’ve been reading as many Ruby Books as I can. This past month, I’ve gone through Learn to Program, Well-Grounded Rubyist, Metaprogramming Ruby 2: Program Like the Ruby Pros and I’m also halfway through Eloquent Ruby. These four books had a lot of intersections and they were a great starting point for the techniques that I was coming across while trying to read open source code. Along with those books, I’ve also read Secrets of the Javascript Ninja so that I could learn more about the Web API/DOM and how Javascript fits into that picture. A lot of the tutorials I’ve been finding uses Javascript extensively and my lack of understanding in that subject was becoming a bigger problem.
Because of these issues, I decided that December was the month that I would hunker down and challenge these glaring holes in my understanding. I dove deeper into Ruby and Javascript than I have before and ensured that I knew as much as I could before I buried myself even more into the various frameworks I was running across. Most of this renewed enthusiasm towards the language instead of the framework was because I was hearing over and over again about people learning frameworks without knowing what problems those frameworks were trying to solve.
In my head, I have a clearer picture of Ruby’s object model and order for it’s method lookup. I have a clearer idea of how an object inherits it’s methods and how monkeypatching works. I’ve learned more about the techniques Rubyist use in their code including method_missing
and the eval
family to create scopes or get around them. I’ve gone through them too quickly to fully understand their importance but I’m going to use what I’ve learned to understand the open source projects that I’m using.