10 Things I Learned as a Coding Bootcamp Grad

10 Things I Learned as a Coding Bootcamp Grad

Photo by Hack Capital on Unsplash

I was working in the hard disk drive industry as a Senior Research and Development Engineer when I knew that I wanted to work on software. I had a degree in Mechanical Engineering and an established career with six years of experience, but the idea of switching careers this late in the game was daunting. Could I really handle going back to school? Is it a bad idea to leave my old career behind and start again from the beginning? These are questions that were racing through my head as I was trying to figure out my future.

I needed to figure out what it is that I wanted, and only then figure out how I was going to get there.

I decided to make the switch, but it wasn’t easy. Big life decisions require lots of thought and research, but they also require you to follow your heart. My background in engineering prepared me for problems of this magnitude. I had learned over the years that the best way to tackle a large project or problem is to break it down into its components. And if possible, make these components independent of each other so that you can work on them separately.

So I decided to split up my large, daunting decision into two smaller, manageable decisions. I needed to figure out what it is that I wanted, and only then figure out how I was going to get there. I wanted to make a career out of working on software projects I cared about. So once I decided that’s what I was going to do, a huge weight was lifted off of my shoulders. I was now energized to figure out how I was going to reach that goal.

Fast forward to now, I’m a Senior Software Engineer with about 5 years of experience under my belt. At the time, my journey to becoming a software engineer by attending a coding bootcamp was very new and uncommon. Today, it’s a much more popular route, and so I’d like to share a few things I learned along the way.

Photo by Philippe Bout on Unsplash

1. Bootcamps can help you learn what you’re capable of

Throughout my life, I’ve always pushed myself to work hard and achieve my goals. I graduated with honors in three years with my Mechanical Engineering degree. I started an apparel printing small business for fun while in grad school. I successfully flipped a property with no prior experience in carpentry or real estate. But completing the Hack Reactor bootcamp may have been the most challenging of them all.

On average, I was in class or studying for 12 to 14 hours per day, 6 days per week, for 3 months straight. Every 2 days we learned about a new technology and how to use it. It was mentally and physically exhausting, while also testing you emotionally. Being away from your friends, family, and normal life for 3 months is no joke. Even if you’re doing a full remote bootcamp, you have almost no free time.

Bootcamps put you under somewhat artificial pressure by using aggressive deadlines and pushing lofty goals. This pressure will make or break you. I’ve seen a few people fold under the pressure, but for the most part, students are generally able to rise to the challenge and come out well-equipped to handle anything.

Photo by Noah Silliman on Unsplash

2. Bootcamps are not for everyone

Not everyone is meant to be a software engineer, and I think that needs to be said. While I think that given enough time and resources everyone can learn to code, that doesn’t mean that everyone should. Being a software engineer means shifting your mindset to programmatic thinking. If that’s a big, unnatural shift for you, you’re probably not going to have a smooth career trajectory.

Even more so, not everyone is going to be able to successfully complete and thrive in a coding bootcamp. This is because as I mentioned before, bootcamps are physically, mentally, and emotionally demanding. This type of fast-paced, rapidly changing environment can be difficult in general, not just for people trying to break into software development. Some current software engineers wouldn’t thrive in this type of scenario, and similarly, if this format were applied to a different profession, I think it would also prove to be challenging for many.

The inherent complexity of software engineering curriculum combined with the strenuous nature of the bootcamp format produces an entirely new dimension of education difficulty. It’s not for everyone, but for whom it does appeal to, it can easily be the best option to crack into software development.

Photo by Siora Photography on Unsplash

3. Bootcamps don’t really teach you much and that’s okay

Syllabi vary from bootcamp to bootcamp, but to become a passable software engineer, you have to code. A lot. You have to code all day, every day. That’s one thing that all bootcamps have in common: they know how much you need to code. That doesn’t leave a lot of time for lecturing, one-on-one tutoring, or much of anything else.

Hack Reactor was structured with 2-day “sprints” for the first half of the bootcamp. For the most part, the beginning of each sprint began with a short lecture where a new technology or concept was introduced. The rest was coding. And these introductions weren’t deep dives, they were just enough to get you going or to point you in the right direction. The value of the bootcamp isn’t in its lecture time or its world-renowned staff. The primary value is derived from two different sources: the brand name and the power to produce autonomous engineers.

At first, the brand name didn’t mean much. Without a Computer Science (CS) degree, you were going to have a difficult time getting an interview anywhere. As bootcamps kept producing quality engineers, the brand name became another layer of authentication. Now employers know if you graduate from Hack Reactor, you’ve been put through the wringer.

