This would be better titled "The 'What Schools Don’t Teach' video does not accurately depict the median life of a programmer".
Which is true, and he gives a lot of points to support it, and I'd nod my head for the entire article if that was the title.
From my perspective though none of his points seem to support his chosen title, "Programming is not for everybody."
(It gets a lot sillier when you realize that nobody would title an article "Logic is not for everybody.")
John McCarthy (AI, Lisp) once said something akin to: "I think everyone should learn programming. It's the language we'll use to talk to our servants."
I think there is something in programming for everybody. It doesn't have to be compiler design or making the next facebook. Even if its just understanding what an algorithm means, so that you can write clear directions (a recipe, after all, is just an algorithm for preparing food, complete with for/while loops, etc).
Programming is just logic plus communication. And being able to convey ideas more clearly and more accurately is a delightful skill that will find uses all over life, regardless of if your job is programmer, EMT, chef, etc.
>John McCarthy (AI, Lisp) once said something akin to: "I think everyone should learn programming. It's the language we'll use to talk to our servants."
I kind of see coding (or scripting) similar to how I see writing. Not all of us are good enough, motivated enough, or would even enjoy writing for a living. But because the written and spoken language drives much of the world today, it's important to have a strong grasp of language, be able see how it is being used for or against you and be able to use it to your advantage.
The ability to read and write code is similar. Being able to write even simple scripts or simple data filters can multiply your productivity or give you new perspective on how to frame problems and approaches to solutions.
Without a strong grip on the written and spoken language, we are at mercy of others who wield it better than us. Code is in many ways similar to this. I may never be a a master writer or a master programmer (or even a 'good' one for either), but knowing the basics can't hurt.
Of course, we should note that writing and coding will have "diminishing returns" for most everyone. We should exercise discretion in how far we should take our pursuit and have good judgment on what we expect to get from either discipline.
I think you're completely wrong. I don't see why you think an article title "Logic is not for everybody" is silly. Really, you think it is silly? I am not attempting any sort of humor here but have you ever met members of the general public? Logic is clearly not for everyone; I don't think that is a controversial statement at all, not in the slightest.
> "being able to convey ideas more clearly and more accurately is a delightful skill that will find uses all over life, regardless of if your job is programmer, EMT, chef, etc."
Very well said!
The "programming is not for everybody" arguments seem to come from looking at programming as the activity of coding at the master level. Anyone who's gotten anything done by asking someone to do it, or has found some information by asking a question of someone has engaged in the core activity of programming - i.e. the thinking behind what needs to be done and what information is needed for some task at hand and the communication of that thinking.
The making aspect of programming should also not be overlooked. Just as making your own table is fun even though you may not have made a good table by carpentry standards, or you may paint something to decorate your wall even if won't go for a penny on ebay, coaxing a machine to help you with something is also satisfying.
You imply that logical thinking is a desirable trait for everybody, which may not be necessarily true. I think that programming teaches you a way of thinking that you cannot really get rid of after acquiring it, and though good for a lot of people, may not be good for everybody.
For example some artists may not want to "limit" their thought process to just logical, to more freely connect with and express their emotions (by no means am I implying that programmers lack of emotional connections). But after being trained to program it may be quite difficult to think any other way but logically.
I want to live in a world where I can find and talk to somebody who has not learned to program, who does not have any idea how computers work, but is exceptional in some other completely unrelated field, to see how they think, what their opinions are (which could be very different from my own yet extremely interesting). A world where (nearly) everybody has learned to program means it won't be possible (or at least very difficult) for me to do that.
Getting everybody to program of course has its many benefits to society, but the "What Schools Don’t Teach" video and similar articles always seem to imply that there is absolutely no downside, which I personally believe may not be true.
> It gets a lot sillier when you realize that nobody would title an article "Logic is not for everybody."
> Programming is just logic plus communication.
Fair enough, but you are defending programming as a hobby or academic pursuit. That is not the context established by the original video, which was programming as a profession.
Typically:
Professional programming ≈ Logic + Communication + Fat Salary + Bureaucracy/Politics - Predictability - Sufficient Time/Dev Resources - Personal Time
If anything, perhaps some ambiguity can be removed by titling it "Professional programming is not for everybody".
John McCarthy (AI, Lisp) once said something akin to: "I think everyone should learn programming. It's the language we'll use to talk to our servants."
I want to use this great quote to advertise a programming class I'm teaching. Can't find the original. Any ideas?
Of course, the underlying goal is not that everyone should become a programmer, but instead that everyone should be mildly proficient in what programming is, how it works, and can hopefully accomplish minor tasks by writing simple bits of code. In order to get to this less ambitious goal, code.org aims higher.
If a million more students set out to become programmers, only a small percentage of them will become professionals, much like any other endeavor. But if we can even get to a point where this dabbling in code happens for a majority of young people it will be transformative enough.
I agree, and I think you get at a key concept: literacy vs. mastery.
Relatively few people will become professional software developers, but everyone will live a life impacted by technology. Learning the basics of coding empowers you to live in the modern world. e.g. Your phone is no longer magic, it's just very impressive.
Even then, there's a wide spectrum of "professional coders." There are many expert data analysts who write scripts all day (in R or Python... perhaps Stata, SPSS, etc). They're not kernel hackers, but they know why vectorization is important, and it makes them better.
There are a million office workers who tweak VBA macros, and do it better because they took the time to learn why variable types are. They're not Microsoft-certified anythings, but code empowers them to be better.
So, I think there's a strong argument for code literacy as an educational objective. Just like math literacy or actual literacy, it's an empowering foundation of knowledge.
Imagine you are an artist, and you are hired to paint very boring "hotel art" your whole life. Yes, your job would suck and you might as well not learn to paint.
The vast, vast majority of programming jobs suck (if yours does not, you are lucky). Every single one of my jobs has been pretty boring, and many of them were relatively exciting compared to your average programming job.
But I love to program. Just not for other people. I spend all of my spare time programming. To me, programming is a video game with millions of unsolved challenges, each with millions of creative solutions. The more time I invest in programming, the more empowered I feel, as if I have a second augmented brain waiting to be instructed.
I agree with the majority of the author's messages. That said, programming may or may not be for everyone, but there is definitely no harm in just trying it out.
One of my neighbors makes a living painting. It is unlikely you've heard of her unless you're in this regional art market. It's a job. She works every morning. She makes money painting pieces which sell, and she has a good idea about what will and won't.
But she loves because she loves making art and she loves making art so much that she uses her non-working time to make art that she knows won't sell.
Her "hotel art" or rather big house art is both a means to an end and a creative outlet. The choice is not one or the other.
So you shouldn't teach arithmetic, algebra, music, art, literature, chemistry....or any number of other things because everyone isn't going to use those things professionally?
Personally I think programming is a better thing for grade schoolers to spend their time doing than so many other things. I think a very large number of them would find it fun, and less tedious than most of the other things they do, while increasing their logical and analytical skills as well as giving them a practical skill.
Of course programming is not "for everyone", if nothing else simply because the economy wouldn't work properly if everyone was a programmer.
I do think that everyone with a reasonable intellect can learn some amount of programming literacy though.
The point of having universal programming education is not so that everyone can become a software engineer, it's so that you can have a society where >50% of people in the workforce understand the difference between an if and a for loop and have some notion that you can nest computer programs inside each other using functions etc.
When I was at school we all had to play football (soccer), the notion that I would ever become a professional football player is laughable but I assume that I learnt something about fitness, strategy and teamwork from the exercise.
On the economic note, I'm actually quite surprised at the level of altruism present in the industry. Although most won't become professionals, the rate of matriculation into the workforce will still be greater than that of football players, and will still have adverse effects. Proliferation of programming can only lead to a more saturated labor force and lower wages. Yet, people still enthusiastically champion programming education...
It just seems odd to me. Very few other professions are keen on diminishing their employment prospects in the name of education.
Eventually, though, everyone who has a job will be a programmer, because every other type of job will be done by robots. Everyone else will be leisurely unemployed. Or starving, whichever...
You can use similar arguments to bash on any other profession: the median life of a lawyer, md, medical researcher, engineer, architect etc. is just as boring and unpleasant.
The whole point of life is to get your life as far from the median-zone as possible, because all the fun is in the extremes (it can be the extreme of algorithm design, software engineering or maybe another extreme that is the edge of programming with another field, like social science - an such an "edge" extreme may actually require very basic coding skills!). Even if you're a farmer, you can find the extreme zones of farming do some kind of "extreme/experimental farming". The "fun" part with programming is that you can easily bounce from "median zone" to extremes, and even easily fall in the negative ones when you end up not even having rent money...
What the OP doesn't get is that there are tons of other industries that have distorted and glamorous brands attached to them. Many smart, ambitious people set out to become doctors, bankers and lawyers because they can make good money, work on interesting challenges and be respected at cocktail parities. Sure they have lots of downsides too, but the benefits are more emphasized.
If some of those smart ambitious people became programmers because they got to see the benefits (financial or otherwise) of being a developer, that would not be a bad thing.
The distinction for me, and the point I made in my TEDx talk "You should learn to program" [1] (shameless plug), is that learning to program is like learning to read and write. It's the new literacy. Just because you know how to read and write, you aren't a writer.
Two hundred years ago if you knew how to read and write, it probably meant that you were in an eclectic group of people whose profession was reading and writing (just like knowing how to program 15 years ago meant you were probably a professional programmer), but we've reached the point now where computers and the code to talk to them are so ubiquitous that you're doing yourself a disservice if you don't understand the rudimentary building blocks of coding (just like knowing the rudimentary building blocks of mathematics helps you be a better world citizen - you don't have to be an expert in second order differential equations to survive in daily life, but you need a working knowledge of fractions and percentages).
> Two hundred years ago if you knew how to read and write, it probably meant that you were in an eclectic group of people whose profession was reading and writing
While there weren't the quality of literacy statistics that there are now, most of what I can find indicates that in at least Northern/Western Europe and North America, literacy, while not as near universal as today, was something that the majority of the population possessed 200 years ago, not limited just to people whose professional occupation was reading and writing (certainly, things like a "Farmer's Almanac" make little sense if people whose profession is "farmer" aren't, at least reasonably frequently, literate.)
The video is clearly meant to be inspiring. A lot of people think programming is too hard for them or not accessible at all, but that's simply not true.
It's worth inspiring them to give themselves a shot. Of course, not everyone will be good at it, like all things, but it's better to try it out and find out.
It's horrible to say to someone, "Hey there, coding is actually pretty hard, and while there are some really great perks to knowing it, you'll probably fail at getting there, and even if you don't fail, you might not end up at the place that has all of the awesome perks, just some of them, so you basically shouldn't even try."
That's clearly an exaggeration of what he's saying in the article, but I'm sick of professional programmers trying to discourage non-programmers from trying out coding. It can only be a good thing for them to learn a little, so let them have dreams even if they aren't totally realistic. Who knows, many of them may reach them.
Why? It is generally preferable to occupy one's time with productive action. Learning to program is going to be a futile exercise for 90% of people, and will not result in any change in income or overall happiness for 99% of them. We should not be encouraging people to attempt things from which the won't derive any benefits.
It doesn't make sense to abandon pragmatism in the name of "dreams." People should be encouraged to improve talents that they do have, not coerced into attempting inordinately arcane ones for which they have no affinity. This is true not just of programming, but of all skilled practices.
Programming is too difficult and the opportunity cost is high to assert that everyone can and ought to learn to program. It's best to be forthright with this fact towards those who ostensibly want to learn, but may just be infatuated with the idea that they can make Facebook.
"Hey there, coding is actually pretty hard, and while there are some really great perks to knowing it, you'll probably fail at getting there, and even if you don't fail, you might not end up at the place that has all of the awesome perks, just some of them, so you basically shouldn't even try."
"You basically shouldn't even try" doesn't necessarily follow because we don't know if the person we're talking to is one of the people that will fail. Otherwise, I'd say that quote is exactly what most people should hear.
It's cool man. The barrier to entry on programming is that the craft itself is hard. We don't need to toast their pants to let them know it's not for everyone. They'll figure that out quickly on their own. There's very little hand holding in this industry. People will help you but you have to really show you've tried first.
Extremely well said. I too found myself recently in a position where a friend asked me if I could teach him how to code. I often found myself saying that coding is easy, coding is just a tool that you have to master (like a farmer has to master [insert agricultural tool here]). But I knew this is actually false. Coding is easy only after you get the hang of it.
The thing is, although coding IS just a tool, mastering this tool is not for everyone. Even if you have a strong mathematical background, coding will not come easy to you and you most likely will not end up being a guru. Robert Smith is absolutely right - coding is not for everyone.
I find coding to be different than anything else I've done before. It requires a different, sometimes weird way of thinking.
People DO start from humble beginnings and rise to become decent programmers.
One of my cousins dropped out of high school and spent many years driving a truck delivering potato chips. He eventually impregnated and wedded a young lady whose parents insisted he get a GED and go to college on their dime. He earned a computer science degree and now makes a respectable living creating medical device code.
Don't give me this "only the sun-touched chosen few of heaven get to hack code" line of tripe. It's utterly ridiculous. Programming is a skill and you should give it a chance just like you maybe tried juggling at some point.
I didn't actually see it as that. I saw him pointing out that his brother might be motivated from a financial reason to become a programmer. I thought of it a rant on the state of the industry as it exists and why work as a programmer even in the Valley is the same as the skill that you learn.
Better title: "A programming career is not for everybody". Hell, I came to realise it is not for me, and I have been employed as a programmer for years.
Coming up next, "Painting Is Not For Everybody, Math Is Not For Everybody, ..."
I was about to blog an article like this yesterday, but it seems I do not have to anymore.
Another thing I might add to this exceptional piece of work is that whenever you force anyone to do anything, even if it is intrinsically "fun" (such as mathematics, science, or history, and, yes, coding) it becomes something that people don't want to do anymore.
I'm a teenager; 14 years old to be specific, and I see this on a daily basis. I used to teach my classmates algebraic concepts that they didn't understand fully, and once it "clicked" for them, they usually said something along the lines of "Wow, that is really cool!"
So, this is the main conflict we're facing. You raise a generation of "forced coders," and suddenly, nobody will want to code anymore, which is one problem. However, the other problem is that if you DO end up making forced instruction fun for kids, you will end up with mediocre programmers who think a "Hello World" is the equivalent of earning a CS degree, and startups will have to sift through dozens of perhaps low-quality applications rather than just sifting through the few that have the dedication to learn how to code.
Here's the solution: make CS more accessible to students. Have a bunch more electives on CS and encourage kids to take them. Trying to make coding/programming a part of the curriculum will take away time from important subjects such as composition, literature, science, and mathematics, all of which are arguably now more important than ever with test scores at record lows.
"Running across the court is a necessary element in basketball, but it is certainly not what is sufficient to be successful at it. In fact, you can run across the court so perfectly every time, but be completely unsuccessful."
I do not understand why success is so important. I sometimes play football although i know i am pretty bad at it. Because it makes me happy. One does not have to be good at programming as far as he/she wants to explore this area, learn new things and see if s/he is capable of doing it.
I would say that programming is for everybody who is interested in how stuff works. While a career as a programmer might not be for everyone, it can be useful for someone who needs to create presentations or word documents to be able to write basic macros in vb, or for people who have websites to understand what is going on in the html/javascript. I think that is the thrust of the argument of the "everyone should code" brigade. Not that we should all be full time java/ruby/c# programmers.
(By the way, those people obtained their own wealth largely by hiring what they say they want.)
practicing what was called "the mushroom theory of management." It was an old expression, used in many other corners of corporate America. The Eclipse Group's managers defined it as follows: "Put 'em in the dark, feed 'em shit, and watch 'em grow."
This is true. And not everyone can write like shakespeare, but that doesn't mean that those who aren't going to ever be very good at it don't benefit from learning the basics of reading and writing.
Most people can learn how to read and write, and yeah, even though most people never get very good at either one? even basic literacy vastly improves your economic value.
I would argue that programming is a lot like basic literacy; Sure, most people aren't going to be able to do anything very complex; but if you can't handle a spreadsheet? you are at a serious, serious disadvantage.
Personally, I think most people would be vastly better off if our schools taught some very basic variant of python (or basic or something) High school should teach average and above children the basics of putting together a database interface with something like 'access' (or some other GUI... personally, I think something open-source would be most appropriate, but I don't know anything open-source that is as dead simple as microsoft access of the '90s.)
But yeah, things like programming spreadsheets? that should be taught to everyone; like basic math and reading, pains should be taken so that even the worst students get some of it.
Eight months ago I committed to learning "to code". At 31 the world has changed a lot since the days when I played around with BASIC in the early 90s.
There so much to learn. The most helpful book so far has been Lesley Anne Robertson's, Simple Program Design. It's a basic algorithm book utilising pseudocode. My greatest and most recent victory has been completing the first two Project Euler challenges. The first challenge there is basically the famous FizzBUzz test.
* Warning * If you hire me because I can FizzBuzz and conclude a fortiori that I can code then you're gonna have bad time :D
Hopefully it means that I do have the potential to code though..
It seems to me that a lot of the quick fixes out there aren't going to cut it on their own. Codecadamy is something I've used a little bit and it's a great learning tool for language specifics, but I don't feel like it taught be to think like a programmer. It doesn't break newcomers free from the old question, "what's the best language for a beginner". A slightly deeper understanding is required for that.
[+] [-] simonsarris|13 years ago|reply
Which is true, and he gives a lot of points to support it, and I'd nod my head for the entire article if that was the title.
From my perspective though none of his points seem to support his chosen title, "Programming is not for everybody."
(It gets a lot sillier when you realize that nobody would title an article "Logic is not for everybody.")
John McCarthy (AI, Lisp) once said something akin to: "I think everyone should learn programming. It's the language we'll use to talk to our servants."
I think there is something in programming for everybody. It doesn't have to be compiler design or making the next facebook. Even if its just understanding what an algorithm means, so that you can write clear directions (a recipe, after all, is just an algorithm for preparing food, complete with for/while loops, etc).
Programming is just logic plus communication. And being able to convey ideas more clearly and more accurately is a delightful skill that will find uses all over life, regardless of if your job is programmer, EMT, chef, etc.
[+] [-] hkmurakami|13 years ago|reply
I kind of see coding (or scripting) similar to how I see writing. Not all of us are good enough, motivated enough, or would even enjoy writing for a living. But because the written and spoken language drives much of the world today, it's important to have a strong grasp of language, be able see how it is being used for or against you and be able to use it to your advantage.
The ability to read and write code is similar. Being able to write even simple scripts or simple data filters can multiply your productivity or give you new perspective on how to frame problems and approaches to solutions.
Without a strong grip on the written and spoken language, we are at mercy of others who wield it better than us. Code is in many ways similar to this. I may never be a a master writer or a master programmer (or even a 'good' one for either), but knowing the basics can't hurt.
Of course, we should note that writing and coding will have "diminishing returns" for most everyone. We should exercise discretion in how far we should take our pursuit and have good judgment on what we expect to get from either discipline.
[+] [-] dinkumthinkum|13 years ago|reply
[+] [-] aufreak3|13 years ago|reply
Very well said!
The "programming is not for everybody" arguments seem to come from looking at programming as the activity of coding at the master level. Anyone who's gotten anything done by asking someone to do it, or has found some information by asking a question of someone has engaged in the core activity of programming - i.e. the thinking behind what needs to be done and what information is needed for some task at hand and the communication of that thinking.
The making aspect of programming should also not be overlooked. Just as making your own table is fun even though you may not have made a good table by carpentry standards, or you may paint something to decorate your wall even if won't go for a penny on ebay, coaxing a machine to help you with something is also satisfying.
[+] [-] jd007|13 years ago|reply
For example some artists may not want to "limit" their thought process to just logical, to more freely connect with and express their emotions (by no means am I implying that programmers lack of emotional connections). But after being trained to program it may be quite difficult to think any other way but logically.
I want to live in a world where I can find and talk to somebody who has not learned to program, who does not have any idea how computers work, but is exceptional in some other completely unrelated field, to see how they think, what their opinions are (which could be very different from my own yet extremely interesting). A world where (nearly) everybody has learned to program means it won't be possible (or at least very difficult) for me to do that.
Getting everybody to program of course has its many benefits to society, but the "What Schools Don’t Teach" video and similar articles always seem to imply that there is absolutely no downside, which I personally believe may not be true.
[+] [-] cpressey|13 years ago|reply
[+] [-] mcgwiz|13 years ago|reply
> Programming is just logic plus communication.
Fair enough, but you are defending programming as a hobby or academic pursuit. That is not the context established by the original video, which was programming as a profession.
Typically: Professional programming ≈ Logic + Communication + Fat Salary + Bureaucracy/Politics - Predictability - Sufficient Time/Dev Resources - Personal Time
If anything, perhaps some ambiguity can be removed by titling it "Professional programming is not for everybody".
[+] [-] jmmcd|13 years ago|reply
I want to use this great quote to advertise a programming class I'm teaching. Can't find the original. Any ideas?
[+] [-] lhnz|13 years ago|reply
[+] [-] gfodor|13 years ago|reply
If a million more students set out to become programmers, only a small percentage of them will become professionals, much like any other endeavor. But if we can even get to a point where this dabbling in code happens for a majority of young people it will be transformative enough.
[+] [-] edraferi|13 years ago|reply
Relatively few people will become professional software developers, but everyone will live a life impacted by technology. Learning the basics of coding empowers you to live in the modern world. e.g. Your phone is no longer magic, it's just very impressive.
Even then, there's a wide spectrum of "professional coders." There are many expert data analysts who write scripts all day (in R or Python... perhaps Stata, SPSS, etc). They're not kernel hackers, but they know why vectorization is important, and it makes them better.
There are a million office workers who tweak VBA macros, and do it better because they took the time to learn why variable types are. They're not Microsoft-certified anythings, but code empowers them to be better.
So, I think there's a strong argument for code literacy as an educational objective. Just like math literacy or actual literacy, it's an empowering foundation of knowledge.
[+] [-] gavanwoolery|13 years ago|reply
The vast, vast majority of programming jobs suck (if yours does not, you are lucky). Every single one of my jobs has been pretty boring, and many of them were relatively exciting compared to your average programming job.
But I love to program. Just not for other people. I spend all of my spare time programming. To me, programming is a video game with millions of unsolved challenges, each with millions of creative solutions. The more time I invest in programming, the more empowered I feel, as if I have a second augmented brain waiting to be instructed.
I agree with the majority of the author's messages. That said, programming may or may not be for everyone, but there is definitely no harm in just trying it out.
[+] [-] brudgers|13 years ago|reply
But she loves because she loves making art and she loves making art so much that she uses her non-working time to make art that she knows won't sell.
Her "hotel art" or rather big house art is both a means to an end and a creative outlet. The choice is not one or the other.
[+] [-] robbrown451|13 years ago|reply
Personally I think programming is a better thing for grade schoolers to spend their time doing than so many other things. I think a very large number of them would find it fun, and less tedious than most of the other things they do, while increasing their logical and analytical skills as well as giving them a practical skill.
[+] [-] jiggy2011|13 years ago|reply
I do think that everyone with a reasonable intellect can learn some amount of programming literacy though. The point of having universal programming education is not so that everyone can become a software engineer, it's so that you can have a society where >50% of people in the workforce understand the difference between an if and a for loop and have some notion that you can nest computer programs inside each other using functions etc.
When I was at school we all had to play football (soccer), the notion that I would ever become a professional football player is laughable but I assume that I learnt something about fitness, strategy and teamwork from the exercise.
[+] [-] ruswick|13 years ago|reply
It just seems odd to me. Very few other professions are keen on diminishing their employment prospects in the name of education.
[+] [-] kyllo|13 years ago|reply
[+] [-] nnq|13 years ago|reply
The whole point of life is to get your life as far from the median-zone as possible, because all the fun is in the extremes (it can be the extreme of algorithm design, software engineering or maybe another extreme that is the edge of programming with another field, like social science - an such an "edge" extreme may actually require very basic coding skills!). Even if you're a farmer, you can find the extreme zones of farming do some kind of "extreme/experimental farming". The "fun" part with programming is that you can easily bounce from "median zone" to extremes, and even easily fall in the negative ones when you end up not even having rent money...
[+] [-] jasonshen|13 years ago|reply
If some of those smart ambitious people became programmers because they got to see the benefits (financial or otherwise) of being a developer, that would not be a bad thing.
[+] [-] christiangenco|13 years ago|reply
Two hundred years ago if you knew how to read and write, it probably meant that you were in an eclectic group of people whose profession was reading and writing (just like knowing how to program 15 years ago meant you were probably a professional programmer), but we've reached the point now where computers and the code to talk to them are so ubiquitous that you're doing yourself a disservice if you don't understand the rudimentary building blocks of coding (just like knowing the rudimentary building blocks of mathematics helps you be a better world citizen - you don't have to be an expert in second order differential equations to survive in daily life, but you need a working knowledge of fractions and percentages).
1. http://tedxtalks.ted.com/video/You-Should-Learn-to-Program-C...
[+] [-] dragonwriter|13 years ago|reply
While there weren't the quality of literacy statistics that there are now, most of what I can find indicates that in at least Northern/Western Europe and North America, literacy, while not as near universal as today, was something that the majority of the population possessed 200 years ago, not limited just to people whose professional occupation was reading and writing (certainly, things like a "Farmer's Almanac" make little sense if people whose profession is "farmer" aren't, at least reasonably frequently, literate.)
Now, if you said four hundred years ago...
[+] [-] zachgalant|13 years ago|reply
It's worth inspiring them to give themselves a shot. Of course, not everyone will be good at it, like all things, but it's better to try it out and find out.
It's horrible to say to someone, "Hey there, coding is actually pretty hard, and while there are some really great perks to knowing it, you'll probably fail at getting there, and even if you don't fail, you might not end up at the place that has all of the awesome perks, just some of them, so you basically shouldn't even try."
That's clearly an exaggeration of what he's saying in the article, but I'm sick of professional programmers trying to discourage non-programmers from trying out coding. It can only be a good thing for them to learn a little, so let them have dreams even if they aren't totally realistic. Who knows, many of them may reach them.
[+] [-] ruswick|13 years ago|reply
It doesn't make sense to abandon pragmatism in the name of "dreams." People should be encouraged to improve talents that they do have, not coerced into attempting inordinately arcane ones for which they have no affinity. This is true not just of programming, but of all skilled practices.
Programming is too difficult and the opportunity cost is high to assert that everyone can and ought to learn to program. It's best to be forthright with this fact towards those who ostensibly want to learn, but may just be infatuated with the idea that they can make Facebook.
[+] [-] 47uF|13 years ago|reply
"You basically shouldn't even try" doesn't necessarily follow because we don't know if the person we're talking to is one of the people that will fail. Otherwise, I'd say that quote is exactly what most people should hear.
[+] [-] ianstallings|13 years ago|reply
[+] [-] dragos2|13 years ago|reply
The thing is, although coding IS just a tool, mastering this tool is not for everyone. Even if you have a strong mathematical background, coding will not come easy to you and you most likely will not end up being a guru. Robert Smith is absolutely right - coding is not for everyone. I find coding to be different than anything else I've done before. It requires a different, sometimes weird way of thinking.
[+] [-] mncolinlee|13 years ago|reply
People DO start from humble beginnings and rise to become decent programmers.
One of my cousins dropped out of high school and spent many years driving a truck delivering potato chips. He eventually impregnated and wedded a young lady whose parents insisted he get a GED and go to college on their dime. He earned a computer science degree and now makes a respectable living creating medical device code.
Don't give me this "only the sun-touched chosen few of heaven get to hack code" line of tripe. It's utterly ridiculous. Programming is a skill and you should give it a chance just like you maybe tried juggling at some point.
[+] [-] eshvk|13 years ago|reply
[+] [-] roma1n|13 years ago|reply
Coming up next, "Painting Is Not For Everybody, Math Is Not For Everybody, ..."
[+] [-] kunai|13 years ago|reply
Another thing I might add to this exceptional piece of work is that whenever you force anyone to do anything, even if it is intrinsically "fun" (such as mathematics, science, or history, and, yes, coding) it becomes something that people don't want to do anymore.
I'm a teenager; 14 years old to be specific, and I see this on a daily basis. I used to teach my classmates algebraic concepts that they didn't understand fully, and once it "clicked" for them, they usually said something along the lines of "Wow, that is really cool!"
So, this is the main conflict we're facing. You raise a generation of "forced coders," and suddenly, nobody will want to code anymore, which is one problem. However, the other problem is that if you DO end up making forced instruction fun for kids, you will end up with mediocre programmers who think a "Hello World" is the equivalent of earning a CS degree, and startups will have to sift through dozens of perhaps low-quality applications rather than just sifting through the few that have the dedication to learn how to code.
Here's the solution: make CS more accessible to students. Have a bunch more electives on CS and encourage kids to take them. Trying to make coding/programming a part of the curriculum will take away time from important subjects such as composition, literature, science, and mathematics, all of which are arguably now more important than ever with test scores at record lows.
[+] [-] olive_|13 years ago|reply
I do not understand why success is so important. I sometimes play football although i know i am pretty bad at it. Because it makes me happy. One does not have to be good at programming as far as he/she wants to explore this area, learn new things and see if s/he is capable of doing it.
[+] [-] slurgfest|13 years ago|reply
[+] [-] concerto|13 years ago|reply
[+] [-] eevilspock|13 years ago|reply
Literature Is Not for Everybody.
Art Is Not for Everybody.
Science Is Not for Everybody.
The sooner we start funneling people into narrower education channels, the sooner we'll get to our Brave New World.
[+] [-] reikonomusha|13 years ago|reply
[+] [-] Create|13 years ago|reply
practicing what was called "the mushroom theory of management." It was an old expression, used in many other corners of corporate America. The Eclipse Group's managers defined it as follows: "Put 'em in the dark, feed 'em shit, and watch 'em grow."
https://en.wikipedia.org/wiki/Mushroom_management
[+] [-] lsc|13 years ago|reply
This is true. And not everyone can write like shakespeare, but that doesn't mean that those who aren't going to ever be very good at it don't benefit from learning the basics of reading and writing.
Most people can learn how to read and write, and yeah, even though most people never get very good at either one? even basic literacy vastly improves your economic value.
I would argue that programming is a lot like basic literacy; Sure, most people aren't going to be able to do anything very complex; but if you can't handle a spreadsheet? you are at a serious, serious disadvantage.
Personally, I think most people would be vastly better off if our schools taught some very basic variant of python (or basic or something) High school should teach average and above children the basics of putting together a database interface with something like 'access' (or some other GUI... personally, I think something open-source would be most appropriate, but I don't know anything open-source that is as dead simple as microsoft access of the '90s.)
But yeah, things like programming spreadsheets? that should be taught to everyone; like basic math and reading, pains should be taken so that even the worst students get some of it.
[+] [-] CubanSandwich|13 years ago|reply
Eight months ago I committed to learning "to code". At 31 the world has changed a lot since the days when I played around with BASIC in the early 90s.
There so much to learn. The most helpful book so far has been Lesley Anne Robertson's, Simple Program Design. It's a basic algorithm book utilising pseudocode. My greatest and most recent victory has been completing the first two Project Euler challenges. The first challenge there is basically the famous FizzBUzz test.
* Warning * If you hire me because I can FizzBuzz and conclude a fortiori that I can code then you're gonna have bad time :D
Hopefully it means that I do have the potential to code though..
It seems to me that a lot of the quick fixes out there aren't going to cut it on their own. Codecadamy is something I've used a little bit and it's a great learning tool for language specifics, but I don't feel like it taught be to think like a programmer. It doesn't break newcomers free from the old question, "what's the best language for a beginner". A slightly deeper understanding is required for that.
CarlH was very useful starting point: http://www.computerscienceforeveryone.com/