Three weeks into
The Iron Yard Academy


We have finally begun learning Rails (illustrated above via the awesome open space design of American Tobacco Campus, host to The Iron Yard here in Durham).

I’ve had little time to reflect on the past weeks, but one thing I have noticed is that I’ve consistently surprised myself with the hurdles I’ve jumped in our nightly homework, and especially the weekend projects.

I had a tough time deciding between a couple of the choices for our second weekend project — either Go Fish, which would help me learn to use external libraries and code in some strategy for the computer player… or implementing Conway’s Game of Life. Game of Life is an instance of the mathematical-ish concept of Cellular Automata; a set of simple rules that create complex interplays and can generate great beauty. Indeed, Alan Turing posited something similar as the underlying behavior of Morphogenesis — that is, how living things grow and take the form they do. And recently, his theory has been scientifically confirmed.

I’m aware that Life is something of a classic coding exercise, but for someone who had previously struggled with the deeper mathematical side of… well, everything in high school and college, it was still pretty daunting, and I really wasn’t expecting to actually get through it in 3 days, after learning only two weeks of Ruby.

I almost immediately hit a road block. After implementing the ability to toggle individual cells, it in fact toggled an entire column of cells. I spent an hour or two poring over things, and then enlisted multiple people to look at it as well (It turned out I had been creating my array of arrays by generating one array, then assigning it to each element of the higher level array, so that when I toggled one cell, it actually referred to that cell in each subarray). After correcting that, I made a bit of progress, hit another multi-hour blocker, and then eventually that fell away too.

Eventually, I realized implementing the rules themselves was simpler than I expected, and then… Life happened! (In a good way!)

It still has an elusive bug, but I’m immensely pleased with myself. It seemed like the ratio between amount of work I was putting in and the impressiveness of the results followed an exponential curve. In the coming weeks, I should keep this in mind when I hit more and more blockers. Because if we’re not hitting some kind of limit, we’re not actually learning.