
Please Don't Become Anything, Especially Not A Programmer - twampss
http://learncodethehardway.org/blog/MAY_15_2012.html
======
cletus
Great post. I have an awful lot of respect for Zed Shaw and what he's done
(and, no, not for "Rails is a Ghetto" but for his directed learning
programming books, which IMHO are probably the best approach for newcomers).

I'm disappointed that Jeff has taken what is essentially an elitist and
exclusionary view. Programming is not a zero sum game. Every new programmer
isn't a threat to your livelihood and your existence (unless, you know, you
suck at your job).

There's a lot of wisdom in the last two paragraphs. Another facet of this is
those (typically young) programmers who treat any criticism of their ideas to
criticisms of themselves as people (of course this isn't unique to
programming).

You need to get over that as it is an impediment to becoming more proficient
at your chosen craft. Your work isn't your identity. Don't treat it as such.

~~~
B-Con
This is a terrible post. He wildly exaggerates Jeff's statements and
completely misses the point of it, which was not in any way "no one should
learn to program", but rather "don't learn specialized skill sets you don't
need". Jeff's point focused on whether programming was the best path to
solving a problem for most people, and whether they would actually gain
anything from it. His main argument was that programming was just a tool for
problem solving, and it didn't solve problems that most people would need to.
Rather than do a half-baked job of writing some code, people should take a
different, more effective route.

I don't necessarily agree with that, but that's _what he said_. And this post
completely misses the point and makes Jeff's post out to be something it was
clearly not meant to be.

~~~
zedshaw
The _title_ says "Please don't learn to code". Holy crap, how can so many
smart people be so incredibly bad at reading comprehension.

~~~
laughinghan
Yes, it does. Jeff's article then proceeds to present a very reasonable
argument to consider for why you might not want to code, specifically, there
are many useful skills in the world and maybe there's one that would serve you
better than coding. Your article completely ignores Jeff's article and
presents what amounts to an _ad hominem_ attack on Jeff, claiming he's trying
to make beginners feel like losers.

Do you honestly believe so many people on here are so bad at reading
comprehension that they can't parse the phrase "Please don't learn to code"? I
think you're smarter than that. I think we both know that's a straw man. What
actually happened was that many people read Jeff's post and realized that the
title "Please don't learn to code" was not a _summary_ of his article, it was
a _title_ , presenting the _highlight_ of his article, which is that there are
some people in some situations in which he'd tell them, "don't learn to code,
learn this other thing that will be more useful to you".

~~~
scottbruin
To be fair, titles should give some idea of what's in an essay or post. If you
use a linkbait headline is it _that_ unreasonable to address the more
ridiculous point made by the headline?

~~~
dbecker
Maybe it's fair to criticize the headline.

But it's silly to criticize people's reading comprehension on the basis that
they read the article rather than just the headline.

------
alecbenzer
The part at the end was just fantastic, and really sound advice for pretty
much anyone.

But, I think people are sort of misunderstanding Jeff's post. I didn't get the
impression that he was trying to dissuade kids from learning how to code in
some kind of effort to keep his uniqueness as a programmer. I think the point
was just that this whole _everybody_ should learn how to code thing is a
little odd.

If you want to code because you think it's cool and you want to become a good
coder, then great, learn to code. But I think Jeff's point is that we
shouldn't make coding out to be this essential skill that absolutely everybody
should learn. If you weren't otherwise inclined to learn to code, don't do it
just because someone told you you should.

Not that I completely agree with that sentiment either, I guess. One of the
top comments by Fuzz [1] on that github gist is a pretty good tl;dr I think:

"Saying people should not learn how to code is like saying people should not
learn how to speak a second language."

I'm sure learning a second language is fun, but I get annoyed when people try
and make it seem like it's absolutely vital to do so.

[1] <https://github.com/fuzz>

~~~
icebraining
_I'm sure learning a second language is fun, but I get annoyed when people try
and make it seem like it's absolutely vital to do so._

I'm guessing you're a native English speaker? Because I can tell you that in
many parts of the world, learning a second language is essential if you want a
decent job and access to the vast amounts of knowledge, culture and people
that the Internet provides.

~~~
alecbenzer
I suppose I didn't consider that -- yes, I am a native English speaker.

~~~
icebraining
I didn't mean it as a criticism - it's easy to overlook what we take for
granted, and I'm no exception.

But where I live, I notice very clearly the difficulties and disadvantages
that not knowing English has, and even being able to read is not enough: my
parents, for example, are certainly not uneducated people, yet they're not
able to fully understand much of spoken English, which means they're
restricted to subtitled content - fewer films, no free university lectures, no
Khan Academy, almost no podcasts, etc.

And I'm in an European country!

------
stiff
While the "Don't Become Anything" thing is valuable (after all it's a
thousands of years old insight that can be found in Buddhism for example), the
article looks pretty much like a straw man to me. The original post was
arguing that "coding" isn't an essential life skill in the way for example
reading is and that massive amounts of new coders might not be that good for
the world. How is this refuted here in any way? Where is this resentment thing
pulled from?

~~~
zedshaw
I'm not refuting his statement that programming is or is not a life skill. My
opinion on the matter is demonstrated in my work. I'm refuting his statement
that other people should not become programmers, and that only a few chosen
few should. Even though he doesn't say those very words, that's what he's
saying.

The resentment comes from me talking to many programmers who say the same
thing. Consider it a guess about Jeff, and a general message about other
people who feel the same way.

~~~
prayag
>I'm refuting his statement that other people should not become programmers,
and that only a few chosen few should.

But Atwood didn't say that. All he said was that it's a trade like Plumbing
and not a life skill like being able to read.

>The resentment comes from me talking to many programmers who say the same
thing.

But programmers DON'T mostly say that. In fact, I had a very animated
discussion with Randy Stross of New York Times at YCombinator where EVERY
programmer around was arguing that programming has become an important life
skill and should be taught in high school. Of course, this is anecdotal but
even the recent articles refuting this on HN shows most programmers are for
everyone learning programming.

I don't know you as well as other members of the community here but this
article seems to be really harsh and doesn't even touch the argument that
Atwood made in his article.

~~~
zedshaw
The title says "Please don't learn to code". The rest of the post is just more
of that in different words.

Wow, alright I'm just going to stop replying to people who can't even read the
title, but still claim it's not saying what it says.

