Week 28

Two Months at a Coding Bootcamp: Reflections

As of this week, I’ve finished two full months at a fully-immersive, live-in bootcamp California. Here are some general thoughts that I have about bootcamps as a result of that experience:

It is a tremendous opportunity to get to be in a place where the entire focus is on learning to code, all day, every day. Though I had made significant progress in my 4 months of self-study before entering Coding House, once arriving, I wrote more (mainly terrible) code than I could have imagined producing in any other environment on my own. Even the physical space of rows of desks and monitors inspires a sense of purpose and drive. If what you’re looking for more than anything else is a community in which to spend as much time coding as possible (70+ hours a week), then for that reason alone, a bootcamp may well be a good fit.

It’s possible to learn many more types of things and in different ways when you are part of a community of learners than it is on your own. I believe that the ability to teach oneself things is a crucial skill, especially in tech. Additionally, though, I think that if you insist too much upon self-reliance in learning, it’s easy to miss out on extremely valuable lessons that challenge your own methodologies and habits, not to mention the fun and reward of collaborating over ideas with other people. I often felt that I was learning nearly as much from talking through problems with my cohort-mates and watching them approach challenges as I did from our instructor.

Rigid structure can be a blessing and a hindrance. During the first four weeks of the bootcamp, I often felt grateful for the strongly structured nature of the lectures, workshops, and homework. We were introduced to technologies or frameworks, given some time to explore for ourselves, worked through some examples as a group, and then assigned progressively challenging projects to implement on our own during the evenings. Especially at the beginning when I was brand new to JavaScript (minus two weeks of pre-work), this made the huge amount of knowledge to learn feel more manageable and my studying feel focused. However, the more comfortable I became with the landscape of technologies and teaching myself new things, this rigorously defined structure in which we were evaluated by how well we fulfilled the MVP (minimum viable product) specifications of each night’s assignment, at times felt like a hindrance. If I could go back, I’d try to care less about getting all of the MVP standards for each project finished if doing so meant that I didn’t thoroughly understand what was happening in each piece of my code.

A focus on learning as many frameworks and libraries as possible in a short amount of time can make it difficult to gain a deep understanding of each piece and how they work together. There’s just not enough time in a few months to learn loads of frameworks and also to understand them deeply. We were introduced to many, many libraries and frameworks, and getting to see the use and power of such tools was exciting and inspiring. However, if your goal is to attain a thorough understanding of any of the frameworks and its underlying theoretical concepts, it is difficult to find time and support to focus your energy in this way. A couple different times, I asked about whether/when we would focus more on best practices and on learning to write maintainable, clean code, and learning to write tests. I was told that “in order to write good code, you first have to write a lot of shitty code.” And this seems true to me– you can’t become good at something without first being bad at it. But as I develop as an engineer, I want to do so in a way that prioritizes best practices as much as possible, not just writing code that works. I plan to take the exciting introductions to these many frameworks that I’ve gained and develop my understanding much more deeply.

Overall

In the end, the two months that I spent at this coding bootcamp doing nothing other than thinking, talking about, and writing code were tremendously productive and inspiring. I learned a huge amount from our instructor, guest lecturers, and my cohort peers, and I’m even more excited about software and web development than I was before. The intensity and focus of a bootcamp environment were a good fit for me. As I move forward with software development as a craft, I hope to find a position at a place where I can take the skills and enthusiasm that I’ve gained and contribute to a meaningful project. I also hope to find a place that will prioritize developing best practice knowledge over quick production, where I can build careful programming habits that I can stand behind.

Leave a comment