Great Expectations: Flatiron Software Engineering Program 
Tags: beginners, bootcamp, codenewbie
Published: 2021-01-29 04:17:26

It's the day before my graduation from Flatiron School's software engineering program, and as I approach the end of this grueling 3.5ish month journey, I can't help but to reflect on the progress I've made: from playing around on freecodecamp.com in my spare time, to now being able to build a fully functioning website, involving solo coding a backend and frontend, in less than 3 weeks. 

I just made it sound effortless and easy, but in reality, what got me to where I am today was 40-50 hours a week (at least) of watching code lectures, practicing coding, and coding with other newbies. That's a whole lot of coding, and it's practically a full time job! And like most full time jobs, this experience came with its highs and lows. 

To give the reader some perspective, I started out with practically zero coding knowledge; I changed the font once on my Myspace layout and that's about as far as I ever ventured into the coding realm until the summer of 2020, also known as the year when Covid-19 decided to rear its ugly head and wiped out any prospects of in-person *anything*.

In simpler terms, social distancing took effect and remote learning became ubiquitous, so in turn, we had to adapt to the shortcomings that came along with it. Learning how to code is already tough as it is, but losing the class dynamic only made it that much harder. 

There was a sharp learning curve in the beginning, and now that it's all said and done, there's a few things I wish I understood about the bootcamp before going into it, so for anyone toying with the idea of applying to Flatiron, this post is for you. If you just recently got accepted - congrats! Hopefully this post can be of help to you too. 

**1. Curriculum breakdown** 
The 15-week program is broken into five 3-week phases where you learn the following fundamentals: 
1. Ruby 
2. Ruby on Rails 
3. Javascript 
4. React 
5. Final capstone project (technically not a fundamental but will take 3 weeks)

Ok, rewind - what was all that gibberish? Ruby and Javascript are programming languages, the foundation of what we build our web applications off of, whereas Ruby on Rails (or Rails for short) and React are web application frameworks that help provide structure to the backend and frontend code, respectively. 

In short, the curriculum includes two programming languages: Ruby and Javascript, as well as two frameworks: Rails and React.

**2. Program split** 
Each 3-week learning phase consists of:
1. Lecture week 
2. Code challenge week
3. Project week 

During lecture week, it consists of exactly what it sounds like - sitting through code lectures over specific principles within that fundamental, as well as daily partner exercises where you are paired up with another student to work through a problem code. This week is when a lot of heavy lifting takes place in terms of learning, coding, and practicing the same principles over and over again. 

During code challenge week, there is an 'exam' (known as the code challenge) that takes place in the middle of the week that tests you over the principles learned from the previous week. While the program doesn't give out grades, it does operate off a pass/fail system, and if you aren't able to pass the code challenge, the opportunity to retake the exam or redo the phase is then up for discussion. 

During project week, you have the opportunity to collaborate with other students on a project where you implement the fundamentals you learned from week 1. This week is probably the hardest, yet most rewarding week in each phase because you are literally creating something from scratch and seeing ideas that you might have had finally materialize. At the end of project week, the cohort comes together to present their project and seeing the progress that other students have made is just as rewarding. 

**3. Take a break every once in a while** 
The last thing I wish I knew beforehand was the very important lesson of taking a step back from your computer and decompressing. Going into the program, I thought I had to be non-stop coding to keep up with all the other software devs in the industry. I felt lightyears behind them since I was just beginning to embark on this journey while others had been coding for years, and at a much younger age.  

Taking a break won't hurt your coding progress; if anything it can help it. The amount of times I've spent chasing a problem all afternoon only to solve it the next day after being well rested has been far too many times, and it makes sense - your brain is a muscle and like every other muscle in your body, after strenuous exertion it needs **rest**. 15 straight weeks of coding is mentally draining and the only way to prevent burnout is to take the time to recharge when you can. 

So there you have it - things you can expect from the program and how to set yourself up for success. Good luck to any newbies out there, the journey is hard but it sure is fun! Happy coding, y'all.