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.
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.
Technically most people can get by without literacy, general education, birth control or hand washing. But it's just offensively elitist to say that "most people" don't need things which enrich life and improve opportunities significantly, in aggregate.
How do you know who should be permitted to learn to program (or apply the calculus, or read)? Who are you to say what is a "more effective route"?
Nobody has said anything about doing a half-baked job. Nobody was born an expert, not even you. It's ridiculous to aim elitist bully talk like "half-baked job" at beginners when writing shit code is an unavoidable developmental stage every programmer goes through.
While we are discussing half-baked jobs, let's talk about a status quo where huge numbers of people are doing piles of mind numbing, annoying labor (and making mistakes) just because programming has not been applied. In many cases the funding and justification are not there to improve the process, in no small part because of a traditional culture which tends to programming as effete play or impossible wizardry or both. Do you really mean to suggest that there is NO value in automating or improving processes (or constructing things for yourself) unless you are working full time as a 'professional' developer? The technology is getting easier and easier for people without deep computer science background, so you are on the wrong side of history.
Programming is an incredibly valuable development of this century. It's as much part of the modern human heritage as banking or oral contraceptives. It should be applied in MANY more areas than it is applied.
This macho, elitist attitude is one of the biggest things which keeps a ton of women out of programming and related fields. Treating programming as some kind of venue for manhood comparison, and excluding people who do it for the love and the pursuit of knowledge, is detrimental to the art. It's a bad and unproductive attitude and it should stop yesterday.
So putting the sentence "Please don't learn to code" out of context is just not fair and misleading. He wrote this post like he wrote everything else he does, with his style. You have the right not to like it but please do not state your opinion as fact. How does the post is more useful ?
The idea that everyone should learn to program doesn't disturb me at the least but it's just a waste of time. Comparing programing langage with english, french, russian or whatever is just a joke. The day the first words of a baby will be the binary representation of "Mommy" I'll rethink about it.
In truth those who want to get involved in programming for whatever reason (as a hobby, professionally, by curiousity ...) are those who should learn to program. So let's drop the hype, pleadge and let's keep those good websites which help to get started. I find knowing how to program really useful, empowering, fun and challenging but not everyone has to feel the same way and not every programmer feels like I do. That is what Jeff Attwood tells in this post, while humouring himself with the movement. So please learn to code, if you want to but you'll still be cool if you don't.
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".
Programming is a super-power, even if you only know a little bit. Knowing how to program gives you abilities to create unequaled in the history of the world. I think that the more people who know how to program, the better, even if they "suck" by comparison to a rock star programmer (or alternately a fat guy who knows C++ [1]).
Maybe 95% of people will never be lead programmer on a commercial product, but almost everyone ends up, e.g., searching Google -- and not being afraid of complex search results can mean the difference between digging through six pages of garbage and getting relevant results right away because you weren't afraid to use the minus operator or other more "advanced" search features.
And probably most people in the workplace have to deal with an Excel spreadsheet from time to time -- being willing to dig into creating more complex formulas because they aren't afraid of lists of functions with parameters would be an obvious side effect of knowing a bit of code.
Regardless, Zed is saying that no one should be telling you that you SHOULDN'T learn to program, period. And I agree.
[1] http://betabeat.com/2012/05/04/pro-tip-from-silicon-valley-s...
But it's silly to criticize people's reading comprehension on the basis that they read the article rather than just the headline.
The post title was an exaggeration, like almost all of his blog post titles are. If you actually read the content of the post, you realize that he clearly wasn't actually saying.
Here's a quick illustration:
Ad Hominem: Jeff Attwood gets off on being an ass. Therefore he is wrong.
Not Ad Hominem: Jeff Attwood gets off on being an ass. Incidentally, he is also wrong.
Seriously, understanding of logical fallacies seems to be in very short supply around HN. If I didn't know any better I would think I'm over at Reddit.
It does not mean an argument in which a person insults the person claiming the thesis. Insults rarely add anything to an argument but that is a different matter.
Also note that an ad hominem doesn't need to be insulting - it could be a very polite statement such as "This argument is incorrect because Mr Atwood is unqualified to discuss matters of education as he is not himself an educator". This is not really insulting (though I would argue that Jeff is in a way an educator) but is still an ad hominem.
I didn't see anywhere in Jeff's post where he was saying he wanted to make beginners look like losers. What he is saying is that it isn't necessary for everyone to learn how to code, that a lot of people seem to have a passing interest in it but aren't really serious about it. His example is the fact that Mike Bloomberg is using it as a cheap political stunt, that his time as Mayor would be better spent accomplishing other things. Now, that's somewhat a matter of opinion, maybe Mike Bloomberg really is serious about wanting to learn how to code, but somehow I doubt it. This is a far cry from Jeff wanting to make people feel like losers.
"He's telling other people's kids to not learn to code. He's telling adults who want to improve their lives, or just learn something new. He's telling people from other professions that no, programming won't help them. Why? Why would Jeff tell people to quit and just let the professionals do this? Because of resentment."
That's a complete assumption, in no way backed by anything Jeff said. I didn't see any "resentment" in that post, but you can read into anything you want and make any wild assumptions you want, as long as it makes your post more sensational.
He's not saying that your's or anyone's kids shouldn't learn how to code, he's saying that he doesn't see it as a basic skill we should be teaching children, along with reading, writing, and math. I don't necessarily agree with this, but I get where he is coming from and I'm not going to grossly exaggerated Jeff's position just to make my point.
So, yah, maybe Jeff is wrong, but you're post certainly didn't address what he was actually saying.
His example seems to be more him having a bone to pick with Mayor Bloomberg. Maybe, having a mayor that extols the virtue of learning something will help improve student absenteeism. Who knows?
First of all it sounds much better than "I read it, he is correct. This is why I wrote mine." considering that he is refuting the idea presented.
Being biased is simply being opinionated and luckily Zed Shaw's opinion is that everyone should/can learn code. This is why he has free books, which actually teach some programming to everyone.
Hint: other people's articles, just like yours, consist of more than a title.
Your argument isn't evidence for anything at all. There's a big difference between reading and coding: reading is a very useful method of communication. Everyone should be literate just like everyone should be able to speak. Coding, on the other hand, is much more along the lines of plumbing than language.
The basic crux of the issue for me is this: you can control a society via the flow of information through that society. Both reading and more recently, programming are activities intimately connected to the flow of information through modern society. Along with an understanding of programming comes a greater understanding of computers to computer networks to privacy issues and all manner of things that more people should be thinking about more conciously, regardless of whether they wish to program as a career.
While no doubt the flow of material through plumbing pipes is also quite important for societies in general, I don't think an understanding of plumbing affords quite the same insights and protections against being potentially manipulated by the powers that be as one might acquire through the pursuit of reading and programming.
Coding really is a specialized job. For sure, some people would be better off learning it because it can be useful, but everyday people don't need to know how to code just like they don't need to know how a car works. All they need to know is how to drive safely, or use the computer securely.
And really, I don't get this whole "learn to code, learn how your computer works" idea. When I first learned ruby, I didn't magically gain an understanding of filesystems and networks and all those other things. My dad, on the other hand, who doesn't know how to code, in fact he didn't even know what a kernel was, can fix your computer up in a jiffy (hardware and software both, particularly windows). He's in fact still better than me at this, because he knows all the intimate little details of the windows UI and what each thing does, what each error probably means.
So the point is, you don't need to learn how to code to know how to use a computer well, and learning javascript won't really help you with that either. If all you want is to know how to protect your computer from the powers that be, don't learn to code; just listen to what the experts have to say on the subject.
I think people are falsely equating all the marks of a good programmer as being the benefits to learning how to program.
"It makes you logical, methodical, organized", etc etc.
Yes, these are all qualities you'll find in a good coder. However I don't think programming is a good way to teach these thoughts! NOT AT ALL!
I learned all those things by writing English papers. I had lots of problems writing in my early years, so I studied, and worked hard. I learned how to outline my thoughts. I learned how to properly revise a work. I learned how to organize my thoughts into logical units. I learned how to make those logical units flow into one another. I learned how to arrange those units so that they each make sense in context. I learned how to target a unit to a specific audience.
I think programming would've been a terrible way to learn those skills. English is at least somewhat forgiving. Even if your sentences aren't perfect, the general idea still comes across.
Learning to program involves weird and obscure syntax, you're constantly fighting with the compiler, you're dealing with stack-traces a mile deep every time you make a mistake.
Programming is an incredibly challenging way to learn problem solving.
Obviously I found that challenge to be worthy of pursuit. Certainly we shouldn't be discouraging anyone from learning how to code. At the same time though, I think it's incredibly offensive to say that everyone should know|learn how to code.
No doubt your father is an acomplished man, but he would be a better Windows power user or sys admin if he was comfortable with PowerShell. One of my pet peeves are server admins who don't thnk they need to know any programming and thus don't truly understand the requirements of the developers who interact with their servers.
I feel that we're discussing things (if you'll excuse the cliché) too far inside the box. If one has a very blinkered view of the advantages that programming can provide then yeah, it's just a highly specialised tool, useful only to a few. But that's not what programming is to me. To me, its about communication, expression of ideas and discovery.
You say that learning JavaScript won't help you to understand your computer better. I disagree. By learning JavaScript, you will involuntarily learn more about one or more web browsers and perhaps from there, you may become more informed on how information is transmitted across the web and perhaps from there, you may learn to better protect yourself through more consistent use of encrypted data transfer, just as an example. You are right when you say learning to program does not magically impart knowledge of file systems or networking but when I learned Ruby, I would have had to try pretty damn hard not to learn by osmosis at least something I didn't know before about these topics while I was learning the language.
So yes, in the narrowest sense, programming is not currently as important as reading. But what does the public potentially gain if we suggest that it is? And I predict that the distance between ideal and reality will close as the decades pass.
Programming is not a specialized job and it does not require specialized knowledge. Even idiots can program. The fact that you can program shows that you had interest and access to computers but it does not put you in a special club. Programmers ARE everyday people, not a priestly caste who can be distinguished from birth. And in the last few decades their numbers have dramatically increased - with each generation's clueless and accidental beginners becoming the next generation's experts.
We don't tell people "please don't learn any math" or "please don't learn any geography" even though most people will not become specialists or need a specialist's understanding. These are still generally useful things and things which make you an educated and modern person. We don't know where they will be useful or to whom. It benefits many more individuals to know something about these, and it greatly benefits our society that many individuals know something about them.
"just listen to what the experts have to say" is something that started to change as of the Gutenberg Bible, thank God.
More recently similar arguments were made against educating freed slaves in the USA
I think it was reasonable for some people not to learn to read 200 years ago.
The American Revolution was spread through pamphlets passed out at the local tavern. Newspapers played a major role in educating the people about the Revolution and passing around the text of the Declaration of Independence, Articles of Confederation, and Constitution, so no, it was not reasonable for some people not to learn to read 200 years ago.
By the way, if Gutenberg's Printing Revolution made the written word so cheap that pamphlets could be handed out to as many people as possible, I don't think there would have been many who could not afford books 200 years ago. If there were many who didn't use the reading skill much, then there wouldn't have been all the hoopla over the Stamp Act the British imposed on the American colonies. You sorta need to know how to read to make any use of stamps 200 years ago.
Nice article by the way, and thanks for your work.
Natural languages are ambiguous. One of the reasons why they’re more fun than programming languages.
Even that would be stupid. You probably don't know if you need it before you know it.
Also it could be argued that everybody "needs" to know how to code, in that pretty much everyone spends a good portion of their lives in front of a computer, and knowing how to automate its behavior would make life easier for a lot of people.
The funny thing is, pretty much everyone needs plumbing skills too. That doesn't mean everyone is gonna learn them, or should become a master plumber. But knowing a thing or two about it certainly can't hurt.
Zed doesn't exaggerate Jeff's statements. The original statements are already exaggerated and caricatural, portraying reality as a binary thing : either you can program, or you can't. Things are not that simple