January 16, 2012

by Sue

It’s the first day of my apprenticeship at 8th Light.  I’m super excited to be challenged in new ways, and learn from the best.

What I Learned About Software

Realized I had never finished the Ruby koans, so went ahead and did that.  I learned about sending messages, which is a way of peering into an object’s methods.  There were a few new methods to add to my crib notes.  I think they’re inherited from the base Object class, so any ruby object can use them:

instance.send("method")
instance.__send__("method")
instance.respond_to?(:method)
instance.method_missing(:method)    # raises NoMethodError when implemented correctly with super

Essentially, you are sending a message to the object telling it to call “blah” method.  You can use .respond_to? to see if the method exists.  And .method_missing() to do something in particular if the method isn’t there – or let the default (super) implementation throw a NoMethodError exception.  This is a great way to pass method names around and call them without the caller even knowing what they are.  I wonder what some practical applications are.

What I Learned About 8th Light

As part of on-boarding, my mentor and I established an agreement of promises and expectations between us.  This is extremely progressive and rare.  It’s amazing that more organizations don’t do this, because it cuts through ambiguity and a potential host of problems.  There is a greater level of integrity required to make this work, though.

Learning Patterns

The modern programming environment is highly collaborative.  There is pair programming, an open work space, and open collaboration.  I come from the old school of headphones in cubicles.  I tend to get distracted very easily, so I may try an old Zen-based exercise called “return to sitting.”  I’ll do the sitting exercise every morning, hoping it will increase my ability to focus.

Leave a Comment

Next post: