MVC & Me

Week Two at Enspiral Dev Academy #

Two weeks down, and I can’t believe the pace at which I’m learning. Everyday so far has been new concepts building on the days’ prior. I’ve never been in such a ruthlessly progressive environment. EDA is incomparable to anything I’ve known and at times seems like a heightened, surreal version of my old life…

Ruby Recap #

This week has been a bit of a mixed bag as far as topics covered. Monday was a recap of the week prior. I was pleased to find I had retained a large amount of the fundamentals, not always having syntax on immediate recall, but I know what to reference when I need it. This is one of the great things about EDA; it’s not all about rote learning. Instead, it’s about comprehension and the acceptance that we don’t need to know everything - we just need to know how to fill our knowledge gaps when necessary.

Although I feel my Ruby foundation has strengthened exponentially it’s still not the reinforced steel structure that it could be and that I suppose I will strive for over my programming career. This is something shared by majority of the Ruby cohort, so we did something to address it (more on this later).

Programming Jokes #

A slight aside, I find programming jokes hilarious, I’d even say in ROFL territory. I don’t know what it is about them but they are now my new favorite joke subset. The fact that massive corporations get involved in the hilarity; like Google and their subtle nod to recursion, is something I’d never seen before and makes me love the industry even more.

Why am I talking about jokes? Well, it is my blog so I can talk about anything I like, but mostly because it’s the small things that can become a real victory these days. Before EDA if someone came up to me and said:

A SQL query goes into a bar, walks up to two tables and asks, “Can I join you?”

I would have called the police. Now I would buy them a drink. For me it was the realization that in order to laugh at a joke, I must understand the underlying concepts behind the joke that somewhat allows me to track my progress.

The Cult Life #

Besides breathing and eating I was programming this week - a lot. I’m spending most of my waking hours on site (approx 13 hours a day) and even devoting majority of my weekend coding or doing something code related (like reading Search Inside Yourself). Coaches are on site until 10pm which means it’s not strange for several members of the cohort to be around until after 11pm.

These kind of hours would be unsustainable in the long run but for a nine week period this is something I am both willing and wanting to do. Explaining this to friends, family and flatmates however is hard to do. Staying late at course, not to cram for an exam, but instead for my own betterment in inconceivable for a lot of those who have only traversed the conventional tertiary educational path in New Zealand.

I think they all have come to the conclusion that I’ve joined a cult. I’m expecting to come home to an intervention some day soon. Luckily for me, every Thursday evening EDA hold “Thursday Tech Talks”. I plan on bringing them along to give them a wee glimpse of what I do and why I do it and hopefully put off the intervention as long as possible.

So Many Acronyms (SMA) #

As within any industry programming has it’s own set of acronyms to learn. We touched on a few pretty big ones this week, including our session of EE (Engineering Empathy), SQL, OOP and MVC. The latter was something I grappled with comprehending in Phase Zero. Fortunately through practical application to supplement my theoretical learning this week I grasped the concept completely (at a basic level). I now understand how an MVC architecture benefits a program as code only knows as much as it needs to at a given time. It limits code reliance and separates methods by their purpose.

I’m now planning on doing my own Thursday Tech Talks which will be a blog post on something that I have grasped during the week. This won’t be so much of a reflection on my time at EDA but instead me trying to teach a concept to a non-technical person. This will hopefully also help solidify my knowledge on whatever topic I write on.

Katana #

At the end (I am dubious to call it this because a lot of use stay much later) of each day we have a stand up where we are all confronted with a question. Friday’s question was:

What were you most proud of this week?

The answer to this was very easy as it was fresh in my mind.

Friday was designated as the first day in which we worked on team projects. I was teamed with Nick, Hannah and Tim and what we came up with was Katana (this is what I was referencing earlier in my post). If you’re not familiar with the concept of Kata it’s the programming equivalent to a basketballer practicing free throws or a 10 year old going over their spelling list every night. It’s the act of coding with the exclusive intent of practice rather than application. As you could imagine, this is largely what we spend our time doing and it helps enormously with our improvement.

Believe it or not we wanted more Kata time.

Hannah pitched the idea of Katana to us as a project idea and it was an easy sell as we all saw the benefit. The day followed an agile approach and our team worked brilliantly together. We met all our self imposed deadlines and if things were getting off track we reigned them in before they impacted on workflow. By lunchtime we had our MVP done and by 5pm we had implemented several more select feature along with half an hour to walk through the code in full as a team before presenting.

The final result is a console line application that allows users to attempt a random kata, a specific kata, or a kata on a specific topic (implemented through tags). Users can also make a new kata, delete a kata, edit a kata or simply list all katas available. We all plan on using it throughout EDA and hope to have the commercial product out by spring.

I’m so proud to have contributed to this project and work with such an amazing team of people.

I was also extremely proud of what the other teams had come up with in only a day. I would suggest checking out all the source code here:

  1. Katana
  2. Typo
  3. Ruby Challenger

Closing Thoughts #

I’m growing numb to the feeling of being out of my depth. I’ve set up basecamp at the edge of my comfort zone and don’t foresee a retreat within the next seven weeks. As soon as comfort does creep in we’re moving onto another unknown. This can be hard if you don’t celebrate the wins. The persistent failures that precede the wins can easily drown out the win itself, so I’m very conscientious of overplaying my victories internally. I try and keep high fives to a minimum of six daily -even if it means high-fiving myself. This also helps keep my pesky superego at bay, something that we’ve all been working on this week.

Next week closes out Phase One. I’ve set some more formal goals to ensure I’m ready to move on to Phase Two when it approaches. We don’t have the luxury of repeats like DBC so it’s all or nothing and I’m all in.


Now read this

The Beautiful Game

Week Six at Enspiral Dev Academy # Another day another $(document).ready and after only a week of JS we’ve moved onwards and upwards to APIs amongst other things. I’m tiring a little of never feeling like I’ve truly comprehended... Continue →