

Learn to Code in 3 Months—or Less - MMcCreery
http://www.thedailymuse.com/tech/learn-to-code-in-3-months-or-less/

======
babarock
This should be rebranded "Learn to produce Average Code in 3 months or how to
make the real programmers on your team miserable".

I mean seriously, it's one thing to have some cute blog summarize trendy
tutorials in one place, but to have it appear on the front page of HN is
disappointing to say the least. I honestly expected to open the comment and
see people bashing this.

In 3 months, with serious dedication (assuming no background in science), you
will at best be able to run a CRUD-app prototype on your laptop, you have no
feel of "real world" problem, let alone do more "serious" (as in go beyond
generating a couple of forms with your web framework) programming. (Yay! you
learned to type in ... a Unix command!)

The crazy thing is that I thought this was already settled 15 years ago, when
Amazon started selling books a la "teach yourself programming in 2 hours (and
be insanely rich for the rest of your life!)".

Don't trust me, I'm a young old-fart. Take this guy's word instead. I bet HE
knows a thing or two about programming. <http://norvig.com/21-days.html>

~~~
oskarth
I don't understand this attitude. Would you feel the same way if someone put
up an ad saying "learn to drive in 3 months"?

A couple of years back I went to one of those "driving camps". It was enough
to land me a driver's license in Sweden, which has comparatively high
standards. Did I become race driver? No. A professional driver then? No. Do I
know all the parts of my engine? No. I can drive my car from point A to B
relatively safely and I know how to check the oil, but that's pretty much it.

You have to start somewhere. A lot of people aren't getting exposed to
programming in a useful way - compared to say, driving, counting, reading and
writing - and this is a good way of starting out. What's the problem with
that? If you are starting a delivery business, perhaps it would be useful if
you delivered the packages yourself rather than hiring a professional truck
driver.

As for the reason of this being on the front page of HN: One thing to keep in
mind is the fact that it, along with a gazillion other articles on the same
subject, represents a change in availability of education in our industry.
That and link-bait for the Zuckerbergians.

~~~
babarock
Because filling the road with half-accomplished drivers is a pain in the
derriere. The average driver is already annoyed and tense on the road, I can
only imagine professional drivers get very frustrated by poor driving when
they're outside the tracks. (On a side note, driving is much more vital than
programming, so the analogy stops here. You _should_ have the right to drive,
even at a non-professional level. Can the same be said of programming?)

Just like less-than-average drivers will annoy the pros, the less-than-average
programmer will limit the field. If you look at my original comment, I clearly
mentioned: "How to make the real programmer on your team miserable". If the
less-than-average programmer sits in his parents basement working on his own
racoon-loving social network using the most mind numbing technologies, that's
okay. But as soon as he interacts with others, he will inevitably cripple the
advances of the field. Think of what happens each time a standard comittee
reaches the conclusion: "It's a great idea, but too complex for people to
grasp".

I know I sound very elitist, and I wish I wasn't. The truth is programming is
hard. Very, very hard. Sure you can use your favorite framework to generate an
html form and read DB fields, but this is not programming. Dijkstra has
written extensively about the subject, calling programming "one of the most
difficult branches of applied mathematics" or saying about BASIC (whose usage
then is very analogous to the subject at hand now) "the teaching of BASIC
should be rated as a criminal offence: it mutilates the mind beyond recovery".
EWD was an extremist, he argued that CS students should focus on symbol
manipulations, prohibiting them to manipulate computers for the first few
years, focusing on an abstract formal language instead. He criticized
universities for "[lacking] the courage to teach hard science" and their
"infantilization" of the "radically new" idea that is computer science.

I won't go as far. If what he suggests is an extreme, a website promising you
to learn code in 3 months is the opposite extreme. A 4 year CS degree, a
couple of open source projects and the _deliberative practice_ Norvig talked
about should be a good moderate middle-ground.

In short, do I encourage people to start programming? Of course I do, it's the
most fun I've ever had in my life. Do I agree that three months worth of
learning and couple of RoR pre-fabricated functions is enough to say they
learned how to "code"? Absolutely not.

------
lachyg
The first cohort (Spring) of <http://DevBootcamp.com> graduated a month ago.
It was an ultra successful class, we had some amazing teachers, mentors and
fellow students (I was one of them). I've just checked the current statistics
and 14 of the 17 students looking for jobs have now had offers. I think at
least 5 have accepted an offer and started working so far.

Average salaries are around (but slightly less) than San Francisco junior
industry averages.

This is after an 8 week course. These programs work.

Disclaimer: I now work for DevBootcamp.

~~~
angrytapir
> Average salaries are around (but slightly less) than San Francisco junior
> industry averages.

What's the industry average? (Sorry, I'm from Oz so don't know.)

~~~
tikhonj
I don't know about "junior developers", but the average starting salary for a
fresh BS from my public university (based on a voluntary exit survey, so there
may be some upward bias) is around $80.5k.

This is particularly pertinent because the vast majority of the students here
end up working in the Bay Area.

------
jwblackwell
We need to start making a distinction between computer science grads and web
application developers.

