
What to Expect from a Developer “Bootcamp” Program - karlhughes
http://www.karllhughes.com/2014/dev-bootcamp-program/
======
brudgers
_While you can certainly argue that not every code monkey needs to know how a
microprocessor works, there’s a middle-ground somewhere that every software
engineer should know._

The idea that a decent software developer can be created in six months of
education and experience is based on the same notion of professionalism that
underpins the idea that a decent software engineer can be created in six years
of education and experience. The term "engineer" means something in
professional disciplines, put "senior software" in front of it and you may as
well bet on getting a twenty something not a greybeard.

It's as if deciding to enclose a screen porch and paint the bedroom made
someone an architect. The author takes it as a given that these graduates
_are_ engineers. That's how low the industry standard is. It's nuts.

------
neekb
Wrong title. "Nobody can make you a decent ANYTHING in less than six months."
At least job related. You need to make a bunch of mistakes and have a bunch of
"AH HA!" moments when those theories you learned in school or a book actually
make sense.

------
sebilasse
Google Cache:
[https://webcache.googleusercontent.com/search?q=cache:-6M0xy...](https://webcache.googleusercontent.com/search?q=cache:-6M0xysp0nwJ:www.karllhughes.com/2014/dev-
bootcamp-program/+&cd=1&hl=en&ct=clnk)

------
joshdance
Counterpoint: I joined my last company with very little programming
experience. With a great mentor and lots of work I was 'decent' in 6 months. I
worked closely with the other developers and handled one of the big features
of our app by myself.

~~~
delluminatus
It sounds like you've found an awesome learning environment, and I bet in a
year (or whenever, depending on when this happened in your life) you will look
back and see just how limited your knowledge was at that time.

Learning software development is a rabbit-hole that never ends. Anyone can
look back, see their own dumb mistakes, and recognize that even they, with X
years of experience, still didn't fully "get it". I think it's that kind of
feeling which leads people to criticize these development schools.

Of course this isn't unique to software development; it's a feature of every
vocation. But many other vocations do a much better job acknowledging and
addressing the difficulty of attaining expertise, and have a great respect for
experience that seems to be lacking in the startup world.

------
papasmrf
For myself, it will be three years in March 2015 when I first began to code. I
am in my 30s and a lawyer by trade, with a life science background. My own
assessment is that I have picked it up quickly, with good knowledge of PHP and
Python, Javascript, and HTML/CSS.

But I am only just now starting to really understand the big deal about MVC,
OOP, autoloading classes, testing, package management, versioning, etc. I
think these concepts are what separates a coder from a skilled well rounded
developer. As I have gone through the learning process, it took certain
experiences with coding web applications (most of which I never released)
where I could better understand why MVC or OOP was a better way to do things.
My comprehension of those higher level topics came along much more slowly then
did the syntax; and I don't think a 12 week code school can truly allow a
student to grasp those topics (there just isn't enough depth of knowledge
after 12 weeks).

------
mqsiuser
You study 6 years CS, then start your first job, how do they treat you? - like
a beginner,... which has to learn,... "like everything".

"It's product-know-how that counts", but also "a good theoretical foundation"
(for thinking logical, and believe me, it _is_ better for _everyone_ if you
have that). So 6 years of studying + years of experience (for _each_ product),
the more the better.

Unf. you are mentally fittest between 20 and 30. Youngsters may make up with
that, but I don't worry about _my_ future.

It's not that 6 months is too little, it's that nothing is ever enough (and
more is always better).

I guess some young startup guys may disagree and yes, there are Marc
Zuckerbergs, which escape the law.

I don't want to hold you back from trying to escape this law.

~~~
peapicker
"Unf. you are mentally fittest between 20 and 30. " \-- not in my case. My
best work and all my patents have been in my 40s (so far, still there).

~~~
mqsiuser
You are underpinning my statement:

It's that experience (a lot of exposure in the area) is very important.

It doesn't invalidate that when you are young you are mentally fitter.

------
robomartin
It depends on the skill set a student brings into these programs.

If they have a degree on Underwater Basket Weaving, well, unless they just
happen to mentally click with programming, no, they are unlikely to do well.

If, on the other hand, they have a solid ten year career in software
development and just need to get up to speed on, say, iPhone development,
yeah, they are probably going to come out of the course absolutely rocking it.

To put it in what some might consider to be somewhat violent terms: It's the
old garbage-in, garbage-out principle.

------
Binky_Bob
Granny-to-Guru in 12 weeks is clearly unrealistic.

What about a mid-career move from infrastructure/operations with significant
experience with Perl / Shell / etc. programming? Or a COBOL / C++ / Java
developer that's been stuck in corporate-land for the past 20 years? Or a
business analyst that's been pushing excel sheets and access databases around
for years, maybe with some BI tools sprinkled in for fun. There are a ton of
relatively experienced "computer people" facing uncertain times as cloud
environments close down corporate data centers, and outsourcing eliminates
developer jobs.

The current dev environment is bewildering to say the least -- you don't just
learn Javascript -- to be effective you need to learn a ton of other things --
HTML, CSS, Jquery, test-driven-development, grunt, git, various frameworks,
jasmine, node and/or ruby on rails (or equivalent), pair programming, etc.
Each of those leads down its own rabbit-hole of complexity and extra tools to
know.

