The power of community

A couple of months ago I started a web development internship at The Firehose Project. It was a bit of a risk and major commitment. I’ve only got a few weeks left in the program and I’m just now opening my eyes to one its most valuable components. This post was originally going to be about being honest with yourself, your mentor, and your peers, but it’s evolved into a post about community. Time after time, I’ve tried to approach things as a lone wolf, scouring the net for information, running headlong into problems that were solved long before I approached them, only to find myself reinventing the wheel, in over my head, or frustrated. There are times that this attitude has served me well in life. Often times you’ve just gotta dive in and figure things out. However, as I get further into the woods, I’m finding that knowing there are others around who are experiencing the same struggles as me or have already walked the same trails is incredibly encouraging. Not only does that knowledge help, but everyone involved in this program is genuinely helpful. Other Firehosers, my mentor Seth, Ken and Marco — nobody has hesitated to lend a hand when asked and every contribution or accomplishment is valued.

… with a little help from my friends

I could spend considerable time sharing my success in this program, but what really has driven me forward is the ability to repeatedly overcome failure, supported by this community. You don’t see this on the website, you don’t hear much about it from the outside, but it’s one of the major underpinnings of this program. Week in and week out, I am writing code that doesn’t work in an attempt to write code that works. At some point, I’ve reached a point where it looks like the code I write works immediately when I write it, but in reality most of us are working toward a Junior Dev position and aren’t going to get everything right the first time. This is something I’ve had a hard time adjusting to as my 9–5 simply expects results. Failures and mistakes are moments for learning, but they have financial consequences. At the Firehose Project, these failures are part of the day-to-day and are actually THE most important thing to be aware of as they provide the largest capacity for personal growth. I write some tests. They fail. I update some code, test again, it fails. Update more, test again, still fails. Eventually it passes, but failure is written into the process. Sure, DHH presses the TDD is dead button pretty effectively, but the failures I’ve encountered have only served to strengthen my resolve. What doesn’t kill you and whatnot.

In the last several weeks, I’ve encountered some roadblocks. Mostly personal, rarely technical, but there nonetheless. What’s amazed me most about overcoming these barriers is how simple it really has been. For instance, several weeks ago I had a problem with a coding challenge, specifically the Depth First Search challenge. I put about as much time as I usually would into such a task, maybe a couple of hours, but I wasn’t getting the results I expected. Bravado compelled me to say to my mentor, “I just need to put a little more time into it and I’ll get it sorted.” I was throwing away a chance to learn in order to prove my independence or skill. This is one of the most the most foolish things I’ve done in this program. I came back a week later, after having poured more time into this single problem, and finally said, “I’m stumped.” We spent 15 minutes talking about the problem space, how I was approaching it, how to eliminate some extra problems I may have built into my code, and then moved on to other topics. Within an hour of completing the mentor session I had resolved my issue. The ironic part: none of the issues we had discussed were actually the cause of the code failures. The simple act of talking to someone else about what I was trying to accomplish caused me to open my mind a little bit when reviewing the problem domain, and quickly led to a simple solution.

The bottom line here is that without the Firehose Community, I wouldn’t be where I am today. The curriculum is well crafted to expose students to a lot of new things and to push us steadily forward, but the real value for me has come from the weekly mentor sessions, office hours, and the slack channel. I have yet to encounter a challenge that I can’t solve without a little help from my friends.