~~~
dkersten
I actually agree with your article, but you can't seriously take Jeff Atwoods
title seriously unless you also mean us to take your title seriously - so are
you now telling us that we shouldn't become anything? Especially not
programmers? I mean, it says it _right there_.

I'll reiterate that I do agree with most of what you wrote and I upvoted this
submission because of what you wrote, I just don't think the stance in this
(and other) comments is at all valid given the title of your own article.

------
singular
There's a funny juxtaposition between Zed Shaw's rather excellent books and
what just comes across as nasty, personal, bullying comments and attacks on
people.

In fact, around a year ago, amidst serious worries in my life, I read some
typically Shaw-ian stuff which essentially utterly disuaded me from wanting to
try and do things out in the public arena should he, or people like him, feel
like attacking me for producing code that he/they didn't feel was all that
good. It was quite depressing.

The irony is that I actually recently recommended LPtHW to a friend who I want
to help out potentially get a new career. I love the idea of quality education
being free for everyone via the web, and I love the idea that you don't have
to be some elite programmer to do it. I think Zed's approach to this is so
spot on.

But how about toning down some of the nastiness? You're a great programmer and
now, author/educator Zed, but seriously man.

~~~
npsimons
Anyone else think that maybe this <http://oppugn.us/posts/1272050135.html> is
why Mark Pilgrim committed infosuicide?

------
j45
"Never listen to people who try to make beginners feel like losers"

Zing. A great litmus test that's simple and has results too.

Too many programming communities, including the most popular web frameworks
that are the be all and end all to everything have elements of this.

It's not something to be proud of to feel better about yourself by putting
others down, telling others what they do, or how they do it, or who they
ultimately are isn't as capable.

~~~
zedshaw
It's not just programming. I run into this with guitarists too. I mostly play
for my own enjoyment, but I constantly run into guitarists who get off on
treating beginners like crap. Even in music schools they do this, and for some
weird reason they think that this is how you make students awesome.

Ultimately, these kinds of behaviors in teachers don't make better students,
they just kill off the more fragile ones who might have been awesome with some
help.

~~~
wilmoore
Correct. It isn't just programming. You actually summarized it well when you
wrote that people need to do other things (besides programming or besides
whatever it is they identify so closely with) so that they don't resent others
for "sliding" into their world.

People with more than one passion will generally find less time to resent and
more time to educate :)

------
B-Con
He really missed Jeff's point. This was a terrible piece.

> Currently, Jeff Attwood has a piece where he tells you to not learn to code.
> I wonder if he's going to tell his kids they shouldn't learn to code when
> they want to become just like Daddy? Probably not. He'll gleefully run over
> and show them how to code and tell them it's so much fun and that they
> should all do it and it's the best thing ever! But, of course, your kids
> shouldn't learn to code, and you shouldn't, and your friends shouldn't, just
> Jeff and his kids should.

No, that's not what Jeff said.

Jeff was arguing against learning programming casually if you have no logical
extension for your knowledge. He was coming at it from more of a "don't spend
time learning specialized skill sets you won't need" stand-point. This piece
makes it out as if Jeff were openly attacking anybody who wanted to program.
If you read Jeff's post, the title is obviously an exaggeration, as are most
of his blog post titles.

I don't agree with Jeff's point, but this piece made it out to be a wild
exaggeration that it wasn't.

~~~
parfe
Perhaps Jeff should have chosen a better title. Perhaps Jeff should have
chosen a better example than of a man late in his career path holding a highly
specialized job an ultra-majority of people will never hold.

I'm sure Bloomberg would have loved to know how to code back in his trading
days. Of course Jeff can't see a reason a financial trader would want to
trade.

~~~
protomyth
Bloomberg is not exactly a babe in the woods where technology is concerned.
[http://ecommerce.hostip.info/pages/111/Bloomberg-L-P-
EARLY-H...](http://ecommerce.hostip.info/pages/111/Bloomberg-L-P-EARLY-
HISTORY.html)

------
jwingy
The only thing all these counterpoint blog posts are proving is that while
programming may or may not be important for everyone to learn in the future,
being able to hold and understand cogent arguments most certainly is. I've
read at least two blog posts today making counter arguments to points the op
wasn't even making (op being Jeff).

I have a feeling a big part of it is the blogger proclivity to make link bait
headlines that are somewhat related at best, deceptive at worst, giving rise
to knee jerk reactions.

~~~
zedshaw
Maybe if I learned to code when I was younger I'd be better at logic
arguments.

But, sadly, I'm a human and not a computer so I tend to write like a human.

~~~
nkassis
See this is the crux of what I thought this movement was about. Logical and
Algorithmic thinking is what people should be getting from learning to code.
This is a fundamental thing like critical thinking which schools have a really
hard time making kids learn.

Plus I have to agree with you that today I wouldn't recommend my path to
others trying to learn to program. It wouldn't make any sense.

~~~
Produce
I have to disagree with the sentiment that programming has anything to do with
logical thinking. You can write awesome programs on feeling alone. For
example, when I'm debugging, I don't think, I simply let my mind explore the
catacombs and the solution bubbles up from my subconscious. The benefit which
logic brings to the table is being able to _communicate_ your ideas clearly.

Critical thinking is useful but it's not a golden hammer and, in this
community, is vastly overrated. Balance between thinking and feeling, on the
other hand, is of vital importance.

~~~
keithpeter
"For example, when I'm debugging, I don't think, I simply let my mind explore
the catacombs and the solution bubbles up from my subconscious."

<http://press.princeton.edu/titles/5896.html>

Get a copy from your nearest library. You are operating in the same mode as
most creative mathematicians. My girlfriends at University had to cope with a
shorthand pad and pen on the bedside, and being totally ignored for 24 hours
at a stretch when the ideas came.

The subconscious only works when fully primed by the way. You must _know_ your
code very well for the links to 'bubble up' like that.

~~~
Produce
Definitely grabbing a copy of that, I had no idea.

Incidentally, I'm one of those developers who hate intellisense and prefer to
memorise the code structure, I guess that's where the priming is happening.

Thanks for expanding my awareness.

~~~
keithpeter
Thanks for that, I work as a teacher and people give me money for helping
people expand their awareness. Always amazes me that they do :-)

------
keithpeter
Disclaimer: I was so impressed with Learn Python the Hard Way that I bought
the hardback in the hope that Shaw gets a beer out of it. I've made it to Ch
11 and will finish the course when I get my students through their maths
exams.

