
Do you need to go to school to learn programming? - Anon84
http://codeutopia.net/blog/2009/05/04/do-you-need-to-go-to-school-to-learn-programming/
======
charlesju
No, but it helps.

I would love to bash programming (pun!) at the university level like everyone
else. To put this in perspective, I almost flunked out of my CS program and
now I have started a programming startup that is doing quite well for itself.

But, college teaches you 3 very important things about programming that you
probably otherwise wouldn't have, or be as likely to have learned by yourself:

1\. A solid foundation in engineering that spans across fields that you
wouldn't normally know you need until you need them. ie. simple linux kernel
theory, machine code, etc.

2\. Meeting strict deadlines and iterating through imperfection. School forces
you to continually program and learn faster than you would by yourself. CS is
a hard major, setting extremely short deadlines on huge projects has taught me
to focus and stay on task. It gave me the confidence to finish fast and
iterate faster.

3\. The other skillz needed for (life) business, ie. finance, accounting,
people skills, etc.

------
ErrantX
a VERY strong NO.

Most college/university level courses teach the wrong languages in the worst
kind of ways. CS Majors who did not self-tutoring outside of classes are
really only suitable for management roles.

I think doing a subject (maths, engineering, physics) that shows a ranging
ability in a _tough_ area is much more important. It's easy to prove you can
program (with examples and simple tests) but proving ability via a CS course
is next to useless.

~~~
andylei
you take this too far. i agree that it's possible to learn CS without taking
courses, but i don't think that CS courses are useless.

if you can learn CS without a course, i don't see how taking a course would
hurt. your argument is based on CS courses teaching you the wrong thing, but
if that's true, then you're equally, if not more likely, to learn the wrong
thing if you just learn on your own.

if you were hiring a programmer and you had two candidates were exactly the
same, except that one had a degree in CS from, say, Stanford, would you really
be indifferent between the two?

~~~
ErrantX
Depends on what the other candidate had done. If they were identical in every
way potentially I would take the CS candidate. But that is a straw man
argument ;)

With a group of newly graduated candidates (and we have been hiring
programmers recently so this is from experience), assuming "newly graduated"
means they have a degree of _some sort_ , the CS majors tend to be, in my
experience, the weakest real world programmers. Engineers and physicists are
the best.

------
Zarathu
No, not at all. In fact, I'd say that if you're self-taught, you'll probably
learn more than if you're only learning through school.

Doing both, however, can bring some nice benefits.

------
timothychung
I think the article missed one point: At a high achieving school, you have
many opportunities to know other hackers.

Learning together is the one of the quickest way to improve because you gain
lesson learned insights from others that you don't have enough time to try out
yourself.

Of course, participating in open source projects can help but community
participation and friendship building in physical world are much easier due to
our nature. So it should be an advantage for going to school to learn
programming.

------
biohacker42
It helps a lot, but the key to get a lot of programming skills from a CS
program is, as the article points out, additional work. Make friends with your
fellow programming interested CS majors, work on an open source project, any
OS project.

------
mahmud
School interfered with my programming.

------
tumult
Nope.