Given enough time and resources, you can learn anything.

Bootcamps can help you become autonomous. Along the journey you’ll get stuck, you’ll feel lost or burnt out, and you’ll likely get a heavy dose of impostor syndrome. But with small nudges in the right direction, you’ll realize the answer is always in the code, you’ll be able to Google your way out of dead-ends, and you’ll start to use computer science principles to write better code. At the end of the bootcamp, you’ll start to understand that given enough time and resources, you can learn anything.

Photo by Randy Fath on Unsplash

4. Imposter Syndrome is real and never really goes away

Most people will experience imposter syndrome at some point in their lives. There will always be someone smarter or who knows the subject matter better than you, and it will make you feel like an imposter. Bootcamps are no exception. In fact, they are little imposter syndrome factories.

Bootcamps help you become comfortable with being uncomfortable.

The nature of a bootcamp is to move fast and figure things out as you go. So you’re essentially guaranteed to feel uncomfortable, and that’s by design. There is always something else to learn, and the assignments always have stretch goals for you to take on if you finish early. Bootcamps help you become comfortable with being uncomfortable.

So when you land your first job and all of the engineers around you know more than you, you feel like an impostor. But you don’t sweat it because you’ve been there before and you can handle much more than being a little uncomfortable. Imposter syndrome doesn’t go away, it just changes its appearance.

Photo by Markus Spiske on Unsplash

5. New software technologies emerge often and curriculum needs to adapt to keep up

Getting a traditional university Computer Science degree is a great way to land a software engineering job. They help you build a strong technical foundation from the ground up, and the prestige associated with several of the programs out there will give you a leg up on the competition.

However, universities move at the speed of universities: slow. To be accredited, colleges have to teach certain curriculum standards and meet other comprehensive requirements. CS programs also don’t typically have a lot of incentive to innovate and reevaluate their standards frequently. They historically only really compete amongst other university programs, and the prestige of a program is often established by its research and famous faculty.

Coding bootcamps operate on a different model. They look to fill the void that traditional CS programs left behind by teaching and stressing technologies that are often only touched upon in elective classes at university. The general CS degree model is to teach fundamentals and use optional elective classes to explore new technologies and trends. Bootcamps invert that model. They stress new technologies and trends and only briefly touch upon fundamentals. This model has proven to be successful because bootcamp graduates:

  1. have proven they can flourish in a stressful environment,
  2. have tons of hands-on experience with in-demand technologies, and
  3. are entering a field that has a rapidly growing demand for their skillset.

Photo by Ethan Sykes on Unsplash

6. Some bootcamps will fail you and kick you out

When I attended Hack Reactor’s onsite bootcamp in San Francisco, I had no idea you could fail and get kicked out. I knew there was a midterm exam at the halfway point of the course, but I didn’t know the gravity of the situation.

Along the way, I saw some of my classmates burn out from the extreme pace of the program. I saw another get sick, miss one day, and be so far behind that he never caught up and ended up dropping out. I saw another classmate be told that she didn’t have what it took to succeed in interviews, failed after the midterm exam, only to be reinstated after she complained to them about their assessment of her.

Overall, I had a great experience at Hack Reactor, and the program went a long way to set me up for success afterward. However, it was frankly unethical to not emphasize the possibility of failure and expulsion from the program before we accepted our invitations. Hopefully, they’ve changed their process and this is no longer a problem.

Photo by John Schnobrich on Unsplash

7. Communication is key

Software engineers are often portrayed in mainstream media as introverted lone wolves that exude a quiet genius as they work on cutting-edge systems. While that may be accurate in some cases, that couldn’t be further from the truth for the majority of software engineers. Yes, a disproportionate amount of software engineers might be introverted, but that doesn’t mean they don’t have to effectively communicate. Communication is essential in software engineering, and successful coding bootcamps are acutely aware of this.

The first half of the Hack Reactor program is entirely pair programming, where they take the “driver and navigator” approach. This helps you practice translating your thoughts to speech and also translating someone else’s direction into code. This provides you the opportunity to practice critiquing someone else’s work which can be difficult to do without stepping on toes or hurting egos.

The second half of the Hack Reactor program consists of mostly group projects. You get to establish team member roles, dole out responsibilities, practice an effective version management workflow, and many other aspects of working on a team. There is a big difference between working by yourself on a project and working on a team, and in most professional settings you’ll be working on a team.

