
Bootcamps vs. College (2016) - amerf1
https://triplebyte.com/blog/bootcamps-vs-college
======
learc83
I've worked as a bootcamp instructor, I've hired people from bootcamps, and I
worked as self-taught programmer for years before going back to get my CS
degree.

From my experience, the very top tier bootcamps basically function as an
extended job interview. They select for people who either already have most of
the skills needed, or who possess an extreme natural aptitude. Graduates from
these programs can be effective programmers out of the gate. However, the pool
of people who can pass these programs is extremely limited. The failure of
many top tier bootcamps to scale points to this.

As for graduates from other programs, I place them in 2 buckets. The first is
people who have substantial additional experience--they’ve been programming as
a hobby for years, they learned python to automate work in their old career,
they have a related career or degree etc... These candidates can also be
extremely effective.

The second is candidates who have little to no experience beyond the bootcamp.
These candidates from what I’ve seen are almost never a good fit. They
generally come in below the level of a 2nd year college intern. 12 weeks just
isn't enough time--barring extreme outliers.

The problem is that people who fall into the first set of candidates tend to
be effective with or without bootcamp. My advice is that if you want to be a
programmer, don’t pay thousands of dollars for bootcamp. Either take the time
to go to school and learn the theory, or learn on your own through free or
lower cost materials if you’re happy with CRUD jobs.

There are other ways to level up into more interesting work, but most people
won’t learn the boring parts without external motivation and structure, and a
CS degree is the easiest way to provide that.

~~~
F147H34D
Thanks for the insightful comment. I’ve been considering changing careers in
about 4 years. MS is computer forensics. When I retire from law enforcement
(as a computer forensic examiner) I will be about 45. I can program lightly in
Python and other languages — enough to automate my job. If I want to do
software development is it plausible to teach myself in 4 years? Am I hirable
at 45?

~~~
learc83
>If I want to do software development is it plausible to teach myself in 4
years? Am I hirable at 45?

As always, it depends.

Assuming retire means you’re going to get some kind of pension, you could
definitely be in a nice position to take contract jobs and let the pension
smooth out any income fluctuations. Also if you can start trying to pick up
contract work on the side now, you’d be a very good position in 4 years.

If you want to find a full time, entry level job, that’s doable as well
assuming the economy is doing relatively ok in 4 years.

You could also try to find a programming job where your existing experience
would be relevant so you're not starting out at the bottom. Maybe a
programming job with a company that makes forensic software or just a company
that works with law enforcement in general. Domain expertise is the big
differentiator once you have a few years of programming experience.

------
brogrammernot
Works for TripleByte, doesn’t work for the rest of the companies who do white
boarding interviews.

You don’t learn how to implement various sort algorithms by hand in boot camps
(oh weird, I never had to implement or work with anyone who had to implement
one yet we all had to pass that during whiteboarding).

I’ve hired boot camp grads with success and failure. I’ve also hired CS grads
with success and failure.

The number one quality that determined their success in my opinion was grit
and passion for programming. Programming is always evolving and really hard to
master without dedication, time and so much trial/error that you’re so pissed
off by the 18th time of trying to solve something that they 19th time when you
do solve it the high is so intoxicating you’re ready to do it again on the
next task.

None of that is taught in a classroom regardless of its a boot camp or CS
degree.

~~~
randomacct3847
Actually, you do implement sort algorithms in some bootcamps. Anecdotally have
seen curriculum with merge sort, quick sort, bubble sort...also binary search
and tree traversal (DFS, BFS) and Big O. Especially for the ones where you
don’t pay until you find a job these bootcamps are going to optimize their
curriculum to help you ace a typical engineering interview, hence a chunk of
it will be spent on data structures, algorithms, time/space complexity etc.

------
_hardwaregeek
I could see bootcamps working if they teach the process of learning and fixing
one's own problems. Focusing too much on the actual content is a mistake imo.
Programming is a constantly moving field and a good developer is always
learning and self teaching. I suppose the total immersion and the sink or swim
connotation of bootcamps could force students to learn on their own.

