Mimic Metz. Speak Matz.

While many of us hate to admit it as adults, learning brand new skills requires a healthy dose of duplication to get past the beginner hurdles. If we think back to elementary school when we noticed a classmate copying our finger painting stroke-by-stroke or repeating what we say word-for-word, it was obnoxious and downright confusing.

Just two weeks into the Flatiron School’s Ruby on Rails course and I finally understand what those copycat kids were up to.

I am officially in awe of the fluid, concise Ruby brain matter that spills out of our instructors. In fact, the only thing I want to surround myself with is the symphony of high class, exceptional Ruby classes, methods and hashes. I want to listen to it, watch it get sharpened, and hopefully etch each of their gorgeous melodies into memory for future use.

While the latter has not happened quite yet, the promising conclusion I’ve come to is that by surrounding myself with the best practices of Ruby – especially the most structured approach to looking at each problem – the flow of coding is an inevitable result with such fantastic mentors.

Go Ahead, Make a Mess

Speaking of which, Sandi Metz and her presentation “Go Ahead, Make a Mess” (found on Speaker Deck) propelled me to write this blogpost to encourage other beginners to seek out teachers who can dive right into the necessary “programmer’s mindset”. After a spin through her 266 slides on the matter of object-oriented, human intuition-driven design, I classify myself as another hardcore Metz follower of the Matz language.

Two of my favorite ideas that she presented were the following:

  1. Like a 4-step rehab for the anxiety-prone noobs, she encourages the mess and shows her problem-solving approach to coding (along with several clairvoyant examples).

Go Ahead, Make a Mess

  1. Metz explains her reasoning through a colorful infographic that separates one’s “Knowledge Plot” into four sections.

Go Ahead, Make a Mess

The graphic interacts with each step of her code, warning her to “move” or “minimize” each piece of code she is considering if it enters the red or orange zones of “Unstable” or “Outside of My Purpose, while allowing it to remain in the top green section that is considered “Stable” and “Within My Purpose”.

Go Ahead, Make a Mess

Thank you, Sandi Metz, for putting your lessons out there for us noobs to reflect upon and etch into our Ruby mindsets! Your poise, articulation of ideas and steadfast approach to writing code is an inspiration to us all.