Additionally, all along the way, you’re practicing whiteboarding. The practice of simultaneously thinking about how to solve a problem, verbalizing those thoughts, and writing them on a whiteboard feels very unnatural. Hack Reactor provided lots of whiteboarding practice time which not only helped prepare me for interviews but made me a more effective communicator.

Photo by Scott Graham on Unsplash

8. Outcomes are just as important as learning to code

Don’t get me wrong, it will be nearly impossible to land a software engineering job if you don’t know how to code. But let’s consider the scenario where two programmers land entry-level job offers at similar companies. The first is a very talented programmer but doesn’t know their worth nor is an effective negotiator. The second programmer is an average entry-level developer but has been coached on their worth and compensation negotiation. Now let’s imagine they accept approximately the same compensation package as the other. Would you consider this a success for the talented programmer?

Outcomes are just as important as learning to code. By reframing the goal from “becoming a software engineer” to “becoming an appropriately compensated software engineer”, bootcamps can set you up for long-term success that you didn’t even know you cared about.

Photo by Matt Duncan on Unsplash

9. The bootcamp is just the beginning

Graduating from a coding bootcamp was one of the most validating experiences I’ve had in my lifetime. It took a lot of willpower, and I assumed a lot of risk, but it paid off exactly how I imagined it. However, the bootcamp was just the beginning.

Most bootcamp students are looking to land a job after they graduate. Software engineering interviews are some of the most stressful and comprehensive interviews in the job market today. You’ll likely have algorithm questions, whiteboarding, system design questions, and behavioral interviews just to start. You might have take-home projects, purposefully arbitrary riddle-like questions, and much more. This means that you have to study a lot. Bootcamps often prepare you for these sorts of interviews, but it takes practice to become good at them.

Even after you land a job, you’re likely still an entry-level engineer with zero years of experience and a porous knowledge of computer science fundamentals at best. Your intense journey will continue well into your first year on the job. You’ll need to strengthen your core understanding of well-established programming principles that you only truly understand once you have experience not following them. Concepts like Don’t Repeat Yourself (DRY), Single-Responsibility Principle (SRP), and Single Source of Truth (SSOT) are just a few that don’t really hit home until you’ve seen their benefits take shape firsthand.

Things change once you get a year of experience under your belt. A tidal wave of recruiters will drop upon you like you couldn’t imagine, and lots of doors will open for you. You’ve been battle-tested and are starting to proactively learn and improve your skillset like a more senior engineer. But after all of this, your journey is still ongoing. Software engineers are always learning and keeping up with the latest technologies and trends.

Photo by Simon Abrams on Unsplash

10. Coding bootcamps are here to stay

When I first started my journey to become a software engineer, I was very skeptical of coding bootcamps. How could one possibly learn enough from an unaccredited school to become a software engineer in 3 months? How could bootcamp grads compete with candidates who have 4-year computer science degrees? It turns out that the answer to both of those questions is “demand”.

Software is always on the cutting edge and often disrupting the status quo. New technologies and patterns emerge all of the time. Just during my short time on this journey, I’ve already seen the rise of Single-Page Applications, Microservices, Cryptocurrencies, Non-Fungible Tokens (NFTs), and Micro-Frontends just to name a few. The rise in these new technologies means there must also be a proportional rise in demand for people to develop using those technologies. If the demand isn’t being fulfilled by traditional routes, alternative education solutions will arise to fill in that void.

Bootcamps are also a part of a larger trend of moving away from universities and their traditional education models. Universities are expensive, bulky, and generally slow to react to the latest demands. Sure they develop new curriculum and periodically review their standards, but software moves much faster than most other industries. On top of that, universities force you to satisfy several different general education requirements. Maybe these requirements help you become a more well-rounded human being and give you a perspective you might not otherwise achieve in your lifetime. But is it absolutely necessary to become a software engineer? No, it’s not. The more economical solution to meet the growing demand is to train people directly in the areas they need to learn to get a job. This vocational school approach is gaining more popularity as universities continue to become financially out of reach for most people.

Conclusion

Bootcamps can help you transform your career in a way that hasn’t been seen before. They move fast and work along the cutting edge of the software engineering industry. Bootcamps are fueled by the rising demand for software engineers that isn’t being satiated elsewhere. While not for everyone, they can provide a more logical and economical approach to education than you might otherwise be afforded.

Did you find this article valuable?

Support Coding Bootcamp Guides by becoming a sponsor. Any amount is appreciated!