PS: Zed, magstep3 in TeX, _please_ , I need glasses as it is.

Is it possible that there are degrees of code writing?

I publish my humble Web site using some bash scripts I hacked up to generate
pages from markdown text then to generate the index and lftp the lot up to my
Web server space. That is coding, but it is not _software engineering_ or
_industrial strength_. The system probably only makes sense to me.

I bodge together R scripts that produce interactive 2d plots I can use in
maths teaching. Again not _engineering_ but useful.

I'd like to be able to hack up some small apps for Ubuntu, just silly front
ends for things. The 'developer story' as Shuttleworth puts it is not too far
ahead yet, so I'll have to get my head around Python/Glade. I'm reading my way
through the Pyroom code and scratching my head a lot. I think that is getting
closer to _trade school_ coding but I'm no credible threat to a proper coder
and have no intention of being.

Does HN collectively think there is a valid space for _end user coding_ as in
the BASIC days? If you want to get philosophical, is there space for
bricollage as well as architecture?

~~~
chipsy
Professional programming's only been around for 2-3 generations. I don't think
there's any hard evidence for the skills being limited to a particular domain
- rather the opposite, we keep discovering new things to apply code to.

It used to be that programming was seen just as "large scale number crunching"
and even top people in the computer industry didn't see greater
application(e.g. the "only 5 computers in the world" quote often attributed to
Tom Watson). We've progressed quite a ways from that point, and nowadays I
think we've reached an era where no programmer can be expected to know all the
programming knowledge that exists. There are too many different domains and
specialties.

And that, in turn, means that as a society we need yet more programmers to
cover all possibilities and make more discoveries. I think "skill" is very
tangential to the discussion, because one of the domains that has ample room
to progress is language design and engineering techniques.

When people online toss around phrases like "best practice" and "professional-
grade" you can take it with a grain of salt - most code barely works, we don't
actually know how to do it right, and we spend most of our time on concerns
that are bikeshedding, not order-of-magnitude productivity enhancers. We're
still catching up with some ideas from the 70s about how to build software.

Instead just be "humble yet courageous." If you don't know if it's right,
marshal all your available defenses - source control, backups, comments,
references, IRC channels etc. - and then go try it. It's an experiment, and it
probably won't take long to figure out if it has problems.

------
pbiggar
I like Zed, and I like Jeff. I dislike Jeff's article, and really like what
Zed is saying about not letting people tell you not to become a programmer (or
whatever you want). Well said.

However, Zed did Jeff a real disservice - he put words into Jeff's mouth that
he did not say. There are many people who do have that kind of resentment, and
I see it all the time, but I can not see where he got that from Jeff's article
(or any of Jeff's articles, in fact).

------
ashray
You guys are so naive. The only reason Jeff doesn't want everyone to program
is so that we can have the benefits we have right now. There's currently an
industry shortage, it's awesome for programmers right, left and center. We get
better perks, better benefits, better pay.

There are definitely benefits of having more programmers, or people familiar
with programming, however there are two caveats:

1\. With more programmers there will be a much larger signal to noise ratio.
Good programmers will become much harder to find.

2\. It'll drive down the value of each programmer, regardless of industry
quality.

The same thing happened to the aviation industry in India. There were pilot
shortages, then they found that pilots get paid really well. Everyone and his
cousin became a pilot, boom - quality and more importantly perks/pay went
down. Now there's a pilot surplus (of mostly inexperienced n00bs) in the
country. These guys are all unemployed and the airlines are all talking about
"how difficult it is to find good and experienced pilots". But the pay has
gone down..

So yeah, nobody learn how to program PLEASE. I want to be the only programmer.

------
stefanve
It is funny to see how different people interpreted the original post.

For me it was about coding being a craft and not a necessary skill like
arithmetics, reading or a secondary languages. (This is true not only for
coding but for nearly every craft there is.)

So I think it was more a post against the "Every one should learn to code, for
a better world" movement (if there is such a thing) than a keep on doing what
you do and stay away from my craft post.

While I thing bloomberg should be able to do what ever he wants in his free
time. I agree with the assessment that it will be highly unlikely that leaning
to code will make a difference in his daily work.

So while this reaction was a entertaining read I think it was reacting to
something that wasn't be said.

~~~
zedshaw
Craft requires skill and the two are deeply intertwined. In opinion, if you
think that programming is some mystical "craft" that can't be taught, then you
simply just don't know enough about it.

~~~
stefanve
Again funny how people read different things from the same text :-) . That's
not what I was trying to say. On the contrary to master a craft you will need
to learn several different skills and a craft is something thing that you can
learn, but more importantly must learn and study to master. I'm not saying
this should be out of reach for most people as is any craft, if you want to
learn something you should be able to and I applaud any afford to make it more
affordable and easier . but contrary to reading and arithmetic etc it is not
something you must learn to be a productive member to society. This is true
not only for coding but for any craft, be it plumbing, sewing carpentry,
Medical professions etc.

------
mbeswetherick
I believe that Zed was striving for Zen in his post.

As a college student and someone who read LPTHW, I'm quite happy to see this
entry. I have seen the negative attitudes of many self-ascribed "programmers"
in the CS department at my University. I feel like a lot of this comes from
the point that Zed was making - the old dogs are upset because new people are
circumventing how they learned to code. It's strange that some people hold so
dearly to their old methods of learning, but I do feel like one must let go of
that way of thinking if they wish to be happy.

The new methods of learning are great and they usually don't cement anyone
into thinking they're a "programmer." One of my best friends goes to RISD and
he learned to code from LPTHW and he is one of the best coders I know
(although I think his style is weird sometimes... but that's beside the
point). What matters is he is making cool things and he is humble about it.
People shouldn't be too attached to any one thing on this earth, it takes away
from our complexity as humans. We have such boundless potential and I hate to
see that get knocked down by people who are afraid of losing their identity as
a "programmer." Those people are so much more than that too! Even if they read
all of Knuth's literature and have built compilers, humans aren't robots, why
should we act like them? We must let go of the identities that cause to
inflict harm on people.

Zed has come across as rather harsh in some of his writing, but this post is
very beautiful. I'm not saying that Jeff is a bad guy, I'm just glad that Zed
wrote this post.

