Sacha, I am a fan of yours and usually like your material, but I just can't agree here. You took so much for granted in this post. Deploying a website that 10,000 people will see is not trivial, whether you personally did it or not. Here's my beef, specifically:
1. You already knew how to design. In fact you are a very talented and well known designer. If you didn't have design skills, chances are a huge huge amount lower that anything you put out will make the rounds - design is super important, and you of all people know that. And that's something you need to learn as well, so tack that on top of the time it takes to learn how to code.
2. Learning how to code != making websites. In fact, they are very different. To make a website, not only do you need to either have a designer on hand or be good at design as mentioned above, but you also need to have a very good understanding of how the web works. That means filesystem structure, http, ftp, domain names, web hosting, then add html and css to the javascript you've been working on. THEN if you want your site to be anything more than static, throw in back end code, databases, web frameworks, etc. on top of that.
This is a MASSIVE stack of things to learn, and I don't know a single person who knows all of this and doesn't work full time doing this stuff. "Learning to code" seems like a cute thing you can make a resolution to work on as a hobby, and maybe it is. You might be able to pick up the bare basics of programming in your free time, if you work hard. But making something significant like you claim here is a completely different deal.
3. You never dispute or even address the main point behind Atwood's article - that while programming is great to learn, the trend that 'everyone should learn to program' as a base skill along with reading, writing, and math is ridiculous. It's nowhere near as important as these other skills, and he makes a number of other valid points as well which I'm sure you don't disagree with. You argument was simply that programming is cool, so you should learn it. Sure, I agree, and I would have said the same if I only read the title of Atwood's article. But I feel like the way you contested it was uninformed and completely missed the point.
3. You never dispute or even address the main point behind Atwood's article - that while programming is great to learn, the trend that 'everyone should learn to program' as a base skill along with reading, writing, and math is ridiculous. It's nowhere near as important as these other skills, and he makes a number of other valid points as well which I'm sure you don't disagree with. You argument was simply that programming is cool, so you should learn it. Sure, I agree, and I would have said the same if I only read the title of Atwood's article. But I feel like the way you contested it was uninformed and completely missed the point.
I'll dispute the main point.
As computers permeate more of our everyday lives it becomes necessary to understand them on some level. Nobody needed to learn how to read until there were books everywhere. No one needs to be an English major to pick up a book and learn to read. The benefits we know are enormous to adopting this skill.
But lets consider a world where books were everywhere but only an elite few felt it was useful to teach people to read. Knowledge as we well know is power and if only a few had the ability to pass on their knowledge amongst themselves then they would have a significant advantage over those who cannot read. The unfortunate masses who could not read would never know the full extent of the forces that work against their best interests. How could they?
Now we're in a world where there is more computing power in your pocket than that which sent human beings to the moon and back. Yet the non-programmer has no idea just how useful it is. The only literacy they have with computers are as appliances. They don't realize that these devices carry with them processes that may or may not operate in their best interest and they have no way of knowing that without being able to at least have a basic literacy of computers and programming.
Becoming a master at programming is still a difficult task that few will achieve. Just as becoming the next Nabokov or Salinger won't come to every person who picks up a pen and paper. However that doesn't mean we don't need to teach everyone how to write. We give them the basics and its up to them to use those tools if they so choose and pursue their own paths. However if we keep them in the dark then they'll have no hope.
Teach everyone to code. Computing is emerging as a new medium of expression and the technology is embedding itself in our every day existence. People need to be literate so they are able to understand the consequences and benefits of this technology. It's 2012 and most people I know still think computers are practically magic. They should know better and its our fault for not educating them.
As computers permeate more of our everyday lives it becomes necessary to understand them on some level.
You can say the same thing about any number of technologies that permeate our (western, and increasingly developed) lives - plumbing, electrical, cars, landscaping etc. While it's true that we should have some understanding of these technologies (checking the fluid levels in a car, snaking s small pipe, running A/V on your PC), expecting everyone to learn programing is like expecting everyone to learn pipefitting, carpentry, etc.
There is only so much time one has, folks should focus on their passions and let the experts take care of everything else.
With only an intuition for basic mathematics, the ability to read, and maybe a layman's understanding of fundamental physics one can come to understand enough about carpentry and plumbing to solve their own problems.
The same isn't true for computers. We don't teach computation in schools. To learn programming you have to scratch your own itch or wait until you get to college (in most places). There's no intuition about computation, no fundamentals that are taught and widely adopted. The average person doesn't sit down at their computer and understands what is going on, even in some small intuitive way, when they save their spreadsheet or click on a link in their email that takes them to their banking site (and subsequently they cannot even put together why, months later, they are the victim of bank fraud). Without even a basic understanding of the fundamental principles of computation these people have no idea how this technology is affecting their lives.
I'm not saying that everyone needs to be a professional programmer any more than everyone needs to be a master carpenter. We don't teach math in early education in the hopes that every child becomes a mathematician. We do it because it gives them tools to navigate their world and overcome the challenges of modern life. So too must we teach them computation. We don't want them all to become programmers but it is useful to know so that they can have the intuition to solve their own problems and start using computers as tools.
Your conclusion on time is exactly why learning basic programming stuff like Variables, If then and For loops are powerful.
That is because unlike plumbing, electrical, cars, landscaping and like reading, writing and numeracy, basic programming augments your cognitive toolkit. In the least, it enhances rigorous and corner case thinking. It also makes learning abstract concepts easier, it allows one to reach beyond analytic solutions of equations and to access large amounts of data and automate the handling of said data.
If a computer can enhance many aspects of people's lives then they get more utility in having more powerful basic mechanisms of interaction for automating a program's behaviour. Having basic computer literacy would have definite positive utility for society.
Learning to program is not like learning to fix a car, it is like learning to drive a car instead of hiring a driver.
Agree. And along the same lines an entire industry grew around the fact that computing products before Apple (particularly DOS, Windows etc.) were difficult enough that the average person (say someone who might be urged to code now) did not have the desire or aptitude to learn how to do it themselves. I'm sure everyone knows many of these people who giggle about how stupid they are with computers and have no interest in learning how to fix the simplest of problems.
Some people just lack the appropriate base skills to fool with computers and certainly programming. They will always need a "tech guy" and have no desire to change that for a reason. It's not that simple to them. Not because they are stupid but because it's not their thing.
>I vehemently disagree on this. Apple has made a silly fortune proving the contrary.
Totally orthogonal.
Apple cares about UI and attractive industrial design, and was the first companies to really get that in the computer space (and later in the MP3, smart phone, and tablet spaces). Good UI design is good for experts and novices alike. Do you really think that most people who used DOS computers once upon a time would really want to go back to 100% command-line interactions? (Yes, I know there are exceptions in the Unix crowd who swear that vi IS sliced bread and that anything not on the command line sucks...but there are probably 10x as many "expert" developers who swear by GUIs. Can't please everyone.)
The key difference is that, if you shy away from programming, there are huge categories of things you will never be able to do. And until you know how to program, you won't even know what those things are.
The "learning to read" analogy (elsewhere in this thread) is good. It's a powerful skill that, until you know it, you don't even know what it is you're missing.
I like some of Apple's products. I don't disagree that design is important and that the interface should hide the complexity where the complexity is meaningless to the use experience.
However, that has nothing to do with the point I was making.
1. You already knew how to design. In fact you are a very talented and well known designer. If you didn't have design skills, chances are a huge huge amount lower that anything you put out will make the rounds - design is super important, and you of all people know that. And that's something you need to learn as well, so tack that on top of the time it takes to learn how to code.
We often take for granted the effort and expertise needed to do something that we can do so easily or has become second nature to us. This is sometimes why the better you are at something, the more painful it is to watch someone else do it poorly.
1. You already knew how to design. In fact you are a very talented and well known designer. If you didn't have design skills, chances are a huge huge amount lower that anything you put out will make the rounds - design is super important, and you of all people know that. And that's something you need to learn as well, so tack that on top of the time it takes to learn how to code.
2. Learning how to code != making websites. In fact, they are very different. To make a website, not only do you need to either have a designer on hand or be good at design as mentioned above, but you also need to have a very good understanding of how the web works. That means filesystem structure, http, ftp, domain names, web hosting, then add html and css to the javascript you've been working on. THEN if you want your site to be anything more than static, throw in back end code, databases, web frameworks, etc. on top of that.
This is a MASSIVE stack of things to learn, and I don't know a single person who knows all of this and doesn't work full time doing this stuff. "Learning to code" seems like a cute thing you can make a resolution to work on as a hobby, and maybe it is. You might be able to pick up the bare basics of programming in your free time, if you work hard. But making something significant like you claim here is a completely different deal.
3. You never dispute or even address the main point behind Atwood's article - that while programming is great to learn, the trend that 'everyone should learn to program' as a base skill along with reading, writing, and math is ridiculous. It's nowhere near as important as these other skills, and he makes a number of other valid points as well which I'm sure you don't disagree with. You argument was simply that programming is cool, so you should learn it. Sure, I agree, and I would have said the same if I only read the title of Atwood's article. But I feel like the way you contested it was uninformed and completely missed the point.