During a week of podcasts about programmer education, Software Engineering Daily found that coding bootcamps and online courses offer cheap, effective alternatives to the classic four-year computer science degree plan.
What is a coding bootcamp?
A coding bootcamp is typically 12 weeks long, though some are as long as 28 weeks. Costs range from $12,000 to $18,000.
“Bootcamp” is an accurate description. A typical day starts with a lesson at 9 AM and ends with a coding session late into the night.
App Academy student Haseeb Qureshi described his months of being completely immersed in code: “The material has been blasted at us at a breakneck pace, and I’ve been learning a ton. Among the things I’ve learned: what ‘90 hours a week’ feels like. The past 5 days, I’ve been at App Academy from 10AM till midnight, every single day.”
Topics that students learn in those grueling few months include programming languages, algorithms, databases, software testing, and the interpersonal skills required to work as an engineer.
Students at these camps work on a variety of software projects, ranging from chess games to Facebook clones. This allows students to build a portfolio of work, leaving a paper trail of their improvement for future employers.
Most boot camps also include a section for teaching students how to navigate the hiring process.
Students are consistently able to land jobs after their coding boot camp education. App Academy is so successful with its students being hired that it offers loans against future programmer job salaries.
Bootcamps vs. College
A coding bootcamp is not a condensed version of a college computer science curriculum.
Coding bootcamps place an emphasis on practice. After a student attends a coding bootcamp, she is competent enough to build a web application, but she may not be well-versed in automata theory or advanced algorithmic complexity analysis.
In contrast, universities pride themselves on a preference for theory.
The highly ranked computer science program at University of Texas “focuses on the theoretical foundations of computer science and related applications” and “frequently relies on rigorous mathematical proofs.”
University students memorize the runtime complexity of Dijkstra’s Algorithm and learn to write excruciating proofs of correctness. This work rarely applies to the workplace students find themselves in after college.
Coding bootcamp students benefit from avoiding the abstract theoretical lectures, problem sets, and proofs of a university computer science program. In a bootcamp, students spend a higher percentage of their time coding.
In college, “theory” often turns out to be an ivory veil for emphasizing computer science concepts and languages that are no longer as relevant as they once were.
Computer science curriculums place emphasis on proofs of correctness, dated languages like C, and problem sets. Those subjects have some value, but students would be better served by spending more time prototyping, working in teams, and writing modern code.
Computer science now applies to almost every field of work, yet universities continue to treat CS firstly as a theoretical natural science rather than an engineering discipline.
Even the most cutting-edge computer science subjects such as quantum computing and deep learning are being adopted by industry today. If a computer science topic cannot be given a practical, industrial framing in the classroom, it begs the question whether that topic is worth exploring at all.
One consequence of this academic focus on theory is that many computer science students leave college incapable of programming. Daniel Gelernter, CEO of Dittach writes about why he doesn’t hire computer science majors for his tech company:
“There isn’t a single course in iPhone or Android development in the computer science departments of Yale or Princeton. Harvard has one, but you can’t make a good developer in one term. So if a college graduate has the coding skills that tech startups need, he most likely learned them on his own, in between problem sets. As one of my developers told me: “The people who were good at the school part of computer science—just weren’t good developers.” My experience in hiring shows exactly that.
This is a shame because the young people who get degrees in computer science or engineering often have the makings of great software developers—the interest is there. But the education is a failure.”
In the eyes of universities, building software products is the work of engineers, not computer scientists.
Theory Falls From Practice, But Not The Converse
A common defense of universities is that academic computer science needs to focus on theory, because strong theoretical knowledge leads to the best graduate research, the best papers, and the best breakthroughs.
But much of the most important technology coming out of academia springs from theoretical research that is highly informed by practice — application development in the field.
Theoretical computer science is sometimes defended as a “basic science” in the same vein as biology, physics, or chemistry. The basic science argument goes “if universities don’t do it, who will?”
But the payoffs in computer science research are often so massive and easily applied that tech giants like Google, IBM, and Facebook cheerfully invest in large, bold projects with no obvious payoff on the visible horizon.
Universities’ focus on theory may or may not lead to better research. But in any case, it is not what students are actually looking for.
There is a high correlation between computer science enrollment and demand in the tech job market. This was also true at the tail end of the dot com bubble. Many of these students are looking for employment, not long-term residence in the ivory tower.
As competition intensifies for the limited spots in university computer science programs, coding bootcamp enrollment is soaring to meet the remaining demand.
“If I was trying to learn coding on my own, to the level that App Academy was able to teach me, it would have taken me significantly longer.” Haseeb Qureshi is a former high-stakes poker player who has switched his career to web development.
After several years playing poker, Haseeb lost interest in the game, and wanted a new profession.
The skills of a poker player do not translate naturally to many other jobs, and Haseeb had earned a college degree in English, making him ill-equipped for a tech position.
To enter the world of technology, Haseeb would have to make a sharp career transition at age 25, and learn a completely new set of skills.
Despite having no prior ability to program, he built up the necessary skills of an engineer in less than a year through his education at App Academy.
Haseeb’s success is not an outlier. 94% of graduates of Turing School of Software and Design find themselves a software developer job within three months of graduation. Some graduates of Turing School have already worked up to senior developer positions, where they find themselves returning to Turing School looking for developers to employ.
Coding boot camps are increasing in variety and volume.
Entire sites are devoted to comparing the different bootcamps. As the field of software engineering has grown, related fields like data science and user experience design have splintered off into discrete job titles.
Companies are starved for data scientists, and bootcamps like Galvanize Data Science are producing students to fill those positions. “There’s not enough data scientists out there,” said Galvanize Data Science co-founder Jonathan Dinu.
The $12,000 cost of a coding boot camp is not as prohibitive as college, but it is still too costly for many potential students. For these students, there is a growing buffet of free or cheap online options.
Treehouse offers a full-stack developer education resource for $25-$50 per month. The program teaches design and business strategy along with coding skills. Treehouse focuses on creating an enjoyable learning experience.
Dataquest is an online learning platform for data scientists. With a full experience in the browser, students interactively learn tools like Python, statistics, and Apache Spark.
Free Code Camp is a program dedicated to teaching people how to code while also helping non-profits. Students learn full-stack development with the help of a friendly 100,000 person community, all at no cost.
“Free Code Camp is much more versatile than an in-person coding bootcamp,” said Quincy Larson, founder of Free Code Camp. Quincy admits that the lack of external pressure hurts some students.
“Because nobody’s standing over telling you do this, the types of people who succeed at Free Code Camp have a lot more initiative and self-direction than people who succeed in a coding bootcamp.”
A Bright Future
The unemployment rate of college graduates is higher than it was at the worst point in the dot-com bust but jobs for programmers and technologists are booming.
“Accounting, finance, a lot of the rank-and-file procedural” type jobs are being automated, and people in those fields want to switch to programming, says Larson. “There will be a time where the average unambitious person cannot get a job.”
By 2025, 30% of jobs may be replaced by robots and artificial intelligence. Prestigious fields like radiology, accounting, and law may have their ranks thinned as automation performs more of the work.
The bad news: programming is one of the few safe harbors left for employment. The good news: everyone can learn to code just as everyone can learn to read. As Quincy Larson says, the biggest challenges are psychological, not technical: “Random people that you wouldn’t necessarily expect to be effective developers can kinda just come out of the woodwork.”