In the fall of 2020, I started Fullstack Academy’s full-time coding bootcamp course, “Software Engineering Immersive.” This is my review.
BLUF: It was great and I’d recommend it to anyone.
My Background
Until about April of 2020, I had never studied coding or software engineering of any sort. I was always a self-described computer nerd, but that really amounted to me putting Linux distributions on old Windows computers and calling it a day. Coding? Programming? Not a chance. I could make a wicked Microsoft WordArt title, or maybe jailbreak an old iPhone just to change a few apps. That’s it. I couldn’t name a coding language, I didn’t know what HTML was, and I certainly couldn’t understand why everyone didn’t just use Squarespace to make a website.
Being a musician all of my life, I know that I have a very creative personality and love formal analysis of music. I love and comprehend all the different structures that can go into any genre of music. Tangentially, I have a reasonably “OK” set of math skills.
When I found myself with extra time at the start of the 2020 pandemic, I decided to try and learn something new. I searched what coding language I should start with and was pointed towards Python. I started taking all the free courses I could find and quickly realized that a lot of the same creative and mathematical aspects that existed in music were also a part of coding.
By the summer of 2020 I was hooked. (If you clicked that, it’s such a corny joke. I’m so, so sorry.) I decided that a career change is what I needed. I needed it for myself and for my family. My wife had a friend who attended Fullstack Academy who went on to have a great career in software engineering. So I decided to do some research.
Learning about Fullstack Academy
When I called Fullstack, the person I spoke to was incredibly helpful and took the time to explain exactly what the course would look like, what the timeline would be. The coding language was not what I had been studying (Python) — it was Javascript. I was quite scared to try and pick up a new language. I had spent all that time learning Python!
But after weighing the pros and cons of hopefully getting into Fullstack, I decided it was worth my time to study. If I studied enough, I thought, I can apply and the worst that can happen is they tell me no and then I can just continue to study and apply again.
It turns out that if you know one language it’s not terribly difficult to learn another. It’s a bit like if you speak Spanish and want to learn French, it’s not the most difficult transition. Many structures operate similarly (verb conjugation, pronouns, etc.).
After taking more and more free Javascript courses (and some HTML and CSS) I felt like I could apply. This was about 3.5 months of dedicated self-study. I got to the point where I could make a very sloppy Hangman game. (The “game” I made had no visuals — it was all lines read in the terminal. Very boring, but it executed the functions that are in Hangman.)
Applying to Fullstack Academy
There were three major parts of the application process.
- Written application
- Online coding exam
- Technical interview
The application is your standard application. Nothing crazy there.
The online coding exam, however, is the first time I really felt the pressure. I had practiced problems on sites like CodeWars or HackerRank, but honestly I took my sweet time with them. Fullstack’s coding exam is timed! They tell you explicitly that if you navigate away from the page that exam will be invalid as it could mean you were cheating, searching for answer online.
While I did not cheat, I DID navigate away from the page to close my email application as the notifications kept distracting me. That was a no-no. After I submitted the exam in which I thought I had answered a little over half of the questions correctly (I think there were 5 total questions?), I was notified that they could not accept that exam. I had navigated away from the browser to close another application. Dang.
But they let me take another exam a few days later! This time I closed EVERY other application on my computer PRIOR to taking the exam as to not be distracted at all. Very fortunately, and with very little confidence, I passed enough of the exam that they allowed me to move on to the technical interview.
The technical interview was less about nailing the questions as much as it was about being able to verbalize your train of thought. Being able to think computationally and explain your reasoning out loud.
**TIP: As you work on a coding problem, practice explaining your thought process out loud to someone. If there isn’t someone to listen, explain it to your dog or cat, or a rubber ducky. Seriously. Saying something out loud vs. thinking it can be very different and, in the case of problem solving, very helpful.
A few days later I was told I passed the interview. While I struggled with some of the problems and did not ultimately arrive at the correct answer, I did explain everything I was thinking (what might work, what might not work, and why). For those reasons — my ability to show that I could explain my reasoning (whether it was correct or not) — I was accepted into the program.
Attending Fullstack Academy
The course is in 3 phases:
- Foundations
- Junior
- Senior
Foundations phase is a part-time phase where you learn and practice certain aspects of programming so that everyone will be at the same technical level at at the start of Junior phase. I found it to be very well-structured, slightly challenging, and overwhelmingly necessary.
To the left is a screenshot of the description of Foundations phase.
Depending on how much you prepare ahead of your application process, you may know some of what is covered.
Did I know everything? Not a chance. The assignments and projects are very straightforward and are vital to successfully completing the course. There is also a final checkpoint that you must pass in order to continue on with the course.
What’s also important about this phase is learning how to set up your coding environment. What IDE do you use? What is an IDE? What is GIT? How do I set all these things up? I definitely struggled with that part, but there are resources available to help you learn everything.
Since part of being a software engineer is problem-solving, something as low-level (in hindsight) as setting up your computer to be optimized for coding is a great first real-world example of problem solving.
**TIP: Ask questions! Ask SO many questions! Milk the Fullstack staff for all their worth: get every bit of information out of them as you can.
There is no such thing as a stupid question — especially not when you’re committing to this financial endeavor.
There is a forum where questions can be asked: use it. Feel like you’ve used the staff and classmates too much and still don’t understand something?
1) You’re wrong — keep asking them! Carve out the necessary time to learn.
2) Seek outside resources! After all, you’re going into this to come out hirable. Learn as much as you can early on.
Junior phase is where the intense feeling really kicks in. My review of this phase since graduating is that it is the most necessary time during the course and the staff were very helpful and accommodating. My review of this phase while I was a student felt more like this:
It’s…a lot. It’s fun! But it’s a lot of information to take in. It’s very easy to feel like, “Oh ok, I think I’m starting to grasp this concept. I’m still a bit fuzzy, but with some extra time I think I’ll get it,” but then immediately you switch to a new topic, leaving that thing you thought you might later understand behind in the dust.
There were so many times where I felt just like that. I felt like I was making progress on a particular concept, and then it was time to start something brand new.
Where is all that time to learn? THIS IS A FULL TIME COURSE and you will most certainly be studying outside class hours (which are mostly 9:30am–6pm EST).
SO: Time management is key.
**TIP: If you have a family (like me), have the necessary conversations together to talk about what your availability will look like. You will be busy working on assignments and studying well past class hours.
Manage your time! Use a calendar app or paper and pencil: whatever works for you. Time management is key during this course.
DO take time to decompress. You may feel tempted to spend every hour (weekends included) working on assignments or studying. But learning anything is compression and decompression, tension and release. Give yourself a break. Take a WHOLE weekend day off. (During the course that idea sounds insane initially, but later on you realize on important self-care is.)
I found this phase to be the most challenging, but the most rewarding. To run your best and fastest 5K race, you should have built your base by logging many, many miles during training. Some at an easy pace. Some close to your race-pace. Some on dreaded hill workouts. Some are run when you have no motivation to run at all, but you get out and log them anyway, even if they are sloppy.
Junior phase is the base-building phase. There will be days where you may question if you’re cut out for this and imposter syndrome kicks in. But if you use the resources and manage your time effectively, you’ll come out on the other side.
The last mile-marker to come out on the other side (and into Senior phase) is a final project that uses just about everything you’ve learned during Junior phase. You know how well I did? TERRIBLY. I had a full blown panic attack when I couldn’t figure things out. You know how clearly your mind works to call on things you’ve learned when you’re having a panic attack? TERRIBLY.
The following description of my final Junior phase project experience is not the standard and is not a guaranteed option for any student. I had the good grace of belief from my mentors who afforded me the opportunity that they did.
The short story is that I did not finish the Junior phase final project in time. I was freaking out because I knew that I knew the material, but for whatever reason I felt like I did not know it. So what was going to happen? You cannot advance to Senior phase if you fail the final project, or if your grades/work are such that the mentors feel you should not yet move forward. Then you pay to repeat Junior phase (or you quit altogether).
All of my work leading up to the final project had been great. Sure, I made some mistakes, but overall I was doing just fine. I was also asking a lot of questions. I was always one of the first to volunteer for something, and always used all the resources and help desk tickets they had. That’s just me — I need to be heavily involved and interacting to learn. I also like to think I’m fun to work with. I’m a happy person and care about other people’s happiness!
While I don’t know for sure, I believe it was because of all of those reasons that my mentors did what they did: they gave me a second chance. They gave me an extension (over the holiday break) to complete the project AND a second project. If I could do that, they’d advance me to Senior phase.
What I had hoped would be a relaxing holiday (Christmas/New Year) break for me and my family, was now me still nose deep into studying and working on this final assignment. But I think it was that belief that they had in me — that support they had shown, whatever they saw in me that told them I was capable — that boosted my confidence and allowed me to think clearly.
I completed the project and assignment, passing, and I was on my way to Senior phase. I am forever grateful for the support and education from the Fullstack staff.
Senior phase is a breath of fresh air. It’s definitely still challenging, but there’s more autonomy. You work on bigger group projects and decide amongst yourselves how you want to tackle things.
The biggest project is the capstone. It’s a great example of a real-world working environment where the team is charge of everything: planning, design, descriptions, pitches, launches. And you know what? It’s exhilarating. I had so much fun working on my group’s capstone.
There were moments of stress and even disagreements between teammates, but that was only to be expected when you get 4 individuals who have only sort-of known each other for the duration of the course and are given a short amount of time to do a large amount of work.
In the end, we all loved each other’s company and I would easily work with them again on any project.
Senior phase is a confidence booster, a challenging assessment, and a rewarding test of your belief in yourself. I absolutely loved every second of it.
Summary — Review of Fullstack Academy
To sum it up, I think Fullstack Academy is tremendously helpful and if you have a sincere interest in learning to code, I would recommend applying.
Pros: (to include but not limited to) wealth of information, talented mentors, taught industry standards, many resources and assistance in preparing for job interviews, resume review, post-graduation assistance in finding jobs
Cons: price tag, work load, long days (← but it is a “bootcamp” so…), fast-paced curriculum, they don’t find a job for you
In the end, I believe if you can get into this program and work extremely hard, it’s worth it. At the time of writing this I have yet to find full-time employment but I have found part-time freelance work, and I am quite alright with that.
The Fullstack Academy prepares you for the real-world of coding. Just bring a planner, your best self, and some (lots of) coffee, and you’ll come out on the other side.