Meanwhile, at least in my case, schools don't appear to teach their students
anything about figuring shit out. Students have to be hand held through a
series of prepackaged projects that don't have any real context or motivation
in the real world. Most importantly, they're never taught that programming is
a _skill_. They don't understand that to get good at programming, they need to
practice. Maybe most of them don't want to become world class programmers. But
even a mediocre soccer player needs to practice dribbling. A CS student who
just takes classes and doesn't write any more code than what is necessary is
setting themselves up for failure, much like a fencer who only takes group
classes and never practices.

------
kevintb
I really dislike the comparisons between boot camps and college, as if they
are substitutes for another. They’re not, and 100% depends on your goal.

If your goal is the fastest track to employment in any programming job, then
web development/CRUD is probably the easiest route to get there, and a
bootcamp is the most economical. However, you’re limited to only frontend web
development or Rails or various js jobs. On the other hand hand, so many
bootcamp grads have had astounding success transitioning from minimum wage
jobs to 100k salaries in 4 months’ time.

A CS degree, on the other hand, is a long-term investment. Done properly, it
sets you up for success for a wide variety of roles, and gives you hard earned
understanding of the big picture that comes with years of studying. The blog
post specifically advises you to hire CS grads (or grads with academic CS
backgrounds) for anything remotely more specialized than javascript, like
databases, etc. but, it involves 3-4 years of full time studying.

These are not substitutes each other: they are dependent on your goals! Each
involves trade offs. Because I’m biased towards academic CS education, I’ll
say this: tech is one the fastest changing industries, and I think it is
crucial to be grounded in the fundamentals, not just for your future
employability, but your overall understanding of CS and where your work fits
in.

------
aphextron
There’s absolutely no comparison to be made between a CS degree and a bootcamp
program. One is vocational, the other almost purely academic. The main
difference really is in mathematical training. There’s a wide gulf between the
skills needed to succeed in CRUD web development, and the ability to succeed
in a four year degree program that requires passing calculus, linear algebra,
discrete math, and differential equations. I’d wager greater than 90% of
working developers without a CS degree could not pass a test in any of these
courses, or even discuss the topics at an intelligible level. If the role you
are hiring for requires these skills, you _need_ a CS or other hard
engineering grad. The problem is that the vast majority of companies _don’t_
need that, yet somehow feel like they are lowering their standards by
accepting that fact.

~~~
randomacct3847
I’d wager 90% of working developers with a CS degree also could not pass a
test in some random mathematical topic they studied X years ago in college
either.

Also, while there are those that go from bartender to developer via bootcamps,
a lot of people who do these camps have technical undergrad degees (other
engineering, math, physics, etc.) and probably took as many math classes for
their major as a typical CS grad.

And let’s be real...most developers, maybe especially at FAANGs, are frankly
overqualified for their day to day job and aren’t doing much more than things
they learned in a CS 102/103 class.

~~~
phillipcarter
> maybe especially at FAANGs

It's hard to say how it is in the large, but at Microsoft I do apply CS
principles fairly regularly, use statistical tools, and think fairly regularly
about different data structures and algorithms. A lot of this is due to
working in performance-constrained environments. If that were not the case,
then I would say the academic side of things would be less prominent.

~~~
RandallBrown
When I was at Microsoft I didn't apply CS principles beyond occasionally
thinking "This function is going to be O(n^2), maybe I should change it. Oh,
we'll never have more than 100 or so items, so it's probably not worth fixing
that."

------
themoat
This seems to fit my experience interviewing/hiring candidates over the last
few years.

There's a certain type of "Bootcamp grad" that seems to fit well with my
teams. Those people who got a degree and then found that they hated the field
they worked in (biology, law, English teachers) have just come in and killed
it for us.

I can't say, exactly, how that compares to CS grads, but I do know that every
fresh Grad we've hired had to be hired on as an intern first to get them up to
speed, while bootcamp grads were able to be productive from day 1.

Just my 2 cents.

------
AndrewKemendo
I've hired both and the major limitations of bootcamp folks come out when you
start doing things that are either:

1\. Very hard, or...

2\. So obscure that you can't find examples of doing it in the past

As an example I'm wrestling with now, I am trying to come up with a way to
describe applications as finite state machines by evaluating their event
streams and then evaluate with PCA across multiple of these state
representations. That's something that doesn't really come out of anything but
theoretical computer science.

