I was ready for a career change. It was October of 2017. The more time I spent coding and learning computer science fundamentals, the more I realized that a programming career would fit my personality* better than performing and teaching music.

After spending a fair amount of time teaching myself to code and making websites, I began researching coding bootcamps. There were optimistic statistics of people making $80,000 after graduating. There were detractors who warn strongly against bootcamps. I was skeptical, but decided I wasn’t learning fast enough.

* Read more about my bootcamp decision: Now Attending: Fullstack Academy

Now, it’s April 2018 and I’m a graduate of Fullstack Academy’s Software Engineering program. I want to share some of my experiences both good and bad. I’m not yet employed, but I’ve already interviewed on-site and been screened by multiple companies.

How far does the “boot camp” analogy go?

There’s no shaving of heads, yelling “Yes Sir!” as we give up our individuality, or brutal punishments. But in a way, you had to “drop down and give me 50” …lines of code! Our schedule was set daily. We put in 40+ hours a week. The instructors and fellows were super nice, but we were expected to work hard. I was tired when I got home and usually had to study for the next day, and every morning felt early with my 45 minute commute. I didn’t have much free time for myself or for socializing. I was pretty irritable at times. We strengthened our coding muscles by getting used to learning on-the-fly. I got much better at reading and comprehending material.

Lectures and Workshops

I taught music for over 10 years so I thought I had a good idea of how people learn. I believed that the best way to teach was methodically, step-by-step, slowly building one piece of a foundation at a time. I was afraid going in that there’d be the “firehose” of information and little methodology. It was a tiny bit like that, but something crazy happened. I got used to the fast pace. I got used to taking in what I could and not worrying about every detail. All I needed was that brief, but dense initial exposure and my subconscious started putting the pieces together. Here is an outline of the general structure of how a topic was presented:

  • A lecture with a powerpoint presentation. The focus was on a high-level overview of the topic. There was usually a code portion where the instructor would build a small app with what was just shown. Rarely did anyone feel like they “got” it after the lecture.
  • We got access to a workshop that had a long list of instructions on building something notable with the new technology. The workshop included pre-reading (usually excellent resources). These workshops were usually done in pairs (on which I’ll go into more depth in a later section.) More than half the time it felt like the blind leading the deaf. We rarely finished the workshops.
  • After, a review video was sent out. It was a chance to watch someone who knew what they were doing build the app. After struggling with it, it was almost always a big eye-opener.
  • Finally, there was a retrospective with the instructor. We talked about what people thought of the workshop and asked more questions.

The cycle repeated every 2 days. There wasn’t time to reflect on what you just learned, my head was spinning by the middle of Junior phase.

Once a week or so, there were checkpoints. These were tests to assess your apprehension of the material. I was surprised at how much I retained. There were glaring holes in my knowledge, but by the end of the process I felt confident enough to research it or ask one of the professors or fellows a non-rudimentary question.

Staff and Student Structure

At Fullstack, you’re part of a cohort that lasts 3 months. Everyone starts as Juniors. At the end of 6 weeks, you’re given an exam. If you pass, you can move onto Senior phase. Cohort sizes range from 12 to 30 people. Luckily, mine was only 16 people.

There are 6 teaching assistants they call “fellows” - 3 of them Senior and 3 of them Junior. The Senior fellows had started a cohort before I started. The fellows I worked with were helpful and knowledgeable, especially the ones that lead my “learning team.” The goal of those teams was to give us another outlet to discuss and ask questions about the curriculum.

There were 2 senior professors and 1 junior professor. We mostly worked with 1 senior and the junior professor. They knew their stuff!

Pair Programming

I had a wide variety of experiences coding with others at Fullstack. Before starting the program, I had worked with some people online, but never looking at the same screen. At Fullstack, one person “drives” and the other person “navigates.” The driver types code, the navigator reads documentation and makes sure the process is going as discussed. Throughout Junior phase, most of the workshops are done as pairs.