Nobody really believes that you can learn everything you would on a CS degree
in 3 months. But with awesome frameworks like RoR, jQuery, JMVC and
Codeigniter, a wealth of online knowledge and big communities it's now
possible to achieve an awful lot without any formal CS education.

I think that's the point they are trying to make.

~~~
webjunkie
I think you just offended a lot of people with CS degrees that call themselves
web application developers or do that kind of stuff.

------
gghootch
I am always surprised when reading posts like this one. Studying a subject is
boring, one learns fastest through real world practice/experience.

Whenever someone asks me how to pick up programming I give them the following
advice.

1\. Think of something cool you want to build. Scratch your own itch. Presume
everything is possible.

2\. Find out what reading material is required by your local universities for
an introductory software engineering class. Find one that has a 200-300 page
_reader_ , written by the professor that teaches the course. Go to the
university, buy reader. It's cheap, max 20$, and extremely dense. Do all
exercises.

3\. Find a cool web framework. Program.

Before you realize it, you'll have developed something pretty cool.

------
elementsoftrust
I think the title is silly. You don't learn to code in 3 months. You learn the
keywords and semantic of the language. This has nothing to do with being a
software developer and producing good and valuable products. This attitude is
the reason why out of 100 resume I get on my desk I might find 1 or 2 good
developers. Then you read about "developers" complaining they are only being
paid 1,500 EUR in Europe. You know why? Because. They. Suck!

------
emmapersky
A 3 month intensive course is not a substitute for a multi year computer
science degree.

Both are valuable in their own way but the comparison is just rediculous.

~~~
chriszf
I disagree.

A computer science degree means you've spent 4 years learning computer
science, it doesn't mean you know anything about software development. In
fact, at a university with a good CS program, it almost certainly guarantees
you know nothing about software development: UC Berkeley's CS program has a
single optional elective on the subject of software engineering.

Now, there is a high correlation between computer science aptitude and
software engineering aptitude, but I wonder if it's just because we've
conflated the two because the field is so young. I believe that one can be
taught without the other, and that's what we're seeing with these academies.

Consider: on one side, you have someone who spent 720 hours over the course of
four years learning Delaunay triangulation and LALR recursive descent parsing,
but has never written or architected a greenfield application from scratch.

On the other, you have someone who spent 300 hours over eight weeks building
applications, being exposed to good industry practices, learning how to deploy
systems, how to use source control, how to use an IDE. Maybe afterwards, they
could spend two weeks covering fundamental theory.

Let's be honest, when I go out to interview I do the same thing anyway.

As an employer, the latter would be more immediately useful to me. So you're
right, the comparison is ridiculous, and an intense course is not a substitute
for a multi-year degree. But stop and ask yourself: is a CS degree the right
criteria for admission into the industry in the first place?

~~~
emmapersky
You seem to disagree with a point I am not making. I'm saying that they are
both valuable (maybe CS grads who want to work as Software Engineers should
take such classes), but not equivalent.

There are values to an academically rigorous (CS) education that are unrealted
to Software Engineering. Simply being aware of CS fundamentals is not
equivalent.

There are many eng jobs outside of Startup land where a deep knowledge of CS
is far more valuable than how to write and deploy a full stack web app.

~~~
lucidquiet
I'm actually agreeing with you and disagreeing with chriszf. I suppose I
should have called that out specifically. My comment was mainly to counter
argue what I've seen as undervaluing a CS Degree. (Sorry for the confusion).

~~~
emmapersky
My bad, I replied to the wrong parent. I meant to reply to chriszf's point
that you also disagreed with.

------
angrytapir
Interesting link. What would be nice would be some kind of comparison of
different offerings (e.g. the online Codeacademy-style stuff) by either an
experienced developer or a novice to see how they stack up against each other
in terms of usefulness.

~~~
richardodgers
Code Avengers <http://codeavengers.com> is a free interactive online tutorial
that will teach you Javascript. My brother created it and I think its the
funnest and most effective way to learn.

------
bashzor
I find these 'Learn to code in [any time period]' things tiring. You can learn
to code in one day if you want, but that doesn't make you a good or
knowledgeable coder. And some people will never be able to code in a logic
manner, even after 3 years. The time period is hardly related to this, as is
confirmed by lots of research.

~~~
chriszf
Fair enough, but it's interesting to note that a person with little-to-no CS
background can be made to resemble, in all respects, a junior-to-mid level
engineer in such a short time. It suggests that the industry notion that a CS
degree is needed to be a good engineer needs to be challenged. Why it exists
at all baffles me, when some of the best software engineers around are mostly
home-grown: John Carmack, Shawn Fanning, Ken Silverman, Bram Cohen, etc.

~~~
babarock
Because the industry is so much more than throwing preformated auto-generated
web forms at a database. There are things far more serious than your average
"Facebook meets Fitocracy for lumberjacks" ideas...

If Carmack and others managed to do great without a formal degree good for
them. But they're outstanding people and are more the exception than the rule.
If you're as talented as these guys, fine let your skills speak for
themselves. But assuming every person following this 3 month "program" will
now call themselves a programmer is something completely different.

------
richardodgers
Code Avengers <http://codeavengers.com> is a free interactive online tutorial
that will help you get started on Javascript. There is obviously much much
more but this will help beginners learn basic skills.