Hopefully in time we can all let go of the identity of being a programmer.
Most of us use libraries built by other people that are so abstracted anybody
could do it! And what's cool about the people who are building the gnarly
libraries is they put it out for opensource - they want people to use it 8^)

Don't be concerned with the bullies, go out there and have fun!

------
Legion
Can people please respond to the actual posts each other makes, and not just
the titles of the posts?

This blog post battlefield is strewn with the broken bodies of straw men.

------
dkrich
You are missing the point of his post which I believe is valid- that
programming in and of itself is nothing but a skill to carry out a task. He
isn't dissuading beginners from learning to code or suggesting that people
shouldn't. Just that you shouldn't learn to code just for the sake of knowing
how to code.

I get it. There are worse hobbies you can have and it can solve problems and
spread information, etc., etc. The point is that programming should be viewed
as a means to an end. Too much focus is put on coding as an end goal and
writers on TechCrunch whom I suspect have never coded anything in their lives
talk about how learning to code is the hot new thing and everybody should be
doing it. I think it is far more useful to learn a variety of subjects, figure
out what it is you want to do, and if building software is the way to achieve
it, then go learn to code. But learning to code well is an enormous investment
of time, so to learn to code you are choosing not to do other things that
could be far more valuable to you.

A lot of people start with learning to code and then look everywhere for a
problem to solve with their new skill set. That is the reverse of how problems
should be solved. The technology is irrelevant. The skills are irrelevant. The
problem is what should dictate the work.

~~~
bmj
I just re-read Mr. Atwood's post, and I'm not sure that's what I get out of
it. He talks about people learning to code to do it for a living, not just
doing it as a hobby/learning experience. Though he starts by saying code is
just one skill among many, his arguments centers around people doing as a
career ("we don't need more bad programmers" and "programmers should be
writing _less_ code").

I suspect that really, Jeff and Zed might actually agree that people should be
free to tinker, and resources should be available for them to learn to tinker
(see Jeff's plumbing analogy--would the Jeff Atwood of plumbing tell me not to
learn how to fix my leaky faucet because there are already enough bad plumbers
in the world?).

Certainly, some people learn to code for the wrong reasons, and they see every
problem as a program to be written. But hey, if they want to do that in their
basement (or even as part of their job), let them--we've all had to learn one
way or another that the world doesn't work that way.

------
octopus
Great post. You should never identify yourself with what you do.

You could do anything you want if are passionate about something, ignore
everyone claims you can't.

~~~
mb_72
Sure you can do anything you want, but the better you are at something: a) the
more enjoyable and rewarding it is for you AND b) the more efficiently you can
generate something useful for others; with any activity, there is an
opportunity cost

That said, learning coding is self-limiting activity; those who enjoy it and
have a knack for it will continue, those that don't will stop.

My only concern, which is a general one, is that humans are pretty good at
self-deception, especially in subjective areas. Look at how many people think
they can sing, for example. The shattering of their illusions has been turned
into entertainment, and for many people this is obviously traumatic.

I have a completely non-technical friend trying to learn javascript. When I
asked why, she told me she wanted to write games. As her friend, should I save
her feelings and say nothing (and let her squander her time and end up
confused and frustrated) or try and reason with her (and then look like a
killjoy for seemingly criticising her efforts)?

Currently I've taken the former option, but still agonise over whether this is
the 'right' way or not.

~~~
octopus
When I start learning programming I was "completely non-technical" too. Give
your non-technical friend a few years and you will see what she can do if she
is really interested in making games.

I bet you were in the same situation at some point in your life.

If you want to give her a constructive advice tell her that she can use
JavaScript with Unity3D for e.g. I bet you will be amazed at how productive
one can became when one is passionated about something.

~~~
mb_72
Certainly, one's early experience skews one's perceptions - I was 10 or 11
when I was 'non-technical', my friend is 35 (and, knowing her pretty well, her
skills are definitely not in the coding area).

Thanks for the tip, I'll pass it on to her.

------
j_baker
_You see, I'm proud to say I am the proto-enabler of the meme that everyone
can learn to code (not Codecademy, or however you spell it)._

I don't mean to disparage the good things Zed has done in helping new people
learn to code, but am I the only one who is a bit put off with the narcissism
here? I mean, Zed is hardly the _first_ person to encourage non-programmers to
program, or to write a book to teach non-programmers to program.

Regardless, I don't think Zed's point is mutually exclusive to Jeff's. It
sounds to me as though Zed is saying "Everyone can learn to program", while
Jeff is saying "Yes, but that doesn't mean that everyone _should_ learn to
program". I think these two ideas can coexist.

~~~
josephcooney
You certainly weren't alone there re: the over-the-top narcissism, and seems
like massive disrespect to everyone involved in languages research for the
last 40 years, which has attempted to make programming easier and more
accessible. Alan Kay would be rolling in his grave if he were dead.

------
EzGraphs
Wow. Jeff's article was not nearly as silly or inflammatory as some of these
responses. Zed's rants can be great fun and quite theatrical, but Jeff was not
trying to stifle anyone and prevent from learning to program. He was
critiquing the fact that coding is becoming an "end unto itself" rather than
one means (among many) for solving problems. Just because one learns to code
does not mean one will solve problems - they may create more. Conversely,
someone can never learn to code and be amazingly effective solving problems
through other means. I am a programmer and really enjoy programming and
appreciate its effect on the modern world - but it is not an end unto itself.

------
neokya
I learned to code from your book Zed. I was disappointed by Jeff's article
(Who is usually a nice man).

You wrote this post at a right time with right points. My appreciation is
triple-folded. Take a bow, Zed.

~~~
zedshaw
Thanks, it's actually something I've been meaning to write about for a while,
so Jeff just gave me a good reason. :-)

~~~
Odrix
Thanks Zed! I think that was pretty insightful. You brought a whole new
perspective to the "please don't learn to code" issue. Jeff may not even be
aware of the reasons behind his resentment, but now he wouldn't need a shrink
to find out would he? Thanks!

------
benatkin
There were some excellent criticisms posted earlier, but this is the one that
pretty much overshadows the original post. Thank you, Zed.

------
adir1
Actually, my feeling is that you misunderstood Jeff. He makes a great point -
we can't all be programmers, world needs people with all kinds of skills.

~~~
zedshaw
I'm sure he'll write a follow-up clarifying what he said so that he's not
guilty of saying anything.

~~~
demetris
That’s the trick.

