We often hear the argument that the tradeoff between a Computer Science degree and a Coding Bootcamp is “theory vs. practice.” So what exactly does this computer science theory include, and more importantly, can a coding bootcamp work these principles into their curriculum? The team at Fullstack Academy, a MEAN Stack bootcamp in New York, accepted the challenge and added a new module that goes deep into CS fundamentals. We chat with David Yang, Fullstack Co-Founder and Lead Instructor, about the new curriculum, exactly what's changing at Fullstack Academy, and how the added challenge will make their grads even more prepared for their first jobs as developers.
How is Fullstack Academy’s curriculum changing? When are the new changes taking place?
Beginning with the January 2016 Full-Time Immersive cohort, we’ve added a large module to our curriculum that focuses on computer science. This curriculum takes some classic learnings from Computer Science, applies our knowledge of how to make it fun, memorable and practical, and really provides students with more depth than ever before. To fit this into an already packed curriculum schedule, we’ve added an entire new program called Computer Science Saturdays. This addition comes with a scheduling change as well - Fullstack’s Full-Time course now meets 6 days per week, from Monday - Saturday, up from the previous standard 5 day per week model.
Computer Science Saturdays covers both CS fundamentals and theory -- going well beyond the in-demand higher level material taught on weekdays. While our core curriculum has always had a large focus on CS (we’ve always covered Data Structures and Algorithms), we’re excited to take it further with this program.
We hear a lot that the tradeoff between coding bootcamps and CS degrees is practice vs theory- do you think that’s an oversimplification? Are developer bootcamps the new/better “alternative” to a CS degree?
Yes, “practice vs theory” is an oversimplification, but it reveals the biggest weakness faced by CS programs today - you can graduate from a CS program without knowing how to do a lot that is “practical.” This goes back to a fundamental difference between coding schools and CS programs - Fullstack’s goal is to graduate students who are highly qualified for software engineering roles in today’s job market. All of our energy and mission goes toward that singular focus, whereas universities and colleges have a much more diffuse and broad mission of general education.
More specifically, coding bootcamps like Fullstack have developed their curriculums differently than universities. We’ve designed our educational structure and content based on what’s in-demand in the job market, since our goal for graduates is to make sure they get great jobs. And in general, for coding bootcamps that does mean a larger focus on real-world practice, and less on theory, especially given the time constraints for programs (~13 weeks). However, a good portion of traditional computer science material is still useful for today’s software engineering positions, which is what we’re adding to Fullstack with CS Saturdays.
If an employment outcome is your primary goal for attending a school, then attending a job-outcome focused program like Fullstack is definitely faster and more cost-effective than getting an undergrad or master’s degree in CS. We’ve even had a small number students at Fullstack who either dropped out of college or attended Fullstack straight from high school, and they have all gotten high-quality jobs after graduating (though I’d add that they were also all very strong programmers).
My recommendation these days for young people is that if they really love working with computers, do a coding school like Fullstack after your senior year in high school. You’ll enter college ahead of your classmates and know more about why you’re learning what you’re learning, and whether or not it’s valuable.
Both you and Nimit have CS degrees- what aspects from the CS degree did you feel were vital to incorporate into the Fullstack curriculum? Were there classes/parts of your CS degree that you didn’t think were necessary?
As you’re reading this article - the fact that it shows on your screen, that it was sent to you over a vast network of interconnected machines, that the content was stored in some remote database in what looks like gibberish - thousands of incredibly sophisticated things had to happen to make that possible. The most valuable thing I took from my CS degree is how all those layers work (from how we manufacture silicon chips to how your screen is drawn) and what types of abstractions are necessary so that anyone can make all of this work.
You get these moments of eureka throughout a CS degree when all of a sudden, a layer of abstraction is no longer that - it becomes clear how exactly that layer works. We want to take students through those various layers and show them both the engineering and beauty of what it takes to make that system work.
There are a lot of CS classes that aren’t necessary in that they don’t translate to things most programmers do every day. It doesn’t mean that it’s not valuable to learn that - there is just as much beauty in great algorithms as there is in great literature. That being said, it’s a lot more useful to learn CS when you need it rather than ahead of time - your brain just absorbs it much better. I’ve seen this time and time again.
What will one of these “CS Saturdays” look like? Mostly lecture? Projects?
CS Saturdays are structured in the same format as the core curriculum phase as Fullstack, which is the first 7 weeks on campus. It’s roughly 40% lecture and 60% hands-on coding workshop. The day starts with a lecture on some topic in the curriculum. That’s followed by several hours of workshop time where students work in pairs, building something related to the lecture topic. And then the day ends with an instructor-led review of the workshop assignment.
On top of that coding focused schedule, we’re also excited about CS Saturday’s curriculum structure. It starts at first principles in computer science, with very low level concepts like logic gates. Then each week builds on the last one, with students moving up the chain and building more complex elements using all of the material cumulatively. It finishes with students building their own web browser.
How will this additional CS theory change the types of jobs students can get after graduating?
Part of it is also that students at Fullstack just really love being challenged - we want to provide this curriculum to take them further and deeper.
For someone who isn’t very familiar with career/employment options in web development, what are some job titles that a CS grad would expect vs. a bootcamp grad?
The gap has really closed significantly in my mind - in fact, I’ve talked with CTOs who prefer “bootcamp grads” versus CS college grads. In the CS world - I’ve definitely seen a bimodal distribution of practical knowledge that’s hard to judge by GPA alone. Some students can do well in their classes but have no idea about software architecture and design, how to work on projects (some don’t even have github accounts) and how modern technology stacks work (Web, Mobile etc). Our students are more consistent and oftentimes bring with them valuable expertise outside of just a CS degree.
Are you seeing employers become more or less comfortable to hiring from bootcamps? What kind of employer feedback did you consider when designing this new curriculum?
The gap in employer “comfort” is closing rapidly, for a few reasons. Bootcamps like us have gotten really good at what they do - our curriculum, class processes and admissions processes now really help create amazing graduates - they’re motivated, smart, and just generally great people to work with. Employers have also gotten more comfortable understanding the pros/cons of working with bootcamp grads and how to continue to mentor them towards breakthrough performance.
We’re constantly in conversations with employers about what they’re looking for - surprisingly more CS is about 3 or 4 in their priority list. The other things we’re hearing about we’ve essentially already added to our curriculum and culture in other ways. At Fullstack we definitely have an integrated view of what it means to be a great developer beyond just technical mastery - communication, cultural fit, coachability and business sense all combine to make our grads valuable additions to their companies.
At Fullstack, we’ve seen our hiring partnerships grow with every cohort, and each hiring day we host sees more companies express interest in our students. My favorite fact is that many companies are sending Fullstack graduates back to Fullstack to “hire more people like you.” That’s about as strong an endorsement as I can imagine, and there are several big companies like American Express, Goldman Sachs and Priceline that have hired 4 or more graduates from our school.