General Assembly Web Development Immersive Review

I started General Assembly's WDI (Web Development Immersive) in Santa Monica in January 2017. In July I accepted a position as a front-end software developer with Lightstorm Entertainment (think Avatar sequels).

This is what happened in between.

 

The Impetus

Last fall I built an online product called the Metamorphosis Program using a platform called Teachable. The Metamorphosis Program is fifteen years of body-transformation knowledge packed into an online video course meant to be consumed over four weeks.

While I stand by the content, I felt that the presentation left something to be desired: the design wasn't slick, some of the features were clunky, and the site itself wasn't as performant (a new term I've picked up) as I would like.

I wanted to improve these things, but I didn't know how. I didn't know why it looked better on some browsers. I certainly didn't know how to modify the code.

And when I started to examine the breadth of what I didn't know, I realized it included just about every aspect of the internet--from how navigating to a website actually works, to why said website renders a page a certain way. 

Then it occurred to me that this is a major disadvantage!

If you're like many people, some aspect of the internet will probably figure heavily into your livelihood for the foreseeable future. You can either learn on your own, or hire someone to implement the technology for you, but in that case you're at the mercy of those tech savvy wizards who may not have your best interests at heart.  

I've always been fairly stubborn, and I hate having to rely on others to execute my ideas. Beyond that, I've been threatening to return to academia since finishing university. Learning to code seemed like an incredible opportunity to become self-sufficient in the web space, and to devote many hours a day to studying.

In December I researched all of the coding bootcamps in Los Angeles, and decided on General Assembly after meeting a few folks and touring the Santa Monica campus. I had read conflicting opinions on the application and interview processes, so I took the whole thing pretty seriously and was super excited when I received an acceptance email.

In retrospect, I'm pretty sure they take just about anyone because they are a for-profit venture, and at least one person in my cohort had no business being there. But at that point this much was clear: I would be starting in three weeks, had 60 hours of required pre-work to complete, and was on a brand new path. 

 

What To Expect

You can go a long way toward preparing yourself for a coding bootcamp by completing some of the free materials out there, which I will outline and recommend below. The few students that had done this prior to the start of our cohort had an incredible advantage over the rest of us.

Though I went through GA's required pre-work, it wasn't enough considering the pace of the program. I think they avoid recommending the free options to dissuade those on the fence from saving fifteen grand, but that's just a guess.  

The curriculum I went through included:

  1. Three weeks of vanilla JavaScript and a project (build a simple "game"
  2. Three weeks of Ruby on Rails and a project (build a simple full stack application)
  3. Three weeks of MongoDB, Express, and Node and a team project (build a full stack application that consumes a 3rd party API)
  4. Three weeks of AngularJS, Ionic, React, computer science concepts and a project (student's choice; I chose Ionic to make an app for Iphone)

We were the last cohort in Santa Monica to focus on AngularJS. General Assembly has since shifted to teaching React as the main JavaScript framework because its popularity, particularly here in Los Angeles, continues to grow.

Days at GA were 9am-5pm and included two scheduled 15-minute breaks and a 75-minute lunch. However, we had "after hours" work that included labs to further develop concepts we had learned in class, and coding exercises taken from CodeWars or created by our instructors. 

Many students stayed til at least 7pm. I tried to stay until 9pm most days because I didn't feel a natural affinity for writing code and wanted to excel in spite of that. 

 

12-Week Curriculum By Week (In Detail)

The first week was all about learning the development environment, getting comfortable with Git and GitHub, the command line, JavaScript loops, conditionals, and debugging, and DOM manipulation. While I still didn't feel confident, I was pretty sure I could handle everything after week one.

By the end of week two that had changed. At that point, everything was new: JavaScript constructors, callbacks, JQuery, agile user stories, and responsive CSS. It was apparent that I needed to spend many hours on Saturday and Sunday going over the material we had covered, and to prepare for the following week. 

By the third week we were building our first project. We spent the whole week working mostly on our own and meeting with our instructors once per day for 15 minutes to go over our progress. This was a hard week for me because I wasn't able to ask questions throughout the day. I had to do what all developers do: rely heavily on Stack Overflow and Google. 

At the end of week three we presented and demoed our projects for the class. I remember feeling an incredible sense of accomplishment, but there wasn't time to enjoy it, because our weekend obligations were to start learning Ruby on Rails.

In week four we were introduced to SQL (Structured Query Language) and relational databases, active record, and we built our first Ruby on Rails app with full CRUD (Create, Read, Update, Delete). CRUD is the architecture needed for most apps that allow you to post something, change it, and delete it. This was an eye-opening and exciting week.

The fifth week was dedicated to active record modeling, using Bootstrap for styling, learning to deploy to Heroku, and an introduction to authentication. If week four was exciting and positive, week five felt like starting all over.

I think I did my first whiteboard challenge in front of the class this week, and I couldn't complete the problem. I'm not used to failing so publicly, and the imposter syndrome was oozing out of me for a couple of days. But I kept going back. 

Week six was spent building a project in Ruby on Rails. I built a Craigslist-like app to connect farmers and their potential customers. It was pretty simple, but I had to learn a ton of new stuff to pull it off (search functionality, Amazon Web Services for hosting images, and Bootstrap tricks and limitations).

In the seventh week we were back to JavaScript, which I had completely forgotten after three weeks of focused Ruby on Rails work. This week was all about Node, Express, Mongo, ES6, Mongoose, and what it means to consume a 3rd party API. Absolute overwhelm. This week was extraordinarily difficult for me.

Week eight was dedicated to AJAX (Asynchronous JavaScript and XML), an introduction to testing with Mocha/Chai, Socket IO, and authentication with Passport. With only a month left in the program there was no way I wouldn't complete it, but I seriously doubted that I would be armed with the knowledge to get paid to write code. 

During the ninth week we spent the majority of our time within our designated teams building an app using the MEN (MongoDB, Express, Node) stack. This was meant to give us experience working with other developers in an "agile" environment, and we assigned ourselves roles within our team.

We started the day with a stand-up meeting and pushed to and pulled from GitHub without any huge issues. I was the scrum master of this project, and I really enjoyed my time working with a great group of people. 

The tenth week was our introduction to Angular, Ionic, building factories, and UI routers. Again, starting in completely new territory created a new sense of overwhelm and the 12-hour days were finally starting to catch up to me. I was pretty burned out at this point, and I was looking forward to being done. I just didn't feel like my mind was absorbing the new information like it did initially. 

In the eleventh week we focused on authentication with jwts (pronounced "jots"), Big O notation, sorting algorithms, and one day of React. One day! That was a brutal day and knowing that we weren't going back to it seemed like a huge waste of time.

I'd started applying for jobs at this point and had created a portfolio, polished my LinkedIn page, and looked at the available networking opportunities around the westside of Los Angeles. 

The last week of the program was spent learning Ionic well enough to create an app that I could demo on my Iphone for the class. The Plants For Lunch app that I built worked well enough using Yelp's API to find vegetarian, vegan, and farmers markets nearby, so I was satisfied. 

 

You Should Know

Getting good at writing code requires a tremendous amount of repetition. This is because one of the most complicated aspects of each language is a unique syntax requiring special characters that live in special places. If you don't believe me, try to quickly find the "|", or "pipe" character...

See? (Hint: It's on the "backslash" key.)

If you're trying to get comfortable writing clean code in JavaScript, for example, you will need to learn how things should look, where to put parentheses and curly braces, what to pass between them, and whether your instructor/team/conventions require semicolons after variables, functions, etc. 

It's a lot to know, it takes a lot of time, and it's especially painful when you're being fed a ton of additional material every day. 

So I'll say this: I wish I had spent more time writing code prior to starting the program. It can certainly be done without a bunch of pre-work, because most of us did it that way, but 12 weeks is a long time to feel like you're frequently drowning.

There were so many days where I was sure that I didn't belong there, that I wasn't smart enough, and that I couldn't learn the material. So many terribly uncomfortable days when we would take our 15-minute breaks and I would walk out that door and seriously consider never coming back.

I think that was pretty normal.

Students coped in different ways, but the roller coaster of emotions was visible in every single one of my classmates at some point. If you choose to attend, it will happen to you, too.

The good news is you can get through it if you keep showing up.  

 

Best Parts of the Program

  • So much learning
  • Phenomenal instructors and great facilities
  • So many smart, hungry, and ambitious people from all walks of life
  • Challenging, focused curriculum
  • Excellent networking potential

Worst Parts of the Program

  • Meet and Greet was poorly attended (by employers)
  • Curriculum could be further truncated and specialized

Important Lessons During Massive Change

Change is hard. But change is good. And when your brain is struggling in the midst of those changes, you can do a lot to make the process move forward smoothly. Following are some practices that I believe led to my own success.

  1. Keep one thing the same. When every day is very different you need a constant. For me, it was the weight room. I wanted to get stronger weekly but couldn't spend hours a day in the gym. If I did it right, the day began with a victory even if the rest of it was spent fighting feelings of overwhelm. I was able to get stronger every week for 12 weeks.
  2. Dial in your diet. I've been an advocate of breaking the fast with plant-based meals and healthy fats for a long time. This twelve-week experiment was no exception. I ate some iteration of this salad a couple of times every Monday through Friday. I came back from a 1pm lunch every day feeling energized and light, and ready to put in another 8 hours.
  3. Protect your sleep. Twelve-hour, intensely focused days will put a beating on your brain. If you are exercising hard as well it's just a matter of time before you burn out--unless you're careful to sleep enough. I slept from 10pm to 6am every day of the twelve weeks, and I was able to complete the program, get stronger, and maintain enthusiasm throughout. You may need more or less than 8 hours to function optimally, but you will excel if you give your sleep the respect it deserves.
  4. Get 15-20 minutes of sunshine per day. I think just about everyone got sick during this program. I had 48 hours of allergic symptoms when something was blooming (never figured it out), but that was it. I ate well, I slept well, but I also went outside and walked around Santa Monica during every break and at every lunch. The whole Vitamin D deficiency thing is very real--especially for the "Codey McGees" that spend all their time inside hunched over a screen. 
 

Job Search and Aftermath

After twelve incredibly challenging weeks it was over. And that was weird.

After going so hard and putting in endless days studying things I'd never heard of a few months prior, it came to an abrupt-ish end. Then we switched over from being full-time students to full-time job seekers.

A definite strength at General Assembly is its "Outcomes" team, a group of sharp and empathetic folks dedicated to helping students find work after they finish the program. They had laid out exactly how many jobs we should be applying to, the networking events to attend, and how many hours per week we should allocate to each. 

Until our "Meet and Greet," a sort of reverse job fair where we would demo our projects to prospective employers three weeks later, we were supposed to spend 40 hours per week looking for work.

I went hard during this process: well above and beyond the requirements week after week. I didn't want to be outworked during this stage. 

It's especially difficult because you're casting a very wide net, so when there's a second interview or code challenge for a Ruby on Rails position, you shift all your focus to that. When the job description is looking for React experience, you're scrambling to get proficient with props and state.

Unless you're pretty lucky, there's no doubt that getting the first development role is extremely difficult, and knowing where to focus your energy remains pretty elusive if you're applying to multiple positions at once (as you should be).

The Meet and Greet came and went without incident in May (For me, that is... I know of at least one student who got a job because of it). I got a couple of business cards that led nowhere. Two more angsty months followed. 

By mid-July I was wrapping up a React freelance job, looking into learning smart contracts with Ethereum, and going to Meet Ups and weekend events. I'd had a couple of interviews and things looked promising, but I continually heard that I lacked the necessary experience. 

I also knew that almost half of my cohort had been hired at that point, so it stung a little more. Was I too old, was I too weird, was I too dumb? The doubts tend to get out of hand after a long period without the success you're looking for. 

    But then, one day a little after the three-month mark, I was contacted about a job opening at Lightstorm Entertainment. I'd been found through GA Profiles, which is like an internal LinkedIn for General Assembly alums that employers can search, and would I be interested in learning more? 

    Hm...

    My phone interview was great, my in-person interview was even better, and I started the following Monday.

    You'll hear different things from different people within General Assembly about how long it's supposed to take to get hired. We were told 1-6 months after graduation (assuming you fulfilled all of the requirements listed above).

    Here are my numbers:

    • Jobs applied to: 130
    • First interviews (including phone and Skype): 7
    • Second interviews: 2
    • Job offers: 1
    • Months from end of program to hire: 3.5
     

    Should You Go?

    Unlike most things, web development doesn't really require special coaching and an advanced degree to learn or excel. If you have the desire, there are thousands of tutorials, pages of documentation, and free resources to make that happen. 

    At this point I've seen plenty of job postings that value a strong portfolio and GitHub page over a C.S. degree or certifications, and you can build those without spending tens of thousands of dollars. 

    However, I wanted a structured, conservatory-like experience with immediate feedback from my instructors, and General Assembly's WDI did an incredible job of that. I also wanted to compress a ridiculous amount of learning into three months, and that was achieved in spades.

    But the biggest boon of all is probably the network. I can't speak for any location other than Los Angeles, but I wouldn't be in my current job without the people I've met and the connections I've made as an alum of the program. 

    That being said, these free resources will put you on the path to learning to code and develop like a boss:

    Choosing to level up your tech skills and to invest in yourself is always a good idea. Whether you do it on your own or through an existing institution is a choice you will have to make based on your own unique circumstances. I hope this write-up of General Assembly has given you a better idea of what to expect, what is possible, and how to succeed.

    Buena suerte,

    --Thomas

    PS -- This took a long time to put together, so if you got some value out of it or know someone that might, please feel free to share!