I used to work for a coding bootcamp (not Flatiron) and made good money with a month off in between each of the three classes I taught each year. I eventually left because it felt like I was complicit in selling a lie. I totally agree with the article. Students graduating from a bootcamp are definitely not "job ready" without additional training / mentorship. Three months is just not a lot of time to acquire all of the good instincts that you naturally learn over years of doing development. Also the number of junior developers coming out of these bootcamps, combined with graduates from traditional CS programs is way more than the Bureau of Labor statistics suggests that the job market can bear and I saw these effects in action. Each class I taught had a harder time finding jobs than the one before, despite being more qualified on average.
That's not to say bootcamps are not worth it for anyone. There are some really good ones out there that honestly want to help improve peoples lives. The catch is that the students that have the most success are not the ones who come in knowing nothing. The most successful students have spent months (if not years) of dedicated self study. The bootcamp acts as a way to fill in some gaps and provide confidence in the job hunt.
I used to work for the admissions department of a private university (not in the US). Private universities were mostly focused in enrolling as many people as possible, while not being particularly worried about the market needs at all.
Back then, our educational system produced an excessive number of attorneys and kinesiologists, leaving many of them in disadvantage at the moment of looking for jobs. Many of them switched to other occupations for very low wages, something that did not release them from the obligation of paying student loans.
> Flatiron, a for-profit school, has seized on a clear need in the economy that some academic experts say reveals a failing among traditional universities.
Teaching highly specialized skills currently in demand has not traditionally been the mission of universities. In professions like architecture and medicine there is an expectation that new graduates won't have much in the way of practical knowledge about current practices, and so apprenticeships are more or less built in to the transition from student to practitioner.
Is a disinterest in teaching current professional practice really a failing of universities?
It seems more likely that bootcamps are simply a way for software firms to outsource part of the apprenticeship process. Most of the people who go to good bootcamps already have strong university educations and would likely have been able to be hired into junior dev roles anyway without the bootcamp.
> Most of the people who go to good bootcamps already have strong university educations and would likely have been able to be hired into junior dev roles anyway without the bootcamp.
That depends on how much programming experience they have. Many boot camp attendees have college degrees in non-technical majors and have no coding experience at all.
A boot camp is a way to get coding experience in a structured environment that has credibility with employers. In the view of many companies, self-taught coders don't have that level of credibility, even when they have decent Github portfolios or other proof that they can program.
Interesting. I wonder if that necessity for lending credibility is a somewhat recent thing. Perhaps the popularity of bootcamps makes people who recently got into coding and didn't attend one look worse - companies might assume they couldn't get in to a decent one?
I'm a developer who didn't study CS in undergrad, and I didn't have a problem getting job offers when I was starting out several years ago, self taught and unproven. But bootcamps weren't really a thing back then.
I'm self-educated as well, but back then (starting around 1999) there was no Github (so less visibility into a prospect's activity) and no frameworks (so problem solving was more valuable than structure)
I think it's partially a new form of credentialism. But there is also the question of a candidate's suitability for the job. If you want to hire a Rails developer, for example, someone who just got out of one of the Rails boot camps is probably a more attractive candidate than a self-taught programmer who did not focus on Rails -- even though that self-taught programmer might know more about programming in general.
>>Is a disinterest in teaching current professional practice really a failing of universities?
I think the issue is that universities are not in a good position to judge what is "fundamental knowledge" and what is simply a current professional practice.
I have a B.S. in Informatics from the University of Washington. It's basically a degree at the intersection of computer science and humanities[1]. During the course of my studies, I also took a lot of non-degree courses from other schools at the university, including a three-semester program focused on Information Security and Assurance.
After I earned my certificate from that program, I went to the dean of the Information School and argued that information security should be made a core part of the Informatics curriculum.
He said: "Just because information security is the hot thing right now doesn't mean it should be a part of the curriculum. Students can take courses on it and count it towards their degree, but it doesn't seem to me like it's fundamental knowledge."
So yeah. To this day, when I see poorly designed, unsecure systems, I think of that moment: some academic declaring that information security does not constitute fundamental knowledge for a degree program about information, technology and computers.
Security is not a required class for pretty much all CS degrees, including at other top CS schools like MIT, Stanford, and UC Berkeley. And from my experience, academics at these schools know exactly what professional practice is, given how many professors start startups out of these universities.
Students are not dumb. I personally think no specific classes should be required of a CS degree (other than a specific number of classes), and while the department should make recommendations, they should trust the intelligence of their students and give them freedom to pick the right classes.
>>Security is not a required class for pretty much all CS degrees, including at other top CS schools like MIT, Stanford, and UC Berkeley.
Next time a bunch of credit card data is stolen from a high-profile retailer, or credentials with plaintext passwords leaked from some company's database, you should think long and hard about what factors may have contributed to it.
>>Students are not dumb. I personally think no specific classes should be required of a CS degree (other than a specific number of classes), and while the department should make recommendations, they should trust the intelligence of their students and give them freedom to pick the right classes.
Wait, hold on. You are expecting a bunch of 19-23 year olds to make intelligent and wise decisions about what classes they need to take in order to succeed in their field?
It's reasonable from several different angles. Economics: The goods are priced lower than the competition. You don't negotiate prices against yourself. ROI: as aianus mentions. Affordability: it's about the same cost as a car, and lots of people own cars.
You know already know the frameworks, a third of swift is ObjC with better and more concise syntax. And it's not like Swift didn't get inspiration from other languages. Even though the combination was novel, the single ingredients were usually from somewhere. (Don't take it as a jab at Swift, it's probably my fav language + environment for app development).
You might not be writing idiomatic Swift from the get go but no one is at that point.
> You might not be writing idiomatic Swift from the get go but no one is at that point.
I think that's kind of the point the parent comment is making. How can a school acting in good faith open Swift classes if it's impossible for anyone to actually be an expert on it?
Relax. All they need to do is teach, not be experts.
I asked the same of a MechE friend who used to teach AutoCAD at a community college despite not having known it before. His answer? I just need to stay a week ahead of the class.
$1000/week seems alot to be taught by such a guy, IMHO. A student could do that for free, from Apple's website, and be only one week behind where they would be. So Flatiron is charging $15k for a one week head start!
How do graduate students with no background in teaching become adjunct faculty teaching courses that cost the same amount as ones taught by tenured professors?
A coding camp graduate can be considered with respect to a computer science graduate what a paralegal is to a lawyer, or what a nurse is to a doctor.
They can perform some procedures, but not all of them, and at some point there might be supervision.
Now to be fair, paralegal and nursing programs take much longer than 12 weeks, are very strict and are regulated occupations that require a license that you can actually lose under certain circumstances.
Their purpose is to provide extra productivity and cost efficiency, but at some point they might require supervision and some procedures might exceed the skills learned during their training.
Some of the best engineers I have worked with did not learn CS in college, or even in a boot camp. They learned on the job.
Some programmers want to believe that computer science is harder than it really is, because it inflates their egos. CS is not as difficult to learn as law, or medicine, or electrical engineering, or many other disciplines for which self-taught practitioners are exceedingly rare.
Furthermore, I've seen new hires with graduate degrees in CS fail interviews horribly, or get hired and produce horrible crap, while new self-taught hires have outperformed them significantly. A degree is no guarantee of any skill level, which is unfortunate.
An abridged definition of engineering is "applying science to create technology". A software engineer applies computer science to create software based technologies. Under that definition you worked with programmers not engineers.
Then, true. You might have worked with programmers that seemed productive and learned on the job. But much of that learning happened at the expense of exposing the company and the customers to great risk.
For instance, if you are manipulating financial information, and you don't know what a floating point number is, you are eventually going to have a bad time. If you don't understand concurrency and parallelism, you might end up corrupting important data, if you are suffering networking issues and everything you know is HTTP at a high level... you are going to have a bad time. And the list goes on and on and on.
Friendly software development technologies were created to augment productivity, not to release people from the responsibility of knowing what is going on with them.
Now to your point, it is clear that not all computer science programs focus in producing highly-qualified software engineers. But that doesn't mean that you can simply skip the fundamentals.
Not all software requires the same degree of rigor in design and implementation. Software has bugs, but it sounds like you'd prefer if such software were never written in the first place. Regarding risk, it's as likely that the super-educated "engineer" drops unfiltered input directly into a SQL query as it is that Joe Programmer has the chance to corrupt data with a concurrency bug.
Bugs and defects will happen at the time of implementing functional and non-functional requirements no matter how strong your preparation and problem solving skills are. But they differ since assumptions would differ in nature.
Many people would work on a problem until it works (or stops being an obstacle). But it takes some preparation to understand if an implementation is acceptable from a non-functional requirement standpoint.
In the information age, given the right questions, you might eventually get the right answers. But you need to be able to formulate the right questions first.
If you do not possess a strong problem solving approach, you might not be able to formulate those questions in the first place.
Then, corporate interest aside, there are definitions of software engineering that are very clear. Refer to the IEEE definition of software engineer for instance, it might be more aligned to mine than to the "I feel like an engineer today" idea you are trying to push.
I've been in the industry since 1999 with no CS degree, and there were no boot camps back then. I'll bypass the horn-tooting, but I've managed to do pretty well in my career :-)
There have certainly been moments. However, I suspect the time and expense wouldn't have balanced out yet, and becomes more skewed the older and more experienced I get. (I was a full time developer 6 months before I would have graduated, had I done a CS degree in 4 years out of high school, so throw that income in the mix as well)
These days my role is focused on a breadth rather than depth of knowledge, my ability to learn new skills quickly, and an emphasis on solving business problems through technology. (The company I work for focuses on logistics problems core to most businesses, not Twitter-level concerns)
On a meta level, "I've known great engineers who were self-taught and terrible engineers with CS degrees" is a recurring meme in these discussions that really adds no information to the thread - it's obvious, and it's almost a tautology.
Learning doesn't stop after an initial degree. So, in medicine, you have situations where nurses are adopting many of the roles that physicians have stereotypically occupied, in terms of NPs and nurse anesthetists, etc. Granted, they do this with additional education, but it's still acquired gradually rather than in a single degree. PAs, which are ostensibly assistants, essentially have the same training after a certain period of time as physicians, especially with med schools shrinking their in-class curricula, and PA programs having stricter pre-degree experience requirements.
I think the argument that's implicitly being made with this sort of model is that you don't need a monolithic degree to learn a given skillset, and there are multiple routes to the same outcome. Furthermore, having a monolithic degree doesn't mean you know everything there is to know in the field (especially as your degree drifts further and further into the past). My guess is a certain proportion of those non-CS graduates provide something else to corporations other than low-level fundamentals of computer science.
My prediction is that medicine will crumble under its own weight as these sort of realities become too expensive to ignore. There's too much of an unmet need for health care to ignore the huge swath of people who can competently provide it. Maybe something similar is happening in IT.
Your analogy is also a little interesting in that in many settings, the tasks done by nurses and physicians are not the same. I routinely have seen physicians ask nurses to complete tasks like put in IV lines and so forth because they didn't know how to do them, and didn't want to botch the job. The nurses weren't simply a substitute, they were functioning in a different role.
Yes, through years of collaboration they have learned to distribute tasks in specific ways leading to specialization. What I am trying to get at is that it might not be a really good idea to have a nurse be the head of a cardiology department.
Sure, but in the sentence right before that it talks about the companies hiring the graduates that are based in SF and NYC and these camps are put on in those cities so I'm assuming you don't go to these boot camps and then take a job in Kansas.
For what it's worth, when I started working in NYC in 2011 in a prominent company, I started at 65K, having graduated from a traditional college with a Computer Engineering degree.
Not saying it was a good salary, but not all college graduates start at the ludicrously high salary people keep seeing posted online.
2nd this. Grad degrees provide a substantial boost, but not everyone can afford the debt and opportunity costs associated with a masters. Sadly, most of those that can, are in a better financial situation (family) to begin with.
I think this average takes into account salaries in other states as well, not just CA and NYC (where junior devs do make higher starting salaries). We've hired people fresh out of bootcamps at companies I've worked at in the past and in most cases, we offered them salaries pretty close to that of a recent grad.
My first job in NYC was at a non-profit as a web dev with far more skills than what anyone could learn from a boot camp (I have a comp engr degree) and made substantially less than the posted average. I still a managed to live comfortably in Manhattan.
For people coming in who may be stuck in sub-$60K jobs, $10K to $15K in 10 weeks to be elevated to an a new income bracket doesn't seem unreasonable, when comparing it to the cost of going back to college.
That's not to say bootcamps are not worth it for anyone. There are some really good ones out there that honestly want to help improve peoples lives. The catch is that the students that have the most success are not the ones who come in knowing nothing. The most successful students have spent months (if not years) of dedicated self study. The bootcamp acts as a way to fill in some gaps and provide confidence in the job hunt.