Learning Code

“It may be that the only real way to learn things is to just go slog around the mud and figure it out yourself.” –Sandi Metz, Interview on CodeNewbie Podcast

It may seem weird that I’m posting that while attending a bootcamp to learn how to be a web developer. And weirder still that I firmly believe it, despite learning so much over these first four weeks of the course. And can it get even weirder, being that I was a teacher, and have worked in education for most of my adult life?

For me, it boils down to this: Teachers can teach you, but they can’t learn you nothing.

The actual learning requires you to get your hands dirty. It requires you to fuck up and break things and lose hope. But you learn as you put the pieces back together and buff the finish to a nice, shiny gloss.

My Wyncode experience has reflected this. Wyncode does a hell of a job teaching these concepts, but I don’t really learn them until I’ve nearly drowned in the mud and just barely crawled my way back to the surface.

This is probably a good time to tell you about the general daily format at Wyncode. Each day starts with a lecture led by our head instructor, Ed Toro. Ed is a really smart guy. Computer Science MIT graduate, tons of coding experience with seemingly every programming language ever invented, practical real world experience with big companies and start-ups…Ed is a font of knowledge that spews forth coding wisdom. He not only knows how shit works, but why it works, all the way down to the metal. I haven’t been able to ask this guy a single question that he couldn’t answer off the top of his head, a single bug that he couldn’t identify within seconds of scanning my code. Dude is bad ass.

Because he’s so smart, and because the material he covers is almost always brand new material, keeping up with him can be difficult at times. This is a good thing, mind you. Otherwise, we’d never get through all the material we have to cover over 9 weeks. And it really works with the model that Wyncode has implemented. After this initial exposure and homework challenges that force you to apply what you’ve grasped from the lecture, Wyncode provides several techniques to fill in the gaps.

The most effective are the live-coding sessions, usually led by Ed or our head TA, Walter. With these, they review all the concepts covered during the initial lecture while showing us how a professional developer thinks about and applies these concepts to practical problems.

This process has been invaluable to me. I think every coder has gone through the torture of staring at the blank screen and trying to figure out how in the hell they are going to come up with that first line of code. The live coding provides an excellent model for the type of thinking a student would want to apply to the problem.

To further fill in the gaps of our learning, TAs are available throughout the day to work with students individually. The TAs are knowledgable and gracious with their time. Moreover, they have a wide range of experiences, so a student who wants to go beyond the general curriculum can always find someone who has employed that technology in a project.

They are kinda like iPhone apps…Want to focus on Node? There’s a TA for that.

And seriously, they are super generous with their time. I’ve chatted online with them countless times, as late as one or two in the morning, and they have stuck with me, offering suggestion and fixes, until the malicious code has been tamed.

On top of this, we have access to Codeschool and other online learning tools. It’s funny. Before Wyncode, the online resources I tried were pretty useless to me. They were either too difficult, or so easy that I learned nothing. But using something like Codeschool after having gone through the steps I described above really helps cement the knowledge in my brain, and more importantly, helps build confidence.

All of these facets work really well together. The initial exposure, the targeted exercises, the meta-thinking that you learn via live coding, the individual help. Wyncode is truly structured to provide a robust educational experience.

And yet, when I learn most, is on those weekend projects, when I sit home by myself till three or four in the morning, coding and testing and running into failure after failure, until I finally get my code to work. Of course, this is part of the curriculum as well, but for me, this is mud-slogging time. This is the dirty work that speeds up my acquisition of the skill-set the most.

That’s it for today. This week, we’re learning Rails, and models and controllers are kicking my ass. I’m off to learn to code.

In the mud.

 

 

 

Leave a comment