You say one thing, then say another thing. The other thing kind of negates the
first thing you said, so, by repeating the recipe, in a short while you have
said everything about your topics and you have also said nothing.

Not all writers are like that of course.

------
jeffpersonified
As a guy currently in the midst of learning how to code, and doing so with
Codecademy (it's been a fantastic tool, and made the process far less
painful), I really appreciate this viewpoint. More than that, it's
encouraging.

I don't intend to get a job as a developer. I don't convince myself that I'll
ever get hired because of my capacity with RoR. I do, however, hope that I can
continue to become a better communicator with the developing community,
understand the basic parameters around different languages, and hopefully
build some things myself... and have fun doing so.

Indeed, as PG has said in the past, learning to code may be more valuable in
the coming years than having an MBA (in certain fields). Code isn't going
away. It's a language that my kids will grow up bilingual in, and I hope to
help guide them into it as the first generation immigrant that I am.

Hell, my skills are elsewhere, and I'm more than fine with that.

------
decklin
I need some sort of AI filter for HN that will not only hide blog posts from a
particular domain, but hide other people's blog posts "responding" to those
blog posts and then submitted as separate articles.

~~~
zedshaw
You should, then give it to me so I can sort out the comments that don't add
to the discussion, but keep the replies telling people they aren't adding to
the discussion.

~~~
jilebedev
> comments that don't add to the discussion

Atwood: > don't advocate learning to code just for the sake of learning how to
code.

Shaw: > Never listen to people who try to make beginners feel like losers

The OP here is non sequitur at best and strawman at worst. Certainly not a
model for constructive contribution to a conversation.

The entire affair from here seems to be a nearly-pointless dramatic back-and-
forth between loud people. I read HN for critical insight, not bickering.

~~~
zedshaw
Actually, a strawman argument is quoting things out of context to make your
point.

~~~
rauljara
No. A strawman is when you give your opponent an argument other than the one
s/he is making and refute that instead of the real argument. In other words,
you created a strawman and knocked him down, claiming victory while the real
man remained standing.

<http://en.wikipedia.org/wiki/Strawman>

~~~
mitsche
Quoting out of context is in there as well.

------
readme
The attack zed makes here on jeff atwood is short sighted and unfair heckling.
If you actually read jeff's article, he only argues that coding is not a
fundamental skill like writing or arithmetic. From that, zed posits that jeff
doesn't want your kids to program. Yeah zed, that's why he worked long and
hard on stackoverflow.

Speak for yourself next time.

------
Produce
Why does everyone pay so much attention to what people like Jeff Atwood and
Joel Spolsky have to say? Looking at Jeff's resume, he has had all of two jobs
in his professional life, one of which was given to him by himself. Joel's
resume is similar, a few low profile jobs (MS was not notable back then) then
one given to himself.

From experience in the industry, it's pretty clear that programmers who stay
in one spot for a long time are mediocre at best. Good developers move around
a lot in order to work with a variety of people on a wide range of problems.
Having an average job then starting a company does not automatically make one
qualified to comment on anything.

In terms of the complexity of the software owned by the companies they
respectively own, seriously? One is an average-at-best bug tracker and the
other is a message board. I don't intend to scoff at people's achievements,
please don't take it that way - all I'm saying is that the pudding contains
too little proof, IMHO.

In short, I'll take Linus's or Shaw's opinion on a given software related
subject over these guys' opinions any day of the week. They've produced
valuable software and documentation, have worked on problems of a far larger
scope and, IMO, are qualified to tell us what's better or worse.

The lesson to take away from this is that if you start a company, blog about
your opinions, you will be considered important. Capitalize on that if you're
an idiot, otherwise, go and do something useful for humanity.

~~~
dbecker
Even if you generally trust Linus more than Jeff, on this particular issue
people are criticizing Jeff for being too harsh on beginners. Linus is
consistently a harsher critic than Jeff.

~~~
Produce
I never criticized Jeff for being harsh, I only used a logical fallacy (an
inverse appeal to authority - what is this called?) to disclaim his opinions.
In reality, I don't think that it's right to white-wash the issue and say that
none of his opinions hold weight, that's simply not true. I do, however, think
that his opinion is massively overrated since there is a correlation between
being correct and having relevant experience in something. But that's just my
opinion.

Not to mention that they are harsh in different ways. Jeff is advocating being
harsh to people who don't know what they're doing and admit as much. Linus
grills people who step into _his_ kitchen and don't know how to hold a knife.
Apples and oranges.

------
samvelst
I wonder how many (and which) CS texts are recommended simply because they are
considered "classics." As a beginner there is really no way to tell how good a
book will be before reading it without relying on the word of others.

------
TommyDANGerous
Great article. I agree, I really don't like it when others try to pull people
down. We should be encouraging because the more we bring each other up, the
better life will be. I just started learning how to code as well and it's
tough and a lot of work, at times you are super frustrated and a harsh remark
at the right time could dampen one's spirit.

------
hanibash
Zed I think your self-identity point is spot on. Time and time again we see
that the greatest minds don't pigeon hole themselves into a single category.
Paul Graham says it himself --

"What hackers and painters have in common is that they're both makers. Along
with composers, architects, and writers, what hackers and painters are trying
to do is make good things."

Anyone who is a maker should be interested in learning to code. I strongly
believe that although programming is a specialized discipline now, in the
coming years we will see that people who have skills in both coding and other
fields will come out the furthest ahead.

Telling beginners not to learn how to code is like telling people they
shouldn't learn how to paint or learn to play an instrument. Coding is a
beautiful and fulfilling activity which no one should be barred from.

------
bignoggins
out of all the posts on HN right now about this, this one is by far the most
insightful.

~~~
vibrunazo
Of all the posts pointing what Jeff's flaw in logic was. The one post
attacking his person instead, saying he's just a mindless bully that should be
ignored. Is the most insightful?

~~~
zedshaw
Yes, because that's how life goes. I'm not going to attack the logic of an
article that is illogical, I'm going to talk about the hypocrisy of the person
writing it. The human stuff matters much more than the fantasy world of
"logic".

~~~
pg
_I'm not going to attack the logic of an article that is illogical_

It seems to me that is the exactly the type of article you'd want to attack in
that way.

If you won't attack arguments with faulty logic on logical grounds, and you
can't (correctly) attack arguments with correct logic on logical grounds, that
implies you can never refute anyone logically, and that all your arguments
will be ad hominems and suchlike.