~~~
anonytrary
It's not limited to theoretical computer science either. A math grad with
basic programming knowledge could easily help with something like that.

~~~
jussij
Or Electrical Engineering.

~~~
skwb
Or bioinformatics. Or bioengineering.

------
TP4Cornholio
My experience with bootcamp graduates has been that they struggle with any non
rudimentary problems and lack knowledge of any of the fundamentals required to
do non CRUD applications.

~~~
scarface74
My experience is the same with junior CS grads....

------
manfredo
A lot of the bootcamp candidates I've met can code just fine, but often lack a
deeper understanding of software development. Often do just fine on interviews
that test the application of a specific skill, but struggle to answer more
free-form questions.

One of my favorite interview questions is "how would you design a text
editor?" Bootcamp candidates and recent grad candidates often struggle a bit.
Recent grad candidates often jump into a straightforward solution like
breaking characters into contiguous arrays by line. More experienced
candidates take more effort to put the task into context. Is this a text
editor for the web? Is it more geared towards editing plain text? Can we
assume relatively frequent line breaks? The best candidates think of
improvements on their own. One candidate suggested automatic saves every 10-15
seconds, and could explain the backend changes necessary to make it such that
the saved copy was retrieved when the user navigated back to the page. Others
talked about locality and caching when talking about optimization. This sort
of question is more like a foundation, and the interviewer is looking to see
what the candidate is building on top of that foundation.

Granted, this isn't to say that bootcamp candidates aren't good. Not being
able to effectively answer those sorts of interview questions signals that the
candidate is better fit for a junior role - which bootcamp candidates and new
grads are probably looking for anyway. Realistically, probably only 20% of my
university time was spent learning how to develop software - maybe 30-35% if
we include club and personal projects and not just class assignments. A decent
40% on topics wholly unrelated to software development, and 40% was spent on
more academic areas of tech not really related to writing code. The latter is
useful and has given me a deeper understanding of a lot of topics (ML,
Operating systems, compilers, network infrastructure) but probably doesn't add
nearly as much value to my employer as coding ability. I can see how a
bootcamp could teach someone to code as well as a new grad in 3-6 months.

------
noego
Frankly, the more I reflect on my University and High School education, the
more I think it was poorly thought out. I've spent an enormous amount of time
learning advanced Math, Sciences, or other such topics that are utterly
irrelevant to my practical career. And I'm saying this as someone who's
successful enough to be making mid-6-figures.

The only useful skill I've picked up from all those classes, is grit and hard
work. I've learnt how to put my head down, and grind my way to success. Useful
skills to be sure, but I could have learnt that by doing literally anything.
"Build a Facebook clone" would have taught me grit just as well, while also
teaching me practical skills relevant to my career.

I see a lot of posturing about how college education isn't meant to be
"vocational" and should teach you how to think, but I don't buy it. The free
time I've spent volunteering at my college newspaper, and reading/writing
philosophy, taught me far more critical thinking skills than the majority of
college classes that I've taken.

Looking back, 80% of the value that I got from my college classes, came from
the 20% of courses that are "vocational" and relevant to my career. If not for
the resume-padding benefits of going to college, I would have been better off
going to a elite bootcamp and then spending another 6 months self-teaching
myself anything that the bootcamp didn't.

------
BucketSort
Most development work doesn't require CS knowledge at all, just programming
ability. Open source libraries are also reducing the need for rolling your own
implementations. Having me prove things about Turing machines to get a job
making websites is almost like a slap in the face. I welcome boot camps for
filling these types of roles because it's ridiculous to have someone so
educated doing such rudimentary work.

------
aboutruby
I've found HackerRank to be great at acing the algorithmic/data structures
questions during interviews. You don't even need to finish Cracking the Coding
Interview (which is incredibly hard to do with ruby as it's mostly performance
based).

------
itsdrewmiller
In my experience boot camp grads are way more likely to wash out on basic
programming problems (not particularly algorithmic) than CS grads. I think the
"has already passed the triplebyte quiz" factor is really doing a lot of work
for this article.

------
ryanjodonnell
Prob the best use of time if you’re trying to optimize for a career as a
developer would be to go study CS for 2 years at a top school, then drop out
and do a bootcamp for 3 months. Best of both worlds!

