Bootcamp Reflections
Published: 2021-07-15 14:36:37

I have less than one week left of my web-development immersion program. As such, I thought it would be fitting so share some of the strategies that helped me succeed.

## As many hours as possible

When the program first started, we were only in class for three hours a day four times a week. I spent at least six hours a day writing code. Before class started, I was at the computer reviewing presentations and code from the day before. After class ended, I worked through Udemy videos.

When class jumped up to five days a week for nine hours a day, I squeezed in a few extra hours before and after class. Not only did this allow me to stay ahead of the course material but also built up my endurance for the eleven hour days that were yet to come.

You definitely need to build up your ability to sit at a desk for half the day. It's very difficult to go from three hours a day to eleven plus hours a day. I recommend you build that endurance up before you have to so you're prepared for the long-haul days.

## Stay ahead of the curriculum

This helped me more than anything else. To succeed in a coding bootcamp, it's best not to learn anything for the first time in class. You should go into a topic with a working knowledge of the subject. Class time is best spent practicing and and assignments should cement the knowledge.

The following Udemy courses were particularly helpful. I, personally, prefer Colt Steele. I completed the entire course and used Angela's course to review subjects of which I was unsure. She speaks a little slower which can be helpful when the topic is complex. 

If you're interested in design, Angela Yu is a great choice. All her projects have a modern look and feel and you can learn a lot about aesthetics by paying attention to how she lays out and styles her web apps.

https://www.udemy.com/course/the-complete-web-development-bootcamp/
https://www.udemy.com/course/the-web-developer-bootcamp/

I gained a strong understanding of React by going through John Smilga's React courses. He has one video with tutorials and another video where completes projects. He's also got a great eye for design and writes really clean code. He has a Udemy course which I would recommend as they're less than $15 when they're on sale (which is always).

The skills I gained working through his course transferred seamlessly over to Angular and will transfer to all component-based UI frameworks I learn in the future. Time very well spent.

https://www.youtube.com/c/CodingAddict

## Review, review, review

Watching coding along to videos is great. I do it all the time. However, I spend almost as much time reviewing old code and making sure I understand each and every line. When you're coding along with an instructor, it feels like you understand the material. When you revisit it the next day or week, all of a sudden, you understand nothing.

While I'm reviewing old code, I'm adding comments that explain every non-obvious like of code. Frequently, this involves referencing documentation. Reading through documentation and actually typing the comments really helps me with retention.

I think this is especially helpful when using libraries and frameworks. When you're using one of these, you're making a lot of method calls. Some instructors are really good about explaining what each method call is doing under the hood, most are not. Sometimes, instructors type so fast it's hard to keep up and you miss the explanation.

## Data structures, algorithms, and problem solving

Writing code isn't just about knowing how to use popular libraries and frameworks.

It's really important that you understand the basic data structures and sort and search algorithms. Not only do these come up all the time in interviews, they're a really good exercise in critical thinking.

Working with nodes and pointers is very different than working with real-life entities. When you're working with real-life entities, you're writing simple functions that map over lists and transform the list, filter the list, or reduce it to a value or object that contains values. 

When you're working with data structures, you're thinking on a much more conceptual level. It's a completely different style of thinking and really improves your problem solving skills.

Colt Steele has a great class. I went through it once and rewrote them in TS a few months later to review:

https://www.udemy.com/course/js-algorithms-and-data-structures-masterclass/

It's also really important to seek out coding challenges. I get an email from Daily Coding Problem every morning with an interview question from a major tech company. Most of the questions are really tough. What they consider easy, I consider medium. What they consider hard I consider impossible given my skillset.

When I can't come up with an answer, I google it and see how others have implemented it. The best problem solvers are those that have seen the most problems. They recognize patterns and can quickly determine when a new problem shares similarities with a problem they already know how to solve. The more you solve, the better equipped you are to solve a new one.

## Conclusion

There are my keys to success. Like many other aspects of life, you get out of a coding bootcamp what you put in. If you want to excel, you need to put in some extra hours and seek out supplemental material.