~~~
kajecounterhack
That makes sense to me. But I also think maybe Zed is saying something along
the lines of that proverb, "Don't argue with a fool," and that when it comes
to people who are unreasonable it's sometimes easier to point out that they're
generally unreasonable. (Though I see your point in that this bad in the same
way any generalizations can be bad.)

------
rmATinnovafy
I've always believed that one should not use labels. They are self imposed
limits.

Writing computer programs is not something out of the ordinary. Sure, it is
applied math, but it is not quantum physics.

I want people to learn. The more people know to code, the more innovation we
will all enjoy.

There is a generation that is growing up with the power of computing. This is
a first in history. We (as a race) will be able to do so many things thanks to
it.

But we need people to learn. Good/bad code, its all the same. All it matters
is that the ideas are implemented.

Great post Mr. Shaw. I've always looked up tp you, as a person and coder.
Thank you.

~~~
Produce
>Sure, it is applied math, but it is not quantum physics.

Quantum physics, and all other forms of physics _are_ applied math.

~~~
rmATinnovafy
What we call physics is not math. Math is how we interpret them. Just like
code is how we interpret ideas in a manner that a computer can process.

Quantum physics is not even aptly defined because no one understands them.
Sure, we may have some insight into how some things work at the quantum level
but we have not a clue.

My point, which I reason you missed, is that people find math hard yet they
manage to learn how to program. These days, one can make a reasonable living
as a coder without knowing much math.

I'm not even going to pretend to be a genius, not even smart. But I can sure
understand that programming is not what fellow engineers make it out to be.

It is neither Quantum physics nor hard. It is, in my opinion, simple (and
beautiful).

Discouraging people from learning how to code is akin to discouraging people
from learning how to speak.

In a world where the Internet is the only mass medium of communication,
knowing how to code enables freedom of thought, and speech.

A freedom we cannot let die.

------
rohit89
I really don't see what the fuss is all about. It is just like any other
field. Programming is not an easy task. People are not suddenly going to turn
into a Linus, a Knuth or a Guido. IMO if you feel threatened because more
people are learning to code, you're probably not good enough in the first
place.

Additionally, since when have people listened to what you should or shouldn't
do? Just because Jeff says that you shouldn't code won't stop the ones who
really want to. The inverse is true as well.

------
dimmuborgir
Zed Shaw is the Nietzsche of hackers (and beyond)! Some Nietzsche's quotes I
think relevant to this post and Zed's philosophy in general:

"Nothing is true, everything is permitted."

"Everything is human, all too human."

"I mistrust all _systematizers_ and avoid them. The will to a _system_ is a
lack of personal integrity."

"You have your way. I have my way. As for the right way, the correct way, and
the only way, it does not exist."

"Who cares if I am right! I am much too right. And he who laughs best today
will also laugh last."

------
gfodor
Nail on head. This would be the part of my comment where I try to add
something, but I'd be wasting my breath; Zed already said everything that
needs to be said here.

~~~
fictorial
Would it not suffice to click the little up arrow and carry on then? :-)

------
mwd_
Paul Buchheit wrote a good essay on identity called "I am nothing" which is
closely related to "don't become anything":
<http://paulbuchheit.blogspot.ca/2011/08/i-am-nothing.html>

I think that's the best part of this article. The criticism of Jeff Atwood's
post is off the mark. Atwood wasn't being elitist, he was pointing out flaws
in the theory that everybody ought to "learn to code" at a superficial level
by putting in a few hours learning Javascript. For many people, more abstract
problem solving skills would be more useful and the technical details will
change or be forgotten.

The criticism of K&R C and so on also rubbed me the wrong way. That is a
great, concise book that is still relevant in a lot of ways. If you're really
good with high-level languages like Javascript or Ruby you might be able to do
some good work but, all else being equal, you're more limited than somebody
who also understands a wider array of programming concepts and more
fundamental aspects of how computers work.

------
npsimons
_Sigh_. I think Atwood really should have entitled his post "please write
better software." Everyone seems to be trying to ad hom Atwood by shouting
"elitist!" when all I think he wanted to do was discourage people from
learning to program if all they were going to do was release shitty code.
Trust me, as a maintenance programmer, I can sympathize. The world doesn't
need more programmers; it needs _better_ programmers.

My take on "Please Don't Learn to Code": <http://hardcorehackers.com/cgi-
bin/blosxom/2012/05/15#please>

Edit: Yes, this is my interpretation, and it's one way to look at it. Zed's is
another (inflammatory) way of looking at it that reads in (wrongly) a whole
lot more. I think Atwood is correct: for some people, learning to code is a
waste of time. But no one should be discouraged from learning anything, ever.

------
sp332
_"How can you learn C programming if you don't read K &R!"_

What's a better way to learn C than reading K&R?

~~~
GFKjunior
I tried K&R but could not get into it after reading the first 2 chapters a few
times over.

I was close to giving up on C till I picked up "C Programming a Modern
Approach" and Zed's "Learn C The Hard Way". They were phenomenal.

After finishing them I tried K&R again but was still not digging the style so
I did a few of the exercises but not much else. I get that it's a classic but
it was written before I was born so I didn't find it all that well written.
That's just my opinion though.

------
hobin
The author completely missed the point. Never did anyone say "don't learn to
code, even if you want to". Rather, what Jeff said could much better be
interpreted as "don't just learn to code because it's the newest hype." That's
really all there is to this issue.

------
drawkbox
Valve has what they call a 'T-shaped model employee'. One who is 'broad range
generalist' good at a wide swath of things, then really an expert at a few key
skills with 'deep expertise in one area'.

<http://i.imgur.com/SAg9a.png>

There is nothing wrong with someone learning to code but that might not become
their deep expertise. However people understanding abstractions and the skill
it takes to code is a good thing.

To take Atwood's analogy, people might use coding the way I use plumbing, I
did it just enough to know I need to call someone when I need some plumbing,
others might become plumbers.

I actually think that is what he was trying to say. Programming will not
become everyone's 'deep expertise'.

------
joedev
"These resentful programmers also hate that the new kids seem to be skipping
all of their favorite indoctrinations"

Reminds me of the old ditty:

"Flowers are red young man Green leaves are green There's no need to see
flowers any other way Than they way they always have been seen"

