How to Survive the Software Engineering Bootcamp at Flatiron School
By: Ethan Fournier
Tags: Software Engineering, Coding, Flatiron School, Bootcamp

Disclaimer: I went to the Access Labs campus in Brooklyn. It’s my understanding that the operation of all of the campuses across Flatiron are similar, but keep in mind that this is my experience at this particular campus.

I’m now in Module Five of the Flatiron Bootcamp. I’ve had twelve weeks of grueling coding experience and I still have three more to go. Here is my advice on how to survive.

Your First Week Will Suck

There really isn’t any getting around this. The first week of your bootcamp experience will be intense. You’ll probably think about quitting a few times. You’re thrust into a new environment with people you’ve never met before and you have to adjust quickly. You’ll be hit with a fire hose of instruction all at once. My first week at the school was the hardest.

Your time is split between lectures, pair programming labs, homework labs, and get-to-know-your-cohort exercises, as well as a few talks about the structure of the school. It feels like you have no free time to get your thoughts together. School ends at 6pm, but I stayed late almost every day that week, trying to wrap my head around everything.

You will be given a ton of homework labs. You will not have time to do them at all that first week. Even if you don’t have children, or don’t have a long commute, there just isn’t enough hours in the day to complete all of the work you’re given that first week.

But don’t fret: the information flow and stream of new labs slows down your second week. You’ll get a chance to take a breath. You’ll have the opportunity to catch up on labs that you weren’t able to finish the first week. And hopefully, get some sleep.

Do the Labs

The homework labs are a big part of your education at Flatiron School. They prepare you for the lecture, and the lecture expands and cements the knowledge you acquired in the labs. But I’ll be honest, these labs can be frustrating. Sometimes the order of the labs won’t make sense — you’ll learn about something in one lab, try to use it on the next lab and fail the tests, only to be required to use it the following lab. Sometimes you’ll need to know a particular method to pass tests on one lab that they don’t teach you until several labs later. Sometimes the labs are difficult or aren’t explained well. I’ve also encountered labs that are just plain broken.

The biggest advice I can give you about doing homework labs is to know when to ask for help. Do everything you can to solve them on your own — but if you’re stuck for more than 30 minutes, ask someone. Go to your classmates, and then your coaches and your instructors. If you’re at home and don’t have access to help — it’s not the end of the world to look at the solution branch. In this situation, I try to limit my peak of the solution to the specific part that I’m stuck at, continue from there, and then look again if something else isn’t working out.

That said, the labs aren’t the end-all, be-all of the curriculum. It also depends on how you learn. I learn by doing, so the labs were my priority for learning. Others learned more from lectures and still others learned the most by doing their own projects. Figure out how you learn best and prioritize correctly.

Take Notes in Lectures (But Don’t Code Along)

Lectures are a large part of the curriculum, taking up several hours a day. Utilizing your time wisely during lectures is important.

An important thing to realize going in: your instructors are recording the lecture, and they will give you a link on YouTube following the lecture where you can review any information missed. So don’t fret about missing something — you will have the opportunity later to go back rewatch the lecture. Some of my classmates prioritized rewatching lectures over other forms of studying.

A big piece of advice that most (including the professors) will give you is to not code along with the professor as they’re teaching you. I agree — to an extent. This is what I do during lecture:

There is a GitHub repository that contains all of the lecture code. Don’t fork this repo — but clone it into a folder on your computer. Don’t edit any of this code (if you do, you can use the git stash command, but I find it easier just to avoid this). Create another folder for your notes. Open up your notes in your favorite code editor. Save each file by date. I use the .md file type for my notes. This gives you the ability to write in plain text, but you can easily start typing code in Ruby or JavaScript by typing in your editor: ```js or ```ruby . You end this section of code by including ``` at the end of the block.

I have the lecture code and my lecture notes open side by side. I don’t try to code along with what the professor is doing, but I do look to see where he is in the lecture code. I take simple notes on things he says in lectures that I feel are significant. If he starts working on a particular piece of code, I can copy and paste it from the lecture code directly into my notes and then write quick comments about what he’s doing. This is the best of both worlds to me. I’m not trying to directly follow along with what he’s doing, but I have reference points that I can go back to if I need an example of a particular method in code. If a professor is creating code from scratch — don’t try to copy what they’re doing — just write down the key commands you have trouble remembering and go from there.

The next time you’re in lecture class, just git pull from the repo you’ve cloned to get the most recent lecture code. If your particular professor doesn’t push up code before the lecture, just ask. Most will accommodate you.

Time Yourself for Code Challenges

Each module is three weeks. There is a code challenge once a module — usually in the middle of the second week. These challenges test your knowledge on the material you just learned. They can be stressful — you have a certain amount of time to build certain features of an app that are detailed in the Readme. The time limit can be from 60–90 minutes, depending on where you are in the curriculum. Sometimes you only have a week of lectures/labs on a particular topic before you have to complete one of these code challenges.

Usually before a code challenge, the instructor will release practice labs. These labs are designed to prepare you for the code challenge. They’re usually longer and more in-depth than the actual code challenge, but they are good practice. Do enough of the labs where you feel like you know what’s going on, but save a few — ideally ones that don’t have any bonus problems — and time yourself doing it. If you couldn’t do it in the allotted time, erase what you’ve done and try it again. Then try a different lab and see if you can do that one in the allotted time.

The main thing is to try to recreate the environment of the code challenge as much as possible. In a code challenge, you will not have access to any of the material covered in class — this includes any lecture code or notes. However, you will have access to the wider resources online. Limit yourself in the same way. Don’t look at your notes. Don’t look at previous labs. Try to go into a room by yourself and time how long it takes you to do one of these labs.

Taking one of these times code challenges is hard, but giving yourself a test run helps a lot. You can also ask your instructor to do a mock code challenge. This is where they give you a practice lab that you haven’t done before and time you on it. This has the same stipulations as the real code challenge — don’t use any of Flatiron educational material or notes. There usually is a review afterward as well. Not all instructors will provide this for you, but I’ve found them incredibly helpful.

Try to Take a Break

Having any kind of work/life balance during a coding bootcamp is difficult. There are many times that you end up staying late at school, and a lot of people come in on the weekends.

I tried my best to do the labs during school, so I had time to relax when I got home. If I needed extra time to do the labs I would stay late and do them at school rather than going home and doing labs. This gave me some type of separation: I only did school work at school, so going home was relaxing.

It’s also important to break up your weekends. I usually would spend one day working and one day relaxing. Usually on Saturdays I did a whole lot of nothing — met up with friends, watched some Netflix, played some video games. If needed, I would go grocery shopping or get my laundry done. On Sundays, I would do work, either at home or in school. The campus is open 24/7, so many students like to come in during the weekend and work. You can arrange with your fellow cohort-mates to see when they are coming in so you can have a study session together.

Conclusion

Bootcamps are hard. They can challenge you in ways that you’ve never been challenged before. They can test your relationships, your self-confidence, and your resilience. You have to have determination to get through these 15 weeks of rigorous coding lessons. But hopefully you will come out of the other end with a great deal of knowledge you didn’t have before — and a job.