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.