------
Tichy
Like the article. However, I am undecided if I will urge my son to get into
coding. I will teach him, but does it really make for a great career? The one
good thing about it seems to be that you can create some stuff with very
little resources (not everything the world needs, though -yet, anyway). And
yet I wonder if other professions are not more likely to lead to happiness.
The often cited people interactions could be a factor, for example. Sure,
programmers have clients and colleagues, but other jobs might have people
interactions that are more emotional in nature.

So how about you, would you urge your kids to become software developers? Poll
time?

~~~
protomyth
When I was younger my Dad taught me how to fix the car. It was a skill that I
never used professionally, but has served me quite well in college and beyond.

Programming isn't an either or proposition. It is one of the many skills
someone can learn throughout their life. I will teach my nephew how to code,
just because it is cool. If it provides another window onto the world, cool.
If not, it will be fun to show him how photocells and programming work.

My biggest disagreement is the portrayal of plumbers in the original article.
I learned how to wire a basement and build a photo lab in high school (want to
take photography? well, see we need a place to develop film....) Every skill,
well taught, teaches you a little more about the world. Don't be a snob about
it.

------
bryze
I really don't know why people worry so much about this. I don't think
dissuading people from entering any field is surprising. Generally, experts in
a field want passionate, talented people, because that's how the field will
likely advance, which is what any good expert hopes for. If we scare off the
dispassionate before they have a chance to burden the field, great. This is
exactly the purpose of "weeder" courses in college.

Edit: Well, pardon me for having an unpopular opinion. I have no intention of
apologizing. Perhaps your opinions will change when you see the damage that
incompetence can cause.

~~~
zedshaw
Well, these "weeder" courses actually make for intellectually lazy education.
Rather than study how best to teach a subject so everyone has a chance
regardless of initial ability, you design curriculum that only works for
naturals.

But, ultimately, it's not the teacher's right to decide who's "passionate"
enough or not. Trust me, if my teachers had any say in my success I'd be
digging ditches.

~~~
B-Con
> Well, these "weeder" courses actually make for intellectually lazy
> education.

I disagree. In order to do well at a subject in an academic setting, you need
the upper classmen to be very comfortable with the basics. "Weeder" courses
are always (almost always?) in subjects that are basic foundations for the
field. The idea is that if you can't pass it, the things that build on it
aren't going to make it any easier. As well, they ingrain a good understanding
of the content in those who do pass it.

Since schools tailor content difficulty to the ability of the students, lower
ability levels of the upper classmen mean that the class difficulty needs to
be lowered. If you're in a competitive college that's trying to teach as much
as possible, it definitely their call to only filter people with a certain
level of ability. Unless you're at a hyper-elite very aggressive school, I
doubt that the content is only designed for an ability level that comes only
to naturals. It's generally just designed for "people who can do it well".
(Obviously, naturals make up a decent portion of it.)

~~~
zedshaw
Well you can disagree, but nearly every other subject disagrees with you. They
always have two tracks for their subject, one for people who know next to
nothing, and one for people who are advanced and might become professionals.
In some cases the people from the beginning classes (the 101s) then go on to
become professionals.

In addition to that, many other subjects have branches devoted to studying the
best way to teach that subject. Computer science is largely missing this,
baring some work at universities like CMU and parts of Europe (that I know
of).

Until computer science actually starts actively researching how to teach
computers science and can produce real research (not their weird non-
statistics non-experiments) then these kinds of claims are unfounded. In that
event I have to rely on similar research from things like Math and Physics
Education which both disagree with you.

~~~
B-Con
Huh, I majored in math, and I can't say that I understand what you mean.

In the lower division (first two years), there is often a separation of core
classes between math majors and non-math majors. Calculus, for example, and
linear algebra. They served as weeder courses for the math majors so that
those who couldn't do good math wouldn't advance onto the upper division
courses were they would continue to not do well. In addition, there was a
somewhat misc. logic class for math majors that was very strict and served as
a choke-point weeder class taken just before you would go onto upper division
work.

For non-math majors, the Calculus classes were kind of weeder classes, but
that wasn't their purpose. If you were an engineering, the engineers had their
own real classes that were their own weeder classes. Etc.

But the two tracks disappeared after lower division. Once you were in 3rd
year, there was largely only one set of classes. A couple of them had less
rigorous counterparts for those only pursuing a teaching certification, but
that was about it.

You are right that CS stands out. It's an unorganized field that is still
trying to define itself. (Consider how young it is, relatively speaking.) Some
schools want it to be mostly theory, others mostly software engineering, most
are somewhere in between. There's disagreement over which languages to teach,
how to teach them, etc. It's all somewhat awkward, and it needs to be
reformed. I'm hoping that eventually we can split it into two separate fields,
like CS theory and software engineering, and do a better job teaching both.
(FWIW, I also majored in CS, so I saw both sides of the coin.)

------
ctdonath
<http://xkcd.com/1053/>

------
atarian
Interesting conversation between Zed and Jeff:
<http://twitter.com/#!/zedshaw/status/202471821264691200>

------
billjings
This was a good post, but the entire thing may not be worth as much as the
first sentence. So much of learning is about how you approach the state of
ignorance in yourself and others.

------
jumpbug
Really, because of resentment? Really, sometimes I think people read way too
much into people's commentary. How do these petty war of words make it to the
top of Hacker News anyway.

------
readme
Most of the things zed said here I agree with. What I don't agree with is his
attitude toward classic programming books like k&r and GoF. Those books are
gold, and I'm sorry, but if you want to master something you need to study the
classics. Ask any academic.

Lcthw is great for beginners but once you've read those you need to move on to
the more serious stuff.

~~~
chris_wot
Someone, I suspect the same person, has been downvoting all the folks who
don't find GoF and k&r and who are willing to say it.

I think this is wrong. If you don't agree, please post a response. Don't hit
the downvote button. These are valid comments, and while you might not agree
they certainly add to the discussion.

~~~
readme
I wasn't aware. Can't be me because I can't down vote yet. My approach would
have been to suggest the books, not scoff at those who haven't read them.

------
icco
Thank goodness. While I don't think everyone should learn to code, I totally
agree that we need to support those who want to learn.

Thank you Zed.

------
Kilimanjaro
Like everything in life, only 1 out of 100 will excel at what they do, 90 will
drop out before they even start and 20 will become average coders (yeah I suck
at math).

But we all have to try even if we fail, the world needs that unique specimen
to move us all forward.

