One of the most common questions that we hear from students and employers is “Do I need a CS degree to get a job as a software engineer?” Our guest today is Roshan Choxi, Co-founder of Bloc, an online coding bootcamp – he says absolutely not! He also says that Bloc’s new Software Engineering Track can teach you everything that you learn in a CS degree and guarantee you a job. We ask him all about this new Bloc program in our Q&A below.
Roshan, we did our first Course Report webinar with Bloc two years ago, but a lot has changed since then! Tell us a little bit about yourself and what led you to start Bloc.
My cofounder and I both studied Computer Science at the University of Illinois, so we went the traditional university route.
After we graduated we thought about all of the opportunities to improve technology education and started Bloc. It’s been about four years since we started and we’re right there with all of the offline bootcamps that emerged around the same time.
Bloc started with the unique goal of always being online and using technology to make education accessible. Our pitch has always been something with the outcomes of a developer bootcamp, but at the scale of a MOOC (Massive Open Online Course).
We’ve seen a lot of the in-person bootcamps start to scale online, but Bloc was definitely one of the first to think about online education exclusively. What was the first course that you offered four years ago?
Rails was the first course that we launched four years ago and we still have it today. It’s obviously iterated since then, the curriculum’s fresh and we’ve learned a lot about how to do a program like this exclusively online.
The Rails course is our proudest accomplishment. One of our graduates used the capstone project he built for it to get into YCombinator. When we heard about it, we were all very excited.
That was Willing, right? I remember reading about it. So you started with the Rails course and today you have three tracks—Rails development, the Full Stack Web Development track and now the Software Engineering track.
Exactly. There’s Rails Web Development, the Full Stack track and the Software Engineering track. They’re each meant to satisfy a different outcome.
The Rails course is recommended for students that would like to learn new skills that are in high demand. A lot of entrepreneurs or hobbyists tend to enroll in this course.
The Full Stack Program was launched at the beginning of this year. This is a viable alternative for any of the offline bootcamps. It covers a very similar curriculum. Students learn back end web development with Ruby on Rails and front end web development using HTML, CSS and a framework called Angular.
Just a couple of weeks ago we launched the Software Engineering Track. All of these tracks are built on the previous one and what we’ve learned so far. It focuses on the skills engineers need to be effective in the workforce. We started with the employers and asked them what new hires from bootcamps are lacking. We ask if they have hired CS students, what skills they’re lacking and how to prepare them.
What do you hear most often in the comparison between a Computer Science student and a bootcamp graduate?
Much to bootcamps’ credit, the knowledge and training students get in a bootcamp is much more practical. A lot of employers say that they’re surprised when they hire someone out of a Computer Science program and they’ve never used Git or Github and they don’t know how to deploy an app to the platform. They have a lot of CS theory under their belt, but they don’t necessarily have the practical knowledge to hit the ground running from day one.
On the other hand, with bootcamp students —we use the analogy of a car, they’ve hired someone who knows how to drive a car but who can’t pop open the hood and fix something in the engine. Bootcamp students have a good understanding of frameworks, but if they have to solve an engineering problem, that’s out of their territory. They don’t always have the CS and software engineering fundamentals to crack open the hood and solve those types of problems.
Can you clarify the difference, if you see one, between software developer and software engineer?
I don’t know if there’s a difference between software developer and software engineer. There’s a clearer distinction between web developer and software engineer. We actually just published a blog post about this, if your readers are interested!
A web developer is how I would describe a bootcamp grad. Their job title is probably something along the lines of junior web developer or junior full stack web developer. They have competency in building web applications and they understand web technologies, so web developer is an appropriate name for that role.
For software engineers, the word “software” goes beyond web applications and includes the full gamut of what software and programming can do —much more than just web development.
The intersection between IT and software engineering is interesting when you talk about companies like Heroku or Stripe that are building software, restructuring how websites are hosted and using computer virtualization. The definition of software engineer can be pretty broad.
Web development is just one category of programming. I’d say that software engineering is a bit deeper and more principled to include programming beyond the scope of web development.
I think I have a good understanding of the difference between the three tracks that Bloc is offering now. Can you tell us the differences in the application process for those three courses—specifically the Full Stack Web Developer track and the Software Engineering track?
For both the Full Stack track and the Software Engineering track there is mandatory pre-work. The way we see it, we want to have something objective that provides a service to our students. The pre-work is a vetting process for them to understand whether or not the program is a good fit for them and whether or not they’ll enjoy the type of work they’ll be doing. It’s a collection of free resources that you could find online. We have students try any of those resources before they dive into the program.
That’s before they’re accepted into the actual program?
Not necessarily, but before we’ll take their money we do require them to do the pre-work. It’s an expensive program and we don’t want people to take it lightly. We want them to have experience writing code. If after that they still feel, “Yes, this is the thing for me, I’m really excited to learn more about it,” then great, we think they’re going to be a really successful student. That’s for both programs.
What’s new in the Software Engineering track is that we are offering full tuition reimbursement if a student doesn’t find a job as a software engineer at the end of the program. In order for us to make sure that we can actually stand up to that guarantee, we have to add some qualifications. There are some aspects of finding a job that aren’t influenced by education and training. For example, if a student is willing to relocate to a major metro area that makes it a lot easier for us to find them a job as a software engineer. There’s definitely a concentration of tech jobs in the top 15 cities and not as many opportunities in some smaller cities and states yet.
So there are some location restrictions; is there a coding challenge or a technical threshold to get in?
There isn’t a coding challenge or technical interview. We use our pre-work as a screen for that. A student could cheat in the pre-work and have someone else do it for them, but as I said earlier, the pre-work is meant to help a student assess whether they’ll be successful.
For any bootcamp, you get out of it what you’re going to put in. We advise students to ask themselves, “Are you able to put a sufficient amount of effort into learning the curriculum?”
A lot of students have graduated from Bloc programs. Online learning can be difficult. It’s a challenge to stay committed and make it through a program. What types of people have you seen really crush it?
The people who really crush it come in with a good understanding of what engineering and design are. If they understand it and are sure they want to do it, they’re starting with the right kind of motivation. The other thing that they have are good study habits. Either that or they find ways to structure their time from the start of their program.
When we say, “We suggest that you put in at least 25 hours a week to stay on pace for the program”, the really good students literally look at their calendar and allocate 25 hours a week for the remainder of the program. They make sure that they can actually commit to that. Small things like that help successful students stay on track.
You said 25 hours; is that the time commitment for the Software Engineering Track? I read that the course can last from 48 to 72 weeks. How many hours should students dedicate per week?
There are two paces offered for this track— full-time and part-time. At the full-time pace, students dedicate 40 hours a week. For most people that means they don’t have time for anything else. At 40 hours a week, a student could finish the program in about 48 weeks.
The other pace is closer to 20 – 25 hours a week and on that pace we expect that a student will finish the program in about 72 weeks. It’s a really long time, but every hour is an investment in yourself. Students are going to come out of this program with a jumpstart on their career as an engineer.
Anyone that’s done research on Bloc knows that mentors are a huge part of the program. Are the mentors in the Software Engineering track involved in the same way as the other tracks? Do they have CS degrees?
It’ll be a subset of our mentors. Not all of our mentors will be eligible to teach in this program. Our mentors are experienced developers. The majority of them were working in the industry for 5 – 10 years before mentoring at Bloc, so many of them do fit the qualifications to be a software engineer.
Interestingly, some of them don’t have a CS degree. Some of them have learned the same principles of software engineering that one would get in a CS degree either by teaching themselves or on the job. A lot of them wish that they could’ve enrolled in a program like this.
I can see two challenges in trying to build a competitor program to a CS degree. One being that you actually have to build this curriculum and the other being that you have to convince the employers of its efficacy. Let’s start with building a curriculum. What have you added to the curriculum that takes students to the next level? I liked your car analogy about being able to solve engineering problems; what does that take?
We also use that analogy when we’re thinking about program design. What employers are telling us is that they want bootcamp students to have a deeper understanding of what they’re learning; not just the ability to use the frameworks, but an understanding of how the framework operates.
We’ve taken that literally in some respects. Part of the course involves digging into how frameworks operate, learning the fundamentals and design patterns of creating a framework like Ruby on Rails. We examine questions like, How do you create an adapter that plugs into a database? How do databases work even if you’re not using a web framework? What are the actual components of a SQL relational database?
The other part of the program is the same sort of thing but involves digging even deeper into the practice of programming itself. How do programming languages work? How do they implement things like hashes and how do you implement arrays? For example, in Ruby you can call something “.sort“ on a method and it takes care of sorting – but how does the sorting algorithm actually work? How do people build something like that when they can’t rely on built-in methods?
Students learn algorithms, data structures, relational databases and the last part we’re calling framework design patterns. How do you put all of this together into a coherent framework like Ruby on Rails?
You and your cofounder went through a traditional CS degree program. What are some things that you took from your program and made sure you had in this program? What are some things that you didn’t think were necessary?
I studied Computer Engineering (a hybrid of CS and electrical engineering)and my cofounder, Dave, studied CS. When we put together the syllabus we thought, “We’re going to add CS 225 and CS 410. Should we put in CS 173?” The things that we ended up including were data structures and algorithms. A lot of people, even computer engineers, took this class and we incorporated what we learned from that class into the program.
There’s a class called Programming Studio that includes some of the more pragmatic things about test-driven development, code spells and design patterns. It’s something that you see a lot when building software in the field. We tried to incorporate a lot of those lessons into the program.
What did you take from the companies that you worked with to develop the curriculum? Were they asking for more theory?
This was all shaped by the feedback that we heard from employers about bootcamps in general. Again, I’ll say that employers love bootcamp grads because CS students do learn a little too much theory that’s not necessarily relevant to most employers.
What they want bootcamp students to learn more about is not necessarily theory, but just more depth, learning how everything works at a deeper level. They still want it to be practical and they find that it is practical on the job, it’s just that if you don’t understand how a web framework operates, you can’t use Ruby on Rails to solve that problem.
So it covers the same topics but you’re going deeper, not necessarily wider. That makes sense. The second part of that challenge is convincing employers, right? You can have a beautiful platform and a beautiful curriculum but if the employers don’t know about it, it’s all for naught. What are you doing to convince employers?
One of the great things about this industry is that it’s feeding off of this meritocratic culture where no one really cares where you learned how to code. You could’ve taught yourself or you could’ve been a baker then went to a coding bootcamp. As long as you have the skills, that’s good enough.
We count on the fact that we can train very good software engineers using a curriculum that was informed by the standards of the best engineering teams. We trust that if we get students on that track that was defined, in part, by these employers— as long as they get all the way to the end, those employers are waiting there to hire them.
Do you have companies who have agreed to hire out of the career track yet?
We’ve had employers who’ve given us feedback as we’ve been developing the program, but there are no guarantees that they’re going to hire a certain number of students from it. A lot of them have hired bootcamp grads who’ve done half the curriculum, so we’re pretty confident that a student who’s in the program twice as long is going to do really well.
Have you had students in the Full Stack Web Developer track get real jobs yet?
Actually, the first few grads are just rolling out now. They’re all doing really great. I think we’re going to see results commensurate with what you would expect from an offline bootcamp. They’re going to find jobs as junior web developers at great technology companies.
The Software Engineering track is less about boosting a placement rate number or getting more people jobs as web developers. It’s more about a completely different tier of opportunities—companies like Google, Facebook, Twitter, Heroku and Stripe, companies that command the highest engineering talent, still don’t hire bootcamp grads because they don’t have the software engineering foundation.
The diversity of the tracks ultimately comes down to that difference in outcomes.
Are there assessments in this track? For an employer who’s not ready to hire a bootcamp graduate yet the appeal of a CS major is that they can assume a level of competency because CS grads have completed a certain number of learning hours and passed a certain number of tests. Are there assessments in the Bloc curriculum?
Yes, the way we do the assessments currently reflects what an employer would do if they were assessing a candidate. We do regular technical interviews with our students. Whatever feedback we have for the student we pass on to their mentor so they can work one-on-one with their student.
Basically, it will accomplish the same thing that CS programs do with a GPA. We have mentors and career service coaches who work with students and they’re incentivized to make sure that whoever we pass on to employers is the right candidate for them.
Sometimes that means they they’ve achieved a certain level of ability, and sometimes that means they have a certain geographic or culture fit.
Despite the fact that Bloc is very much a technology company, there’s a much more human way of doing it. We’re counting on natural relationships that form between mentors and employers.
How long is the apprenticeship in this new course? I feel like that’s a huge part of what Bloc does. Will that look the same as past Bloc programs?
The apprenticeship phase in the software engineering track is 12 weeks if full-time and 18 weeks part-time. One of our first Full Stack track students who was doing particularly well wrapped up the front end program faster than we expected. It sort of happened organically that he started doing freelance work with another one of our Rails mentors who had a contract. Essentially, he’s taken the role of a junior engineer working with a senior engineer on real paid contract work, so he made some money working with his mentor while taking the Bloc program.
We thought it was amazing. That’s going back to the traditional apprentice model in which you do paid work under a master. We were inspired by that and decided to try that for our Software Engineering track.
The way we’ve designed it right now is that students to do real-world work—this also came from employer feedback, they want bootcamp grads to have a little more real-world experience. In this phase, students work on open source projects with their mentor, dig into real code bases, collaborate with other people on production code that engineers are using.
Going back to our conversations with engineers at the best engineering companies, they’ll tell you that the one thing they really like seeing in engineering candidates is that they contributed to open source code. There are a lot of good reasons for that, but there’s a correlation between the best engineering teams and the engineering teams that contribute to open source projects.
Can a student still come up with their own idea and build it in this apprenticeship?
They definitely can. We’re trying to make sure that students who enroll in this program are serious about becoming software engineers. What we want to avoid is someone changing their mind halfway through, feeling that they spent too much money for a goal that wasn’t in line with the program.
Students can work on their own projects, but we set expectations that they shouldn’t count on that. That shouldn’t be the reason that they’re enrolling in this program.
You mentioned this before, but the price for this class is a lot more expensive than any full-time immersive program that I know of. How does Bloc justify the cost?
There’s the tuition reimbursement. To demonstrate our confidence that this is a very effective program, we’re offering a full tuition reimbursement if a student doesn’t find a career as a software engineer.
From there, it’s just an ROI calculation. Is this worth it for you? Do you really want to be a software engineer at the end of this program?
Is it $24,000 upfront?
It’s $24,000 upfront, but there are financing options available. Right now students can pay $3,000 upfront and pay monthly installments of less than $1,000 a month until it’s paid off.
The other element to consider is that Bloc is more cost-efficient than many offline bootcamps because we don’t have the overhead costs. We feel that this program is actually more comparable to a CS degree where tuition is $40,000 to $80,000 a year. If you’re comparing prices of this program to other bootcamps, we think our Full Stack track is a better comparison in terms of curriculum. Galvanize has a $21K, 24-week immersive program and if you compare their syllabus to ours, it’s actually closer to our $9,500 Full Stack track. So with our Software Engineering track at $24K it’s still within the price range of in-person bootcamps, which are also very expensive, but we think it’s in a different category based on the amount of material covered.
Have you had students start this track yet?
We’ve enrolled a few people.
Do they have programming experience?
Almost all of them do. Most people will try something like Codecademy, Code School or Treehouse, before they think of investing $24,000 into a coding bootcamp. If they haven’t, we ask them to try it before they give us their money. We want students to make sure they understand what they are signing up for. So, these students have tried coding before, but most of them are not engineers or CS students; they’re people coming from a completely different background.
I will wait patiently for 48 to 72 weeks to hear the types of jobs that they get at the end of it! The final and most important part of the Software Engineering track is employment; let’s talk about that. Does Bloc have a placement team? At the beginning, job placement wasn’t necessarily the number one focus. But now a lot of bootcamps have job guarantees; how has your team evolved with that goal?
We have an outcomes team that’s starting to form. We leverage two things around outcomes. We teach our students how to fish; we teach them how to get jobs without necessarily relying on Bloc’s connections. We have hiring partners, but we think it’s important for students to know how to conduct that process.
We’ve written curriculum around job preparation and career coaching; our mentors work with our students on job placement from day one of the program. On the first day students are already moving towards the goal of getting their portfolio projects together and understanding where they need to be to find an opportunity at a really prestigious engineering company.
We’re starting to involve more of our mentors in career coaching. Not just the technical training but the actual career coaching. They’re all developers, so they’ll often leverage their personal networks to help students find careers.
Are you expecting that students who graduate from this track will get jobs as software engineers or would junior web developer or web developer also be a goal?
It will definitely come down to what the student wants to do. Coming out of this program, students will have all the same opportunities as a student in the Full Stack track and then some. They’ll definitely work in software engineering. I’m not sure what their exact title will be because the industry itself is confused about what titles actually mean. What is a web developer vs. software developer vs. software engineer vs. code ninja?
You mentioned the refund/job-guarantee. To qualify for that refund does the student have to complete the program within a certain amount of time? Do they have to pass a test at the end of the course? What disqualifies a student from receiving this refund, if anything?
There are a few upfront qualifications that are mostly logistical. Students either have to be in a major metropolitan area or willing to relocate to one. Students have to be eligible to work in the United States because we’re not yet prepared to help students who aren’t.
Do students have to complete a certain number of mentor sessions?
Those are the program qualifications that happen once a student is enrolled, and students do have to complete the program. There isn’t a minimum time in which students have to complete the course. Our students already want to complete it as quickly as possible. Students do have to complete the curriculum requirements, which generally include the foundation and two projects for each section.
It’s a reasonable target. It can be difficult for such a long period of time, but it’s doable.
Is there anything we skipped over that you want to make sure Course Report readers know about this new track?
The short version is if you’re interested in becoming a software engineer, we think we are the best program out there for it.