I didn’t know what to expect during the first pairing experiences. I was paired with people that had a limited coding background and we were expected to solve some abstract data structure problems. I was comfortable doing so, but my partners weren’t. My heart sank when I realized that we weren’t going to finish the workshops, but I did my best to “teach” something I didn’t have a strong grasp of. I discovered later that finishing the workshops during class wasn’t a big deal and that I learned a lot from taking on the “teacher” role. If my partner was unacquainted with the material and I was ahead, I would be inclined to let them drive. The pressure went away when I realized I could finish the workshops on my own time if I wanted to review the material.

Compatibility with my partner’s personality determined how much I enjoyed the experience. When we got along well, it was a great experience to learn with someone while working on a common goal. Sometimes a partner would have a very different working style from mine, but that also turned out to be an advantage a majority of the time.

There were a few cases where I wasn’t compatible with my partner. Thankfully, we were able to rate our partners after the workshop. If we were sure we didn’t want to work with someone again, we could say so and our wishes were respected.

All in all, I would embrace pair programming if it was common practice at a company.

Team Projects

In Senior phase, there are 2 projects done in 4-person teams. We picked our team preferences beforehand. Our class liked the teams from our first project, so we kept them for the second team project. Our first project went well. We learned best practices with Git. We used an Agile ticketing system. We finished the core parts of each feature in the alotted time. Our second project got “real.” It was the mother-flippin’ CAPSTONE project, so (in our minds) it HAD to be amazing! There was conflict around choosing the initial idea. There was conflict near the end after some disagreement about which features were necessary. We got lost in the weeds learning Electron and using service workers for recording audio. Despite the struggles, it came together and I’m really proud of what we built.

Working with those 3 guys was an amazing experience. Now that it’s over, I can see that it wasn’t about building the COOLEST thing ever, it was about gaining experience learning and building a MVP on a team. Building our Capstone project was my favorite part of the Fullstack experience.

Career Counseling and Lectures

The lectures on crafting a resume, interviewing, making online profiles, etc were very thorough. The people I worked with directly were incredibly awesome at helping me figure out exactly what I’m looking for, my personal pitch, and more. I’m not afraid when someone asks me at an interview, “So tell me about yourself…” All of these resources were key in increasing my confidence.

In terms of landing a job, I don’t have much by way of advice, but the author of this article does!

There are fantastic resources to digest there. I’m using it as my roadmap in the job-searching process.

Overall Reflections on having completed a coding bootcamp

When a band takes a gig for which they have to sell tickets or the venue charges them a fee, they call it “pay-to-play.” The venue claims it’s great “exposure” for the band and I usually avoided those gigs. I knew that attending a bootcamp was a “pay-to-play” scenario, but it was worth it for me.

Pros

  • The material was put together well and the workshops had us building interesting apps
  • The teachers were knowledgeable and helpful. It was great for me to always have someone answer my questions
  • I made a lot of friends. I’m keeping in touch with the majority of my cohort
  • I expanded my network to include Fullstack Alumni of cohorts past
  • I’m very proud of my Capstone project
  • I feel confident as a full stack developer
  • I received a lot of great career advice and guidance

Cons

  • I only have a few months of experience with some of the technologies I know
  • Some companies look down on bootcamp graduates
  • Bootcamps don’t give you “work” experience
  • The risk is low, but I have a fair amount of debt from the expense
  • The stack we learned doesn’t apply to all job postings
  • I have a lot more studying to do on data structures, algorithms, testing, and more

Now What?

My list of activities:

  • Continuing to learn by studying the above resources and teaching
  • Writing articles
  • Working on side projects
  • Working part time with a friend as a React developer
  • Going to meetups, setting up lunch and coffee chats
  • Working on interview questions with other alumni
  • Moving applications along the job pipeline: writing cover letters, scheduling phone screens, working on coding challenges, and preparing for interviews
  • Enjoying having a little more free time :)

Please contact me if you’d like to discuss anything in my post. Best of luck!