
What I Learned from Researching Coding Bootcamps - vyrotek
https://medium.com/bits-and-behavior/what-i-learned-from-researching-coding-bootcamps-f594c15bd9e0
======
soneca
Good article (yet to read the paper). I believe learning of software
development is a glance at the future of education. Diverse paths for diverse
people. A myriad of options: college, bootcamps, internet; free, cheap,
expensive; lectures videos, tutorials, documentation, blog posts, coding in
the browser; teachers, tutors, colleagues, coworkers; templates, boilerplates,
open source.

I think all of it is wonderful. Knowledge about software development is much
more accessible than, eg, architecture. And much more aknowledged without a
degree.

But, with the myriad of paths, come more risks of one choosing the wrong path,
both from honest mistakes or being mislead by dishonest people. And these
mistakes can be very costly.

I have a hunch that sometime in the future almost all knowledge will be able
to be learned like this. It is a good thing to study the advantages and
disadvantages of this environment.

~~~
partycoder
The problem with self-guided learning are knowledge gaps.

When you are learning on your own you will be biased towards things that
interest you more. But the boring stuff is as important in the real world.

You can interview a candidate that can impress you with fairly advanced
concepts described in depth.

But you may feel disappointed if probing for gaps... Sometimes having gaps in
certain concepts come with risks.

A simple example: If someone does not know how floating point numbers work
(e.g: default number type in JS) for instance, they may want to use them for
finance with disastrous results.

~~~
alexashka
I'd rather someone have theory gaps, than toolchain gaps where the person
googles how to do every other feature asked of them and ends up copy-pasting
from stack-overflow in the interest of time.

If a project calls for knowledge in theory - hire one person who knows that
aspect, and can either handle it, or teach it to others.

The rest should be people who know their craft. Finding those is hard enough.

~~~
gaius
Too much theory and not enough practice is obviously a problem, but not having
a solid mental model of the computation you want to do mapping to the
underlying is far worse, or not knowing that want you want is a solved problem
and trying to hack up your own rather than using it.

Who would you rather hire, someone who knows what a logistic regression is but
has to look up the API calls, or someone who doesn't and tries to write their
own classifier from scratch, but doesn't need to look up any syntax?

~~~
watwut
That question can be answered only if I know what position you are trying to
fill. Some jobs are more suitable for one kind then others.

I don't mind new hire to not know API either way - senior programmers should
be used to working with APIs they don't know. Tech changes constantly.

------
partycoder
I worked with a large group of a local graduates from a well-known coding
camp. The results were horrible.

They would submit a lot of pull requests, but upon review it became very
apparent that documentation was not being consulted resulting in unnecessarily
hacky solutions. The reason: programming by trial and error.

In the face of that, the only thing I could do is: give them the benefit of
the doubt by asking them to walk me through their problem solving approach.
This insulted them, because there was no problem and solving approach, just
bruteforcing code with live reload until the feature worked.

Unfortunately, sometimes the feature did not actually work, or would not
handle edge or error conditions which caused the program to be unstable.
Sometimes to the point of causing a live incident.

Since coding camp graduates graduate very frequently and because of referral
bonuses, they were a majority in our team. They used their majority to deny
code reviews (not allowing people to mark their tasks as finished), and took
turns to pull off microagressions in a round robin manner so nobody is
accountable enough to be retaliated against.

In the end, these people know they will not prevail through technical
excellence but rather by pumping as much code as possible and by playing
dirty: refer a lot of friends, become a majority, avoid situations where a
relative rank can be established and bully any opposition until they quit.

~~~
kemiller2002
I would say that although your situation is probably not unique, not all
people from coding boot camps are like that. There are people who believe that
an 8 week course will teach them all they need to learn, but this is true of
all education, and I have seen similar results from people with 4 year C.S.
degrees as well. Do they need to learn more, absolutely, but there are a
number of students who understand that this is just the start of their
journey.

Like anything, there is no absolute, and I like to evaluate each one on a case
by case basis. Just because someone can't spend the time and money to go back
and get another degree doesn't mean that person won't turn out to be a great
developer with a little bit of practice and help.

~~~
partycoder
If you are in an entry level software engineering job after having spent
little time and resources, you have very little to lose by behaving in this
way.

It's either that or the alternative: working harder than everyone else,
learning on your own time, try to push your career forward while completing
low risk tasks.

------
pulpwave
I used to teach front-end development at a bootcamp several months ago. What
once was a great opportunity to share my 15 years of experience with various
startups and fortune 500 tech companies ended up being a nightmare with
management.