------
phomer
The world doesn't need 7 billion programmers, and if people really do want to
learn programming then they should learn to do it correctly since the world
doesn't need anymore badly written software (we have enough already).

Paul.

------
alexobenauer
Here's the first submission to this argument that I can get behind. Well said.

------
Proleps
I find it weird that people are arguing that the title isn't part of the
original article. As far as I'm concerned "Please Don't Learn to Code" is his
opening argument.

------
dansul
Great post. I especially like the last two paragraphs.

------
TheRevoltingX
This post makes way too many assumptions as to the causes of Jeff's post.
Reminds of psychology, complete reach-around post.

------
crazy_eye
If Jeff's goal was to create a widespread dialog over a mostly unquestioned
trend, he succeeded wildly.

~~~
rsanchez1
He just brought out all those bitter against everyone wanting to learn to code
out of the woodwork. All those who wanted everyone to code in the first place
are still here, still wanting everyone to learn to code.

------
matthew-wegner
I have a programmer friend, and his website simply says:

 _I make computers do what I want. Often people pay me to make computers do
what they want instead. Lately unity3d.com is doing that a lot._

(<http://lucasmeijer.com/>)

------
chris_wot
I agree with him largely. Then he goes and wrecks his argument by stating that
the "Gang of Four" is an "antiquated tome". I can't work out where this
resentment business is coming from here.

~~~
roguecoder
It's 17 years old, dry and contextless. It can be useful, but it'd be way down
on the list of books I'd hand to someone and not only because I'm assuming
anyone starting out today is programming in Python, Ruby or JavaScript. It
certainly isn't necessary reading to be a good programmer, by any means.

~~~
chris_wot
So what it it's 17 years old? I read it, but it's not contextless, nor is it
dry. It has plenty of context - albieit in an older form - the creating of a
word processor. You can still grasp this today! In fact, the information on
Factory patterns is still used today, same with Singletons and a raft of other
items - including Prototypes, which is what Javascript uses.

Please note that I didn't say that I'd provide it to a newbie coder. I merely
pointed out that it's not an "antiquated tome". It's very definitely useful,
and has been so for some time and remains that way. In fact, I actually think
that Zed nailed it on many points in that article.

I find it very interesting that my comment was downvoted merely because
someone disagreed. There was nothing inflammatory about my response, nor was
there anything factually incorrect. I offered a differing opinion, of which
someone decided they would hit the downvote button, instead of doing what they
should do - post a response.

------
kailashbadu
I can't believe Zed Shaw doesn't get it.

------
freshhawk
This whole internet argument is a sad Fox News style ignorant pundit circus.

No one differentiates between learning how computers work and learning what
programming is and learning the craft of software development. There is a huge
difference between learning math and becoming a mathematician. They just
bounce between both meanings of "learn to code" and assume whichever supports
their point at that moment.

No one has mentioned that a lot of people probably can't realistically learn
to code. There is actual research on this (start here:
<http://www.eis.mdx.ac.uk/research/PhDArea/saeed/>). Before you debate
something perhaps people should make a small attempt to be not completely
ignorant of our current knowledge.

So Zed, I'm a fan, but when you say "I'm proud to say I am the proto-enabler
of the meme that everyone can learn to code". You are saying you are proud of
propagating bullshit, which doesn't seem like you. It's nice and new agey feel
good and everything, but it probably doesn't reflect reality.

So Atwood waffles on the issue making no real point and then Zed attacks a
strawman that only vaguely resembles what was actually said if you squint
really hard.

Meanwhile no one talks about the actually interesting facts like that there
are a lot of people who have serious trouble learning to think in algorithms.
Of course there are a whole bunch of learn to code startups who probably left
that out of their pitch decks because snake oil sells better so that's not a
surprise. If all you read is tech sector marketing material you don't really
have a good grasp of reality after a while.

And to those who are worried about an invasion of poorly educated and poorly
trained anti-intellectual brogrammers? Firstly: I've only seen this argument
from strawmen, not from anyone actually arguing it. Secondly: Well no shit.
This is already happening. There is an incredible new technological tool, high
rewards for skill with this tool _and_ new methods of training people more
quickly and efficiently than ever before. There _will_ be more programmers out
there. More programmers means worse programmers on average. This is what
happens during booms. Combine that with the increased popularity of an anti-
intellectual bent to attitudes about programming and it's awfully reminiscent
of the patent medicine / snake oil boom when medicine was the hot new thing.

This has happened to a lot of industries and somehow things end up better at
the end of it. I know everyone thought that the tech industry would be the
lone historical exception because we're all so damn smart, but that was a
stupid thing to think. There is going to be a massive explosion of incompetent
(more incompetent?) programmers and a significant lowering in code quality for
a few decades, we're only at the beginning of the shitstorm. When it's over we
might actually have a mature industry and have learned how to manage software
projects which would be nice.

------
georgieporgie
Ugh. I'm sick of this ridiculous debate. Further, this was a horribly written,
inflammatory, wildly up-its-own-ass misinterpretation of the original.

------
mkramlich
I think what Zed missed, and possibly Jeff as well, is that only a small
percentage of people really have what it takes, brain-wise, to do programming.
And not just to do programming but to not hate it. The intersection of those
two things. And I'm not talking just about writing a simple recipe-like
script. But really understanding how computers work, memory, networking,
recursion, threads, etc. Just as only a small percentage of people have the
right mental chops to do advanced math or physics, etc. Writing Hello World?
Sure, just about anyone can "learn" to write that. Writing an operating
system? No way in hell. You'd be surprised by what _most_ people are like. Not
us. Not the typical Hacker News type. Not geeks. But most people. Not saying
they're dumb. They're just different. Really. Trust me. You'll understand,
hopefully, after you've been on the planet a few decades in the real world.

~~~
marvin
I've heard this sentiment before, but to me it sounds like an incredibly
arrogant glorification of computer programmers. How are the best computer
people different from, say, the best doctors, mechanical engineers or
industrial designers? Specialization and deep knowledge of a particular domain
isn't unique to the IT industry.

------
rsanchez1
I'm sure Isaac Newton would have resented the fact that calculus is so easy
nowadays (at least the calculus required to understand his writing) that high
school students have it on their curriculum.

On second thought, he probably would have been delighted that even teens can
use his work.

------
derekorgan
noob

------
dageshi
The Drama.