It seems like these bootcamps, done well and with the right sort of student,
would give a massive 'level-up' into the current dev world. For mid-career
types where there is a need to minimize time away from a paycheck, a 12-16
week program is a good fit.

There are few realistic alternatives:

 __Go back to school for a CS degree, working on it nights, maybe with tuition
re-imbursement from work. -- This is insane -- schools don 't teach the above,
they teach algorithms and specialize in toy projects, not the real world.
Doing it part time while at your day job just adds years to the process
putting you even further behind.

 __Start or contribute to open source projects. This is easier said than done
as it pre-supposes a knowledge of and familiarity with using the above stack
of tools or their equivalents. For the dedicated self-starter with a lot of
determination and energy to stay up at night doing this it could work. People
with kids and other commitments would find it very tough.

I don't think the bootcamps are going to turn a fine-art major with no prior
computer experience into a $100,000+ web developer in 12 weeks. I _do_ think
that it could turn a $90,000+ corporate programmer or infrastructure person
into a $90,000+ web developer, now with a foothold in the world of the "cool
kids" and an escape hatch from the stifling corporate world.

~~~
hkarthik
> It seems like these bootcamps, done well and with the right sort of student,
> would give a massive 'level-up' into the current dev world. For mid-career
> types where there is a need to minimize time away from a paycheck, a 12-16
> week program is a good fit.

I actually think that's an important niche that is being under-served right
now. We often get career Java devs or .NET devs at our Ruby user group here in
Dallas and they want to "break into" Ruby. Most employers won't give them a
shot and they are then stuck in the "need experience to get experience"
treadmill.

I was in the same boat and got lucky in that someone took a chance on me. But
it wasn't a very easy path at all. Having a bootcamp focused on experienced
dev with job placement at the end would have been worth its weight in gold.

------
obviouslygreen
_insert snarky comment about the time it takes to learn to set up a hosting
environment that can survive an HN self-post here_

------
Bahamut
It took me about 1 1/2 years to become good in my sector of development - even
with an ideal environment, there are a lot of thought processes that just take
time to mature. I find that time away from programming can be just as
important as time spent programming in order to digest concepts and workflow.

------
markbnj
Can't get through to the server, but I agree with the title.

------
mundanevoice
Application error on Heroku.

~~~
karmajunkie
As if to underscore the point...

------
squeaky-clean
While I agree that coding boot-camps and all these fast-track programs can't
produce a skilled, well-rounded developer in their own right, I don't think
they're necessarily bad as long as expectations are managed (and the blog
author seems to agree with this, I just want to discuss it a little more).

I think the hardest part of programming learning to "think like a computer,"
which isn't just learning how to use something, but really adapting the way
you think, and takes a while to develop. Something you can't do through a
boot-camp (luckily you can learn learn this in many ways other than
programming, and many people encounter it throughout their lives). Until you
can get past that hump, a lot of programming is spent just learning why the
computer is "choosing" to do what it does, and is really wasted in the context
of learning to build applications. Once that happens though, things get rather
quick, and it's more about handling a lot of breadth, rather than depth. (This
is ignoring more advanced CS concepts, which are a whole different beast than
just making products).

I have been mentoring a friend who wants to learn to build mobile and web
apps. Same situation the author proposes, an English major who realized he
doesn't really like his options. It has been less than a month, but he's
surprisingly good already, better than any of the undergraduate CS students
I've tutored (however, the CS undergrads who write great code don't need
tutoring, heh). We haven't touched web/mobile yet, but we've begun building
programs together. A flappy-bird clone using PyGame for example, that we later
plan to rewrite as an app. I think working so quickly towards making full-
fledged finished products keeps it very fun, and you get to see how ideas work
when combined with other ideas, something universities don't often do outside
of end of the semester projects.

I've been focusing more on teaching him to teach himself, rather than outright
learning languages or frameworks. In 6 months he won't be a rockstar, but I
fully believe he'll be able to make his own projects from scratch, and be able
to jump into any teams projects with a reasonable amount of time to
familiarize himself.

I think what really helps is that he already has a great grasp on concepts in
programming that are so foreign to newbies. I don't know how, maybe all the
experience we have playing pen-and-paper RPGs. It only took me an hour or so
to teach him about classes for example, and he was able to understand the
difference between a class, an instance, static and non-static methods, or
structuring conditional statements. When I tutored, I spent 90% of my time
just trying to drill in these concepts. And if he had needed a ton of time to
fully grasp the difference between references and objects, inheritance, or
even a for loop, he just could not have progressed so quickly, and even if he
did, I feel he would not fully understand what is going on in the code, and
would take it away with an understanding more like taming magic, rather than a
tool and a science.

(long comment, haha. Spent quite a bit of time in the back of a meeting slowly
writing this out, so it may feel fragmented/rambly).

~~~
papasmrf
I just had to respond because I am a somewhat new developer and after a while
I could also tell you what a class was, an instance, static methods, public
methods, private methods, etc. But i'd be darned if I could look at somebody
else's class for doing something and be able to tell you why there was a
static method over here, a private method over there, and a public method
somewhere else. I guess my point is that somebody could abstractly tell you
what those different definitions are, but that is much different than actually
being able to write a class correctly. (at least in my experience.)

