Hacker News new | ask | show | jobs
by tdavis 5287 days ago
There are two classes of programmers: the taught and the self-propelled. You can certainly teach someone to program--what they do after that defines the rest of their career. No CS curriculum will give all the information one needs to be a great programmer, but it's certainly possible to have a long and mediocre career as a taught programmer.

I would wager a majority of the best programmers are also self-taught, though. Not because College is a bad experience or sets you up for failure, but because it's really internal motivation and curiosity that makes a programmer grow, not something they learned in a CS course once upon a time. And you've got to be pretty damn curious to make a career of programming without any formal introduction or education.

1 comments

I would argue that a good CS curriculum makes you a good Computer Scientist. I started really programming my senior year of high school. My code has been steadily improving since then. However if it was not for my CS courses I would't be able to tell the difference between a binary tree and a stack.

Programmers are artists. You can't teach art. Computer scientists are mathematics. Math must be learned.

The two together are Engineers.

I'm a self-taught programmer who went to art school and I love this thought-provoking comment.

There's one thing I'd like to point out. You can teach the techniques of art, which are used for creating art. You can teach the techniques of programming, which are used for creating software. You can't teach how to create something that's never been created before.

That goes for creating ground-breaking art, as well as ground-breaking software.

Often, it's a set of disparate and interdisciplinary techniques, seemingly unrelated, that are used together to create the cutting-edge.

You can teach the techniques of programming, which are used for creating software.

I completely agree. The article might be right that it doesn't usually happen. But we should ask what the causes are, not simply accepting the "it can't be taught".

> You can't teach art.

Art (like programming) is the creative application of technique, and you can teach technique.

I like this.