Monday, February 7, 2011

Ruby Koans (more)

As a key component to my Professional Portfolio Investment, I've been dollar-cost averaging a small chunk of time (15 to 60 minutes) a day in a session I call "JTigger @ Play".  During this time, I am free to explore within the sandbox of the topic I've set for myself.  My current language study is Ruby.  As I reported last time, I picked-up Ruby Koans.

There are many wonderful things about this "koan" format.  Primary is how small of steps each "koan" goes.  I'm being led along a path, winding through the language, one tiny bit at a time.  At each step, the nuances of a given language feature are succinctly yet completely demonstrated.

I've used the "koans" as a launching-off point.  When a topic is raised, I allow myself to go off and play with that language feature to deeply understand it.  And when I'm clear, I'll write a tiny article in my personal wiki.

Today, I learned about the splat operator, i.e. '*'.  What an intriguing little tool!  It has two behaviors: one when applied against an lvalue (e.g. a variable on the left side of an equal sign) and another when applied on an rvalue (i.e. an expression on the right side of an equal sign).  In gross terms, on the right it "flattens" the expression, on the left it "sponges" values.

I took the time to carefully touch each possibly with the operator.  Firing-up an irb session, I nudged it on one side, pulled it on another and watched the results.  Then tweaked it the other way... just playing with all kinds of ways to apply it.  When I got a good sense of what was happening, I attempted to explain it in as succinct but clear terms as I could in the Ruby article in my wiki.  In the act of expressing an explanation, I firmed-up my understanding ("no better way to learn, than to do and teach").

Three things:

  1. a little every day  ("with dripping drops of water, the water jug is filled").
  2. learning by "playing": mildly directed exploration.  Within the structure of a single topic (Ruby) with the guidance of a methodical "curriculum" (Ruby Koans), tinkering (irb sessions and pulling reference materials).
  3. active learning -- trimming-up my mental model by producing a crisp explanation.

Wednesday, January 26, 2011

Ruby Koans

When my work projects don't include a technology I want to develop more skill in, I look for ways to include a slice of it in my day.

Personally, I set aside an hour a day called "JTigger @ Play"... it's my chance to do whatever the heck I want... but what I REALLY want to do is make an investment.  Right now, my focus includes deepening my understanding of Ruby.  Not just learning the language, but the culture.

Today I started down the path to Ruby enlightenment.  Not really, but this project Ruby Koans is a cute and fun way to jump in the deep end.

I cranked through the first 16 today (in about 30 minutes from git clone and reading the instructions).  THe first steps seem like the right size: baby steps.  It's all review for me personally, but projecting back, I think I'd get enough of it as a total n00b.

Check it out!

Thursday, January 20, 2011

gitk art

gitk gracefully handling some crazy messed-up git repo (as much as it can). weeeeeee!

Hacking Your Organization

Just as we understand that people have different personalities, does it not easily follow that organizations will all have a specific kind of culture?

Lloyd Taylor has distilled down his personal observations and research into a model for understanding organizational cultures with the intent to assist the individual in more effectively working with it.

Taylor borrows the basic diagnostics from "The Character of a Corporation" -- the classic four-quadrant treatment:

Taylor provides some hints on how to determine which culture your organization is most like (and like personality tests, it gets a bit blurry).  He is quick to remind the audience, "models are, by definition, wrong, but they are useful."  He's just trying to say, don't get too hung up on using the model as a description of the world; just use it as a tool to understand what you really see.

Key Take-Aways

  • Understand what culture you thrive in; look for that in where you work (or choose your next job)
  • Take the time to get a read/feel on what kind of organization you're dealing with.
  • Consider how you can best harmonize with that culture.
    • Warning: we are prone to impute our own perspective/view on others (and then react emotionally)!
      • This is the root source of most conflict.
  • Understand that as an organization grows, there are necessarily culture shifts.
  • To the degree you can shed your self-orientation, you can be successful in organizations; look for ways to help others be successful in what THEY want to accomplish.
References