First and formeost, I liked most of my students. They came from all kinds such
as: Background Actors, wives of programmers, students, military veterans,
teachers, and a hodgepodge of characters. They were eager to learn a step-by-
step procedure of HTML, CSS, and Javascript Fundamentals with a bit of web
design elements.

What struck me as odd was the President/Founder of the bootcamp first hired me
to do my job and observe the videos of what their past instructor did. So I
did and found out he was too aggressive in his approach to teaching his
students. He was talking too fast and went off in some awful tangents that
wasn't on the itinerary. I told the founder, my boss at the time, about what
changes I could do to make it less aggressive and with a flowable and
presentable approach to the fundamentals of front-end development and he
agreed.

In my first five days, things went well. Then the boss wanted me to stick with
the previous itinerary while forcefeeding javascript trends in one week. It
wasn't enough to teach them basic syntaxes, array methods, loops, and other
things I learned in 1 year of CS studies (I finished my undergrad in
Economics). He wanted me to feed AJAX, jQuery, Angular, and APIs with
javascript in one week. I hesitated at first, but he insisted as his "board of
directors" feel this would give my students a reason to keep buying more
advanced courses in the school I don't want to give out.

I find out the real reasons for my services to my students is to not just give
them a new career perspective, but to also have the boss read the idea
proposals his students have as startup ideas and he would be the bridge to
their funding. Except, he's the end of the bridge as an angel investor looking
to own a huge chunk of their startup property before he prepares his elevator
speeches to real angel investors. An another thing is he's also aiming
veterans for their GI bills to be spent at his coding school.

I left after a month. I felt dirty and icky just looking back at it.

~~~
austenallred
The incentives for the bootcamp model are just so completely broken. You suck
in people with promises of a career, have them pay $10k each, and if they
don't get a job it's somehow _their_ fault. It's really hard for word of mouth
and reputation to kill a bootcamp because the demand outstrips supply right
now. You could really suck, buy users with advertising, and make a killing for
a looooong time.

I truly hope the future of education is something in which the incentives of
the school are aligned with the students, and if the student fails the school
doesn't get paid.

