My Coding Bootcamp Experience Through COVID-19

David Chung
Level Up Coding
Published in
11 min readOct 13, 2020

--

Back in March of 2020, I got laid off from my Sales Job in luxury retail due to COVID-19. Since graduating college back in 2015, I had been studying to either try to get into medical or physician assistant school. After many gap years of working in the hospital and taking the MCAT (twice), I decided that I was getting older and medical/PA school wasn’t a good of an option for me. Knowing that I love creating things, my parents and friends suggested that I should check out software engineering if medical school doesn’t work out.

The thought of shifting gears into a different field of study was scary to me. I had poured countless years of studying and experience into the medical route, and forfeiting those years seemed like a waste. However, I learned many life lessons during those years, and I wouldn’t be who I am today without going through those things. After coming to terms with my shift in careers, I applied to Flatiron School Coding Bootcamp and shifted full throttle into studying code!

The first line of code I wrote was back in April 2020. Flatiron School has free lessons you can take before you even apply to the program that teaches you the basics of JavaScript and Ruby. I first did the free lessons as a Litmus test to see if I actually liked coding and if I was any good at it. I didn’t want to commit to something if I didn’t actually enjoy it. After a couple of labs, I noticed that time went by quicker and I got excited when my lines of code were actually working. So I applied to the boot camp, passed my interviews, and started doing the pre-work the school gave us before class started.

My start date for the boot camp was June 1st, 2020. I got accepted into the school around mid-April. Being out of school for a couple of years, I wanted to get back into studying for longer hours. So I spent 8–10 hours per day coding and ended up finishing the pre-work very early. With about a month left, I decided to study more HTML, CSS and JavaScript before class began. The resources I used were: internetingishard and Javascript.info. I also drilled algorithm questions (easy difficulty) on Codewars using Ruby to help me start thinking how a programmer would. By the time class started, I felt ready and less afraid of the unknown.

This was me “coding”.

Flatiron school sections its curriculum into 5 modules. Each module consists of 3 weeks. The first week of the module is what I call the “learning” week. Each day of the week we would have lectures in the morning and then have a paired programming lab in the evening. Homework labs would be deployed to us usually in the beginning of the week that supplements our learning. Personally, I would try to get through all the labs/lessons before we even have the lecture on the topic during class. I felt like this way worked for me and I retained information better. On the second week of the module, a code challenge is given near the end of the week that gauges whether or not we know the foundational knowledge of the language we are learning. If we fail the code challenge, a re-take code challenge is given during the third week. If you fail the re-take, then the student usually gets deferred to the next cohort or drops out. Lastly, the third week of the module is project week. This is where we take the knowledge we learned during the first two weeks and build a project with it. At the end of the third week, we present our projects to our classmates/instructors.

Module 1 was learning to adapt to a different style of learning. When I went through college, I was comfortable with memorizing large amounts of information and then regurgitating that knowledge on written tests. Programming is less about testing you on what you have memorized, and more about being able to logically build applications with the foundational knowledge you know. When I first started to learn how to code, I didn’t respect the code. What I mean by that is that certain languages have certain methods or ways to solve the problem. Once you learn the intricacies of each language, learning becomes much easier. Another thing I learned to do is to learn how to read documentation and stack overflow well. One of the first things our instructors told us to do is to google our problem if we were ever stuck. At first, everything on stack overflow and documentation looked really complex, and it confused me even more than it helped. However, once I got comfortable reading documentation, I was able to solve most of my problems on my own.