------
dccoolgai
There are exceptions abounding to the "rule", per se, but IME the biggest
problem with bootcamp/self-taught engineers is that they tend to not recognize
when they are in the lane of an "already-solved problem" from the CS space and
try to address it with their own overengineered approach. Not the case with
everyone, of course- the guy I report to now was self-taught and knows as much
or more from CS as I do... but it's still a general trend I've noticed.

------
discordance
Assuming University is too expensive and bootcamps are too short or
vocational, where is the best education found these days?

MOOCs are great but lack the physical contact which is so important.

~~~
gumby
I’m a fan of boot camp education not a fan of most boot camps. Not only do the
graduates from good ones learn skills, but they are typically the kind of
students who want to learn and then get something done. I see this in
community college students too: little screwing around, lot of determination.

Unfortunately most bootcamos make outrageous claims as to the job
opportunities post completion, and also the quality is uneven. Both are
serious problems.

------
werber
I'd really like to see a breakdown by bootcamp program.

------
hw
I've had friends who 'graduated' from a bootcamp and ended up with jobs at
Google, Uber, Facebook, etc. The quickest way to a good salary job (in the Bay
Area at least) is just to take a 3-6month coding bootcamp and apply for a job
at the big tech companies, who are really desperate in growing their workforce
and hiring.

------
erikpukinskis
Don't forget everyone, people are just like the average of those in their
demographic! It's good to talk about huge groups of people as having common
properties. It's a convenient shortcut that helps you understand people
faster.

------
abrinsmead
This article is from 2016.

------
purplezooey
I think community colleges are the dark horse of all this. Same (or better)
education as at a four year for the first two years at a fraction of the cost.
No need to go to a boot camp.

------
dang
Discussed at the time:
[https://news.ycombinator.com/item?id=11731564](https://news.ycombinator.com/item?id=11731564).

------
caprese
> If you want to do hard algorithmic or low-level programming, you’re still
> better served by a traditional CS eduction.

or a bootcamp that focuses on these particular skills.

Universities imagine they are for people pursuing higher knowledge and not a
job, and now this can be true again. Time to divorce universities from the
corporate sector, there are enough programs to build now that enough tech
companies don't gatekeep this way. On the culture side, technical leaders who
hire also don't care because there is stuff to build.

~~~
munchbunny
Bootcamps will not get you to the same point of comfort with low level stuff
because it requires a pretty substantial breadth of accumulated academic study
plus hands on practice, and there aren't enough low level programming jobs
that I'd ever recommend someone spend time on that in a bootcamp.

If low level is really where you want to go, you can get comfortable with
typical frontend and back end programming, and then as you become more
comfortable, it's a short hop to GPU stuff, C/C++, and taking the academic
stuff in MOOC's.

As an example, I just spent several days last week chasing a bug in C# code
all the way down into the native Windows stack inside optimized compiled C and
C++ code. While I do not expect a boot camp grad to be able to do it, I think
they're perfectly capable of picking it up with time. But to do what I was
doing, you had to have spent substantial time working with C/C++ debugging and
be comfortable staring at memory dumps.

That's just not a good ROI on bootcamp time because most jobs are app
development, not troubleshooting low level stacks. But since 4 year programs
teach low level stuff, it gives those grades more career flexibility.

~~~
caprese
sounds like an unfulfilled niche to me.

existing 6 month boot camps "can't" do it since they are just recruiters that
create the pipeline instead of making excuses about it, 4 year university
still probably not the most optimal either.

~~~
munchbunny
I think MOOC's fill that niche.

In some ways, 4-year university is actually the ideal place, because it allows
you to to spend four years traversing a conceptual dependency graph in
parallel without making it your life. Assuming you're not just partying it
away, you're getting a bunch of other valuable skills, personal growth,
network, etc. out of those 4 years.

I think MOOC's are the cheaper option. Bootcamps, even at 6 months, have an
issue that it's really not enough time to cover basic algorithms, basic
systems programming, basic circuit design, linear algebra and graph theory,
advanced algorithms, then finally specialized topics. It's just too much and
too subtle to blitz through. But MOOC's don't have that limitation.