<shameless plug> We've been trying to do that at
[https://lambdaschool.com](https://lambdaschool.com). We're a 6 month CS or
Machine Learning/AI education, and instead of students paying up front we give
them an education for free and take a portion of future earnings if they get a
job in their field that pays >$50k/yr. If they don't get a job in their field
it's 100% free.</shameless plug>

~~~
katpas
At the course I did the model was the education is completely free, if you
then get a job afterwards you're expected to let the bootcamp try to get a
recruiter fee from the company that hires you.

Or you stick around, freelance out the space on the projects they help you
find and then give them a 10% contribution of those earnings and also teach
the next cohort how to code.

Seemed to work pretty well.

~~~
austenallred
That model works as well, but then the school is disincentivized from getting
you work at most companies that don't pay a recruiting fee. If we get a
recruiting fee we deduct that from the total owed.

------
twoshoes
Companies here value skills in specific programming languages/tech stacks over
skills in core Computer Science. They are hiring bootcamp graduates (who are
overall weaker), over stronger applicants, just because the bootcamp graduate
will hit the ground running quicker.

It makes learning Computer Science in university less valuable, since
university graduates lack knowledge in specific programming languages/tech
stacks. It's like saying, "You know all that stuff you learned about memory
management, virtual memory, I/O subsystems, CPU schedulers and so on? Yeah
that doesn't matter if you don't know Angular X.0"

Does anyone else see a problem with this?

~~~
watwut
I see a bit of problem with it too.

However, someone who learned "about memory management, virtual memory, I/O
subsystems, CPU schedulers" should have easy time to get up to speed in same
stack as bootcamp graduate. Bootcamp graduates have to learn basic concepts
during bootcamp (that computer follows instructions, how conditions and loops
work, how to debug systematically, how to split task to smaller ones, etc). CS
graduate shold match them in short time.

~~~
sethrin
There are good and bad code schools, but knowing about compiler design and
binary trees is probably not going to help you that much with your web monkey
job. I think you and many others drastically overestimate the value of the CS
degree, and you certainly don't appreciate the difficulty of being able to
learn several complex web stacks in a few months starting from zero. The pace
set is brutal if you already know the languages.

CS grads should ideally know nothing about the practice of programming.
Dijkstra never wrote any code except with a fountain pen. A CS course should
give you his skillset: being able to analyze programs in an academic sense.
This is assumed to be representative of job performance by people who have no
other measure. At the very least it should not be expected that it takes less
time for the CS grad to pick up the bootcamper's skillset than it took for
that person to acquire it. Most likely it will take far longer unless you're
focusing on resume-driven development. The reality is that CS courses aren't
likely to give you much of an edge in a coding bootcamp, let alone the
workplace. In the long run there may be an advantage to the CS degree if the
bootcamper can't pick up the relevant bits on the job, but otherwise the real
difference is that you can expect the bootcamp grad to be productive
immediately.

~~~
watwut
I strongly disagree with "CS grads should ideally know nothing about the
practice of programming." and it does not even describe real life CS grads.
Not knowing theory is a problem, knowing also practice is not a problem.

If you was able to learn compilers and implemented one ( as most of those
courses require) then you not just have aptitude, but already can read code,
can debug, learned to split code to smaller chunks developed etc. In practice,
all CS already encountered databases, sql, at least one Web framework, did
projects etc.

Web stacks are not that complex and complex parts repeat between frameworks.
They seem complex if they are first thing you learn.

~~~
sethrin
Condescending, incoherent, and wrong. If you think that CS is about how
computers work in practice you should take that up with Dijkstra and Knuth.
It's an absurd position. If you think that 'can read code, can debug' is the
benefit of a university education then what about that takes four years to
teach?

I'm a self-taught programmer. I talked my way into my first coding job with no
experience and learned as I went. For the theory side of things I went with
MIT and Stanford's online coursework, and the relevant papers when appropriate
(e.g Turing 1936, Shannon 1948, McCarthy 1960). These days I'm getting into
Haskell and J -- I hate being outgolfed by the array languages. Recently I
audited a couple courses for a local coding academy. At the coding school, the
default expectation is that you will be working with a framework that you have
no prior knowledge of, possibly in an entirely new language, and expected to
complete three to five projects per day, with specifications, unit and
integration tests, and a meaningful commit history, five days per week for
twenty-odd weeks. Most people require significant amounts of study time
outside of class. This is not descriptive of CS coursework. It's almost like
there are two related-but-distinct bodies of knowledge are being pursued in
different ways!

If you have the idea that bootcamps are easy then I definitely invite you to
try one sometime. Discard the idea that what the university and bootcamp are
offering are somehow equal. A CS education may or may not be a better
preparation for a career in programming, but it's not good job training, and
that's on purpose. If things were otherwise, coding schools would not need to
exist, would they?

A CS degree is a loosely-correlated proxy for being able to code. It happens
to be very easily measured. This leads small minds to believe that it is a
good proxy, especially if they happen to have CS degrees. I'm sure the
rationalizations and condescension come naturally.

------
lr4444lr
_My kitchen is a disaster. My whole house is just a mess. Anything that is not
directly related to [the bootcamp] or to keeping me up and functioning, just
goes by the wayside. […] I don’t remember the last time I had a shower._

Hmm. Maybe the bootcamps _do_ give you a more realistic preparation than I had
previously thought.

------
paradite
> I couldn’t work because I really needed to do job searching full time.

This is the part that don't quite understand. To me, the period when you
search for jobs is exactly when you should be working as freelancer or working
on side projects.

Working helps you get into the coding zone so that you are more prepared for
coding sessions during interviews.

Working helps to add your resume and things to talk about when the interviewer
asks "what have you been doing recently?".

Working should also be the natural next step to do after completing a bootcamp
to put all the knowledge into practice.

I can't think of why it would need a full-time commitment to send CVs,
practice algorithms and attend interviews.

~~~
gcatalfamo
Job search is a full time activity if done right. It doesn't leave you time to
do freelancing.

~~~
rukuu001
You're corroborating a quote from the article, which I don't think deserves
downvotes.

Would you like to expand on your point? It might be illuminating for people
already established in the industry.

~~~
cheapsteak
Different guy here responding

If you have a job, then you can only interview on lunch breaks or after work.
If you have a shitty job then you have incredibly short lunch breaks and get
off work late. You'll miss a lot of interview opportunities.

You also might not have time to do the various different screener exercises
that many companies require of junior developers to make sure you actually
know how to do something more complicated than fizzbuzz

If you've got two juniors of similar skill levels, and one of them needs this
job significantly more, that may also weigh in your hiring decision

~~~
pacaro
Thanks for the answer.

For myself, it is easy to forget this reality. Once your career is
bootstrapped the story changes so much. I've changed employers only 4 times in
23 years, one of those was an acquisition, and the other three times I only
interviewed with four companies (total, not each job change). Since getting my
first job, I've never _not_ gotten the phone screen/onsite interview/job
offer.

Ok that all sounds very braggadocio. Sorry.

But when I consider my first job search: over a period of nine months I sent
out over a hundred applications, received several hundred rejections (some
companies like to reject you once for each internal department that doesn't
like you), and finally scraped a handful of interviews, some mealy mouthed
"maybe if" not-quite-offers, and finally a real job offer. I also had the
unbelievable arrogance to walk out of an interview because they used a 4GL and
I wanted a _real_ programming job (I was polite about it, I waited until lunch
and just said that I didn't feel that I would be a good fit)

Hone your craft, it gets better.

~~~
cheapsteak
I'm actually on the other end of this, have had to design a few of those
screener questions myself.

They're a pain but they do help with screening out those who can talk the talk
but end up being overly confident spaghetti machines.

I know I'm missing out on people who are good but don't have time to prove it
to me, but the cost of a bad hire is much more costly than missing out on a
good one, and there are so many people to sort through

------
scarface74
I've never gotten a good answer on another scenario: what if someone already
has software development experience but no experience in a particular stack
and they take a boot camp class to learn? Are they marketable if they know how
to interview well?

For instance: a .Net full stack developer who takes a boot camp to learn how
to develop for Android or iOS.

~~~
1_800_UNICORN
One of my developers was a CS grad who took a bootcamp to learn Ruby/Rails.
She parlayed that into a $100k job out of the gate doing Ruby/Rails consulting
work, and has been one of our top developers ever since. I've talked to her
about her bootcamp experience, the main pain points for her were:

\- Unsure about whether the cost and time spent were actually worthwhile, or
whether self-learning might have been a better option \- Bootcamps are not
optimized for those who come in with basic programming skills

That second point was also exposed by a close friend of mine who decided to
abandon her career in the aerospace/defense industry (she was an aerospace
engineer) and do a bootcamp. She was top of our class in college, and she had
done a fair amount of basic programming in tools like Matlab. She parlayed her
bootcamp experience into a great job as well, but she often found that she was
way ahead of the rest of the class. Luckily I've recruited from all of the
bootcamps in my town, so I recommended a very good bootcamp with great
instructors to her, and her instructors worked to put together a shadow
curriculum of work to do while the rest of the class was still working through
the main curriculum.

So, YMMV. If you can afford the cost of the bootcamp, it's a proven method to
learn new skills and turn that into a new job, but the more programming
experience you have, the more you'll find yourself far ahead of the rest of
the class.

------
AndyMcConachie
But do bootcamps train people to program well?

The metrics they measure against are money and job based. Which gives me the
impression that we either don't know how to determine if people know how to
program, or that no one really cares. We need some kind of standardized test
or similar. I know of the Advanced Placement CS exam[1], but we need something
more practical and not focused on a particular language.

[1] [https://apcentral.collegeboard.org/courses/ap-computer-
scien...](https://apcentral.collegeboard.org/courses/ap-computer-
science-a/exam#2016)

~~~
sethrin
Nothing trains people to program well. Colleges teach fundamentals like lambda
calculus, but fail to teach practical skills. Bootcamps have the opposite
problem, and the actual industry seems to assume that trained developers
spring up out of the ground like sowing dragon's teeth.

The requirement of 'not focused on a particular language' is actually
something that I would be forced to disagree with. That leads to things like
HAGGIS[0].

Generally we can probably say that determining whether people can program is
difficult at best, but HackerRank[1] seems to have a good model. Problems are
given in English with examples of input and output, and the testee may select
from some five dozen supported languages. Programs use standard inputs and
outputs.

Alternately I would support the use of a standard language. People do okay
with computers even though they're not _really_ Turing machines; it would not
be harmful to concede conceptual purity to satisfy some real-world constraint.
Python or Ruby would probably be fine. In a bootcamp environment I'm afraid it
would have to be JavaScript.

Either way, the part about "more practical" conflicts with the "not focused on
a particular language" part, and the right answer is whatever is furthest from
HAGGIS.

[0]
[https://en.wikipedia.org/wiki/HAGGIS](https://en.wikipedia.org/wiki/HAGGIS)
[1] [https://www.hackerrank.com](https://www.hackerrank.com)

~~~
AndyMcConachie
I didn't know abotu HAGGIS, thanks for that link.

I vaguely remember that in the 1990's the US Advanced Placement test for CS
was done in Pascal. The point has to be a focus on fundamentals. There are
fundamental data structures and algorithms that any programmer is useless if
they don't know, and I doubt people are learning these at bootcamps in 6
months.

> Colleges teach fundamentals like lambda calculus, but fail to teach
> practical skills.

College CS programs in the USA are focusing more and more on appeasing
recruiters and HR folk with keywords than in teaching CS fundamentals. And I
think that's a tragedy.

~~~
sethrin
> College CS programs in the USA are focusing more and more on appeasing
> recruiters and HR folk with keywords than in teaching CS fundamentals. And I
> think that's a tragedy.

If true, I am sure we would agree on that score.

> There are fundamental data structures and algorithms that any programmer is
> useless if they don't know, and I doubt people are learning these at
> bootcamps in 6 months.

I believe that what gets taught at bootcamps is how to tackle new things, and
professional standards of code quality. More learning how to learn. I do
dispute the idea of "any programmer is useless if they don't know X" for any
X. It's too strongly worded, for one thing. If you qualify 'programmer' as
someone with 4-6 languages under their belt then yes, if that person doesn't
know their algorithms they're probably going to be less productive -- writing
BASIC in every language. That is unfortunately far from useless. But the
subset of coding tasks you'd assign to junior developers are probably not
going to inconvenience you much if you don't know how to do an A* search.

------
udioron
Interesting quote:

 _> Also, we noticed that at least four students happened to be married to
programmers, and at least seven others had parents, siblings or other
important people in their social circle who were programmers._

------
tmacro
On the flip side of of bootcamps, are orgs like 42.us org, which aside from
being a nonprofit, is also completely free! Much emphasis is placed on code
review by your fellow students, with it being required that your projects must
be graded by them. They just opened a new campus in Fremont that even inclides
a dorm room for free for about 11 months. Disclaimer, I attend 42 at the
Fremont campus

------
paulpauper
_A year and a half ago, my wife, Kristen, was an English teacher. Now she is a
full-time software engineer at Microsoft. I followed her journey with
excitement as she went from writing her first “Hello World” program, then her
first full stack web app, to getting an apprenticeship and finally a full time
job._

Damn that is impressive

~~~
Fifer82
Is it a case of who you know?

~~~
kylethayer
It's not in the sense that I didn't have any connections and she got in on her
own. It is in the sense that I have a CS degree and have worked in industry. I
helped her on occasion get past a bad explanation in a tutorial and I could
talk her through how technical interviews work.

~~~
wikibob
I think a post from you and her on what she did during that year between
deciding to enter tech and getting the job at Microsoft would be incredibly
interesting and helpful.

Particularly, what resources did she use? More top down things (Udacity,
FreeCodeCamp, jumping into building projects), or bottom up (online computer
science classes, Berkeley CS61, SICP, etc).

Thanks!

~~~
kylethayer
The article has a link to her blog in that first paragraph (though links on
Medium don't stand out that much). FreeCodeCamp was one of a number of things
she did.

~~~
whb07
I read both your posts and her series of blog posts which where interesting to
follow along. It wasn't clear to the reader how it is that she got past the HR
screening for Microsoft as a non-cs graduate. I'm starting to believe that
maybe she made a good impression by doing that class under that MS engineer
who then made her students interview with actual Microsoft employees?

~~~
kylethayer
She has a new blog post, which may answer this more.

------
jaclaz
With all due respect for the Author (and I don't doubt in any way that his
results are correct) I am surprised that a research with 26 participants can
lead to _anything_ , even if the Author himself specifies that in the
"Limitations" of the paper:

>Our research focused on a small sample of students in coding bootcamps in one
part of only one country. Other students may have had different experiences,
especially in other bootcamps, in other places, and in other times.
Additionally, while our stratified snowball sampling provided a range of
experiences, we can make few claims about the commonality of experiences or
causality.

The sample is IMHO simply too small to give to the outcome any more relevance
than anecdotal data.

~~~
kylethayer
I don't have too much time to reply, but this is something I didn’t know
before starting grad school, so I thought I’d write briefly.

As a qualitative research project, the goal was not to find out how many
students have which outcomes or experience. The goal was to find a range of
experiences and how those experiences are viewed by students. For a
qualitative project, 26 is actually a large sample and I intentionally sought
a range of demographics, bootcamp stages and outcomes to capture a large range
of viewpoints. The goal here is depth on a few people rather than breadth
across all bootcamps everywhere. I hope someone does a proper quantitative
study as well, finding the size of groups and correlations between factors and
success. I chose qualitative methods because I wanted to discover viewpoints,
which is something quantitative research is not well suited for.

I believe my research demonstrated the existence of several groups and
viewpoints. For example, some students successfully change careers and I found
what it meant for them, while others struggled and I found what it meant for
them. Similarly, I found that some people took a year or more to change
careers, so I can say that this is the case for some people. I can't say how
big these groups are, just that they exist. Whenever I cite numbers (such as
at least four students married to programmers), that is not intended to show
how many students are married to programmers, but to suggest future
researchers, bootcamps, and students might want to consider it and look into
this more.

~~~
jaclaz
>I believe my research demonstrated the existence of several groups and
viewpoints.

I am not in anyway contending that, all I was noting was that your
demostration (of what I would have assumed to be self-evident "there exist
several groups and different viewpoints") is backed by so little data (and as
written on the paper "a small sample of students in coding bootcamps in one
part of only one country") that the title "What I Learned From Researching
Coding Bootcamps", swiftly followed by a graph with "big numbers" such as
"Graduation rates of coding bootcamps compared to Computer and Information
Science degrees in the US. " seemed to me like a "quantitative" study. And
notes like "Also, we noticed that at least four students happened to be
married to programmers, and at least seven others had parents, siblings or
other important people in their social circle who were programmers." do seem
like a statistical approach.

~~~
kylethayer
I definitely see how the graph with numbers at the top and numbers mentioned
inside the paper could be misleading. I hope I made it clear enough in the
post and paper what the limitations are that people don't misinterpret my
findings even if they may be disappointing in my methods and their limits.

------
mettamage
For people who are interested in a story (technically anecdata, I know, but I
can't resist to chip in), here's mine.

I have taught a coding bootcamp 2 times now. The selection/recruitment of
students -- not done by me -- was fairly loose in some cases. The only thing
the bootcamp selection was strict on was that people completed their
undergraduate degree (which is financially easier to do in Europe).

__Succesful Students__

What I noticed is that there are people who will be successful. These people
somehow have a strong background in logical thinking. It can be by doing
predicate logic in philosophy courses, being data oriented from your biology
studies or even being hardcore at knitting [1].

Another thing I've noticed is that they learn quick and won't ask a lot of
questions. They will use a search engine and will only come to you with
difficult questions. They know how they learn quite well -- at the very least.

The final thing I've noticed is their determination. Some people come to a
coding bootcamp with the expectation of "fix me, I need a job in this
industry." The most successful students don't take anything for granted and
know that they need to learn everything they can get their hands on.

__Unsuccessful Students__

What I noticed is with students who aren't successful is that they don't think
logical -- their attention/focus does not allow it unfortunately. They may or
may not ask a lot of questions. And they will completely fail the bootcamp if
they don't ask fellow students for help. Also interesting is that they did not
learn the terms or basics well enough.

In one of my groups I've noticed that one of my best students was coaching one
of the least successful students. It was intensive, and the explanations and
questions were sharp. Yet, by my surprise, it didn't do much. At the end of
the bootcamp the student was still one of the least successful students. It
makes me believe that not everyone can do a coding bootcamp, since the right
mindset is required to start one. Teachers can only help you when you're open
enough to receive the knowledge. I don't know to what extent that idea is
true, but I want to find out.

__Unsuccessful Students Becoming Successful Students__

I have seen not so successful students become quite successful. They had an
insane amount of grit and understood how they needed to learn the material.
Compared to their other unsuccessful counter parts (in the beginning at
least), these students are more structured and disciplined.

__When To Take A Bootcamp__

Even for not-so successful students it can be a great tool, provided they
self-teach 1 to 2 months after that. However, unfortunately, it is not for
everyone. If you don't think in a logical fashion, learn fast then at the very
least you need to make that up in determination -- or in time after the
bootcamp. I feel a bootcamp is as tough as nails if a student only learned
bullet points from presentation slides during their academic years.
Programming is more akin to learning a music instrument (i.e. it takes
practice), and not everyone has experience learning that way.

[1] (following knitting instructions is very algorithmic -- it's a whole new
world if you've never seen it. Here is an example of a pattern:
[http://vintagecraftsandmore.com/wp-
content/uploads/2012/07/V...](http://vintagecraftsandmore.com/wp-
content/uploads/2012/07/Vintage-Crafts-and-More-Counterpane-Knitting-Pattern-
Dahlia-Design-Instructions-1.jpg)