Project week was the week that I had the most anxiety with during the program. The reason I was so anxious was because I felt like I didn’t know enough to build an application. What helped me significantly was reading a plethora of articles the weekend before project week to help prep me for the upcoming week. My partner and I planned each day what we wanted to accomplish, gave ourselves a realistic timeline of hitting those targets, and built each feature one at a time. By the end of the week, we built a fully functional command line application! (See demo here: https://youtu.be/hdhr5TliaoQ).

While module 1 was more about methods and querying, module 2 was about building with an actual framework. We had an entire module to learn Ruby on Rails.

By the end of the module, we built a full stack Ruby on Rails web application. Learning Rails wasn’t exactly difficult. However, building out a Rails application is a very structured process. It doesn’t lend itself to be very expressive, and I found it cumbersome to work with the view files Rails offered (embedded ruby). I also spent a lot of time working on the styling of my project using CSS(Cascading Style Sheets) and realized how hard designing can be (shoutout to all UI/UX developers)! I still found learning Rails to be an enjoyable experience, and Rails taught me mostly everything about MVC (Model-View-Controller). Here’s my module 2 project, Trekker! (https://youtu.be/pru2Xp3RobU).

Module 3 was all about JavaScript, finally. JavaScript… even non-coders knew what it was. The language that all employers look for in any applicant. The hottest language of the decade. I was ready to learn this language head on. However, module 3 turned out to be a very tumultuous time for my cohort. The instructor that was intended to teach us JavaScript had actually resigned a couple weeks before we finished module 2. Flatiron School decided to combine our cohort with the cohort that was in New York. This meant that our lectures would be in video calls of 50+ people with just one instructor. Getting help from either the instructor or coaches took 30+ minutes for all my classmates, and the learning experience proved to be very difficult.

My module 3 experience.

However, I loved studying JavaScript. And even though I didn’t receive as much help from the coaches as I’ve liked, I adapted and learned to use my online resources. If I was ever stuck on something, I would spend my weekends watching YouTube videos that taught those things. I came out of module 3 feeling like I could build anything I wanted because it really taught me to take ownership of my own education.

JavaScript itself is very powerful. Compared to Ruby on Rails, building with JavaScript felt so freeing. There were many cool things you could build using events and the language itself has tons of developers contributing to its libraries. The creative that lives within me started to express itself in the code I was writing! I gained a better understanding on fetch requests and started to grasp how the front end interacts with a back end server more clearly. For my module 3 project, I built an Instagram clone for pets. You can see the demo for the project here: (https://youtu.be/9GXSqkO9nYg).

During module 4, we learned how to build with React. As per Google,

“React is an open-source, front end, JavaScript library for building user interfaces or UI components. It is maintained by Facebook and a community of individual developers and companies. React can be used as a base in the development of single-page or mobile applications.”

React is probably one of the hottest libraries to know as a burgeoning developer. It’s the thing to know that gets you hired, and being a master at it makes you a top prospect to many tech companies. I absolutely loved learning React. JavaScript as a language, felt superfluous, and there were many times coding with vanilla JavaScript that made it feel exhausting. React solves all those pain points vanilla JavaScript had. It allows for apt compartmentalization and cleaner code. React also came with JSX, which is a syntax extension to JavaScript. It essentially combines JavaScript and HTML and separates concerns within the React component.

During module 4, I had actually experienced burnout. I knew it was coming but didn’t realize how bad I had it until I failed the module 4 code challenge.

What burnout was like for me.

Failing the code challenge was a wake up call. I realized I wasn’t spending as much time mastering React as I could have. I felt defeated and worthless. So, the weekend before my re-take of the code challenge I did what I knew best, I grinded. Or to put it into better words, I studied, HARD. I took a half day of “rest” and I poured the remaining time into mastering React. By the time the re-take came around, I felt confident my hard work wouldn’t fail me. I ended up finishing all deliverables (including the advanced deliverables) within 30 minutes, given an allotted time of 90 minutes.

In hindsight, the failure of the code challenge was a blessing in disguise. I probably wouldn’t be as good in developing web applications if I hadn’t spent the extra time really understanding the ins and outs of React. I humbled myself, became resilient, and came out victorious. Here is my module 4 project: (https://youtu.be/XLV9ZdpmQOs).

Module 5 was different than the previous 4 modules. Instead of the typical first two weeks being allotted for learning, we had all 3 weeks building one final capstone project. I had always wanted to build a budgeting application that tracks how much I spend on certain categories. I spent the first week of module 5 learning Redux and Chart.js. Redux is an open source JavaScript library for managing application state. It centralizes state in one store rather than having to pass down state as props. Chart.js allowed me to include a doughnut chart in my application. This was the meat and the main focus of my project. I wanted my doughnut chart to be dynamic and have a feature where you can access a “nested” doughnut chart after clicking a category on the chart. Learning Redux and Chart.js were the hardest parts of module 5. Redux was difficult because there were many parts to keep track of when building out the state manager, and it was easy to get lost. Understanding Chart.js made me feel like I was a data scientist. Learning to work with data points and displaying them on charts felt foreign, and it took me a couple of days to actually show what I wanted.

I had the most fun during the bootcamp making my capstone project. There would be days where I would spend more than 10 hours coding. I was excited about the application I was building and I felt like a kid playing with Legos. I felt legitimate joy when I coded my project, and I knew I had made the right decision when I decided to pivot back in April. I finished building out my project, presented my application, and graduated on September 11, 2020. Here is my final capstone project called Obsido! (https://youtu.be/SYQzvOHRVDw).

Conclusion

Overall, my coding boot camp experience was a major success! I had a lot of fear switching careers, especially during these difficult times. You risk a lot when you attend a coding bootcamp, and the job prospects after graduating are not guaranteed. However, the past year has been one of the most developmental years in my entire life. When you take big risks, you find yourself putting all your energy into that risk. And when you commit your entire self into completing a task, good things come out from that. Here are some takeaways I learned from my coding bootcamp experience:

  • You get what you put in. Programming is a field that if you spend enough time working on a project or learning something new, you’ll see the fruit of your labor.
  • You become the captain of your own ship. When I built my projects during the bootcamp, I had full control on what I wanted to build and how I wanted the projects to look. I took ownership of my projects and put in a lot of time because I wanted my projects to be quality products.
  • Be humble. It was a recurring theme where I would think I would know how to do something, then completely not know how to do it. The faster you’re able to tell yourself “I don’t know”, the faster your learning experience will be.
  • Don’t hold onto your failures. Be forgetful (of your failures that is). Failure to me doesn’t actually mean I failed at something. Failure is often a great revealer. It shows the gaps in my knowledge. If I didn’t know how to code a certain feature or got stuck on an algorithm, I knew where to start studying.
  • Strive for mastery. All my life I studied just to get a passing grade. I would know just enough to pass tests, but not actually retain the knowledge. Software Engineering is a field where knowing all aspects of a language or framework directly correlates to building better products. I didn’t want to just “pass” bootcamp, I wanted to come out as a master.
  • Be kind to others. A major part of my bootcamp experience were my classmates. A great thing about bootcamps is that everyone comes from different backgrounds at very different life stages. Everyone in the program wants to succeed and the goal wasn’t to make yourself stand out amongst your peers, but to build amazing projects together. If my classmates were struggling on certain topics, we would extend a helping hand. If I was struggling on something, a hand was reached out to me.
  • Plan to play. To be honest, I think I played the most compared to my peers during my time in bootcamp. I didn’t slack off by any means, but I set time for myself each day to decompress. Having balance in your life is often underrated in this field. Many programmers are fine working 10 hours a day without feeling stressed, but for most people it’s not sustainable. Make sure to enjoy life.
  • Carpe Diem. Seize the day. It’s important to take each day seriously. Wake up each day with the intent to give it your all. If your day goes horribly, then go to sleep. Wake up the next day to Carpe Diem. Life moves incredibly fast, so make each day worth it.

Thank you to everyone who have supported me on my journey. I’m still growing as a person and as a programmer. I may have just finished a bootcamp, but I’m still at the starting line. There’s a whole new world out there for me to experience!

--

--