one way
April 5th, 2013

How I Got Here and What I Learned Along the Way - Month 4 in the P’unk Apprenticeship

Joel Smith

On a trip this last weekend, I was reflecting with a friend about how we arrived at our current stations in life. Our lives are incredibly parallel at this moment: we both spent time in graduate school for something in the humanities and we both are currently apprenticing in a craft we hope to pursue for the rest of our lives (furniture making for him and web development for me). Our reflection turned around one question as we meandered through the streets: what could we have done to arrive at our current state of career satisfaction sooner?

The answer to that question was obvious: nothing. For me, there’s a deep satisfaction in knowing that, and after four months in the apprentice program, I thought I’d share the path I’ve followed up until now and what and how I learned things along the way.

I began writing code back in the mid 2000s when one could still find a book about HTML 2.0 (if you haven’t heard, it’s currently evolving into version 5). In a time when Facebook was limited to college campuses and online tutorials for web development were scant, most of my learning came from books and, more importantly, a few knowledgeable friends. I learned about cool things like frames (look those up if you haven’t heard of them) and inline style blocks (anyone remember the <font> tag?).

I built a few simple websites like this, but my interest in development tapered off at that point, and it wasn’t until I finished graduate school that I picked up development again. This time, though, I decided that I needed some formal training to set a solid foundation for what was then simply a hobby. I took a single semester class that more or less taught us how to “code” websites using Dreamweaver. Despite all the jokes I now make about Dreamweaver, the experience was exactly what I needed at that time because, as I was adding and shaping styles on the page, I learned the fundamentals of CSS. Suffice it to say, CSS is kind of my bread and butter these days.

Soon after my course, I abandoned Dreamweaver in favor of building sites from scratch. I set out to build the internet with an FTP client and free version of TextWrangler. And in that first year, I built a lot of the internet. I wrangled a few Wordpress sites, some forum themes and even skinned (or one might say “dressed”) an eCommerce platform for a startup. Over the course of that year, I spent a lot of time reading blogs, mainly Smashing Magazine and A List Apart. This is not to mention the thousands of Google searches and documentation immersions. In that first year, I sharpened my understanding of HTML and CSS, introduced myself to JavaScript through jQuery plugins (which is apparently the wrong way to do it), and gained some understanding of what the acronym PHP meant. Maybe more importantly, after that first year, I knew that I had to change my career path; I had to become a web developer.

The next year, while still teaching, I dedicated my time to really learning and mastering Wordpress. I spent a great deal of that time copying and pasting code from one place or another, but I also began to learn about patterns and functions. I began to see that just knowing HTML and CSS wasn’t going to cut it. While I did spend some time reading the Wordpress Codex to understand the methods involved with Wordpress’s API, I began to feel the stretch of not having a solid understanding of programming in general.

And so, I set out to teach myself with whatever tools I could find. At first, I set the bar too high and watched several hours of videos from computer science courses. This was generally unhelpful because I lacked the context to understand the concepts being described. Next, I read blog posts and a few books (specifically about PHP and SQL). These were actually helpful at a certain level, but as I soon learned, books about programming require more than just reading: they require the discipline to actually exercise the principles being learned. This was fairly difficult, though, because one needs to understand the environment in which programs and language work in order to play with them, and I often felt frustrated by trying to set up an environment in which I could experiment with things like databases.

Then, I happened upon a little web startup called Codecademy. If you’ve been living under a rock, Codecademy is a platform for learning to program for the web. The important thing is that it provides space to grapple with the abstract programming principles even without a detailed understanding of the environment (which was my frustration with simply reading books). I gobbled up Codecademy (to a certain point), and while it left certain gaps in my understanding, I owe much of my programming prowess today to what I learned by hacking around in their courses.

But I had to take the abstract and theoretical knowledge back to my craft, so after two years of teaching high schoolers how to craft their language better, I took the plunge and began developing websites as a freelance front-end developer. The plunge was scary, of course, but it forced me to take my craft more seriously, to sweat the details, and most importantly to recognize my gaps in understanding and address them. Without that period of freelance work, I don’t think I would appreciate the supportive environment of the P’unk apprentice program. I also don’t know that I would have been professionally mature enough to thrive in our environment of autonomy. That six-month period of praxis was the necessary capstone to my self-education.

In the final analysis, teaching yourself a craft (or anything for that matter) requires a great deal of attention, not just toward the subject you’re trying to learn but more importantly toward yourself and your own understanding, tastes, and habits. You have to play the role of both teacher and student, and this forces you to make judgment calls about what works best for you. It also forces you to set up broad frameworks for the knowledge and skills you’re attempting to learn. Teaching yourself can be overwhelming, but the results, as I’m finding, can be life changing.