Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Programming Is Not for Everybody (symbo1ics.com)
247 points by reikonomusha on March 4, 2013 | hide | past | favorite | 151 comments


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.


Hell, even the ability to bodge together a damned Excel worksheet with some magic formulas can be very powerful in the right hands.

I, for one, think that everyone should learn practical basic statistical analysis skills.

I also disagree with the "learn math!" crys of developers; I rarely find myself using more than basic algebra (variable substitution) in most tasks, and you don't get into the abstract calculus stuff until you're working on solving graph problems, /which is usually a bad idea/ because some researcher already has a better algorithm than you're thinking of using for the given problem. I would also assume that "learn to code!" doesn't mean "learn pointer math and understand how to balance a b-tree!", so let's not pretend that those kinds of things will matter to beginners.

TL;DR learn a /scripting/ language relevant to your interests (because you're more likely to stick with it if it interests you), and don't sweat the math until you absolutely have to. I would argue that /grammar/ is much more important in programming and understanding verbs vs. nouns is of great importance.

If we could get every sports fan to learn how to work a spreadsheet to track their favourite teams and be able to calculate the odds of X team beating Y team, I feel like the world might be just a tiny bit better.

If we could get single parents to learn how to project grocery costs and compounded interest on not paying that credit card bill this month in favor of buying ______ (ignoring how awful that situation is), I feel like the world might be just a tiny bit better.

If teachers had systems to conveniently track student homework completion / success rates, they may be able to more efficiently target their lessons to focus on those topics where students did the worse, and I feel like the world might be just a tiny bit better.

I'd also argue that "Personal Finance" and "Common Legal Matters" would be incredibly useful classes as /required/ for highschool graduation.


>TL;DR learn a /scripting/ language relevant to your interests (because you're more likely to stick with it if it interests you), and don't sweat the math until you absolutely have to

Yeah, it's pretty amazing what you can do with a little Ruby, Python, or Javascript, with maybe a year or two of casual study and practice. That's about the level of programming ability that most people should have.

Ideally, some HTML/CSS and SQL on top of that so you can build a basic "full-stack" CRUD app, or customize a basic framework (Rails or similar) app.

That level of knowledge would make millions of non-programmer workers vastly more efficient at their jobs, but there isn't really any need for most people to go any deeper than that.


Interestingly enough, discreet mathematics is also math. Surprisingly enough, every single programmer uses that thing everyday.

So math is useless.


I think the difference is we all come in contact with writing every day. So literacy is required if you want to get around in the world and if you want to communicate with others. Almost no non-programmers encounter code in their day to day lives. To me it doesn't make since for the majority of people to learn to code, because without practice their skills are just going to atrophy. Why add a ton of new people who can only write shitty code? We already have enough of those, I don't see the reason to add more. Programming well is hard and if you don't spend a lot of time with it you'll never get good.


> 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.

And this is why it stroke me as odd when one of my younger (and intelligent) non-IT colleagues told me a couple of months ago "I cannot compose this fancy school essay, why cannot they ask us straight what they need written down?".

That's when I realized that even plain writing (as in composing) is not for everyone, there are people who back off when they hear that they need to "invent" stuff to be put on paper/screen/word editor.


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.


You know, at one point, somebody would have been writing that same comment for literacy. Or, as the case may be, not writing it :P.

I have met members of the general public. (Wow, I can't think of how to use that phrase without sounding at least a little bit patronizing. Fine. I am a little bit patronizing.) Many of them should have taken a logic class at some point. At least enough not to fall for obvious nonsense. At least enough to reason and argue avoiding fallacies and obviously incorrect positions. At least enough, in short, to think properly.

Maybe a deep understanding of different logic systems is not for everybody. They probably don't need to study the predicate calculus. But logic in general? Everybody needs at least a bit.


Well, from what I've seen in people that have not just taken logic classes but passed them, I'd say that there really is an innate difference - not in skill or experience or learning or knowing, but in the mindset; and a significant proportion of people don't/can't/won't "think properly" as you state it.

And it doesn't seem to be changeable at college level - I've no idea if it is innate or learned at an early age, but for adults there is a difference between "logical" people and "intuitive" (for lack of a better word) people.

For the first type it is trivial to teach/learn things such as logic, computing, troubleshooting, etc - even if they have no prior experience and have always been working and studying in unrelated areas such as linguistics or psychology. I've taught them and seen that - if I get an HR girl in an Excel course that 'thinks logically', within a few weeks she'll be able to do more with data than a number of non-logical-thinkng CS grads.

For the second type, I've seen them spend a decade with both college+masters studies and lots on-the-job experience, and they still haven't changed by that - they may remember the concepts of logic and even pass an exam on them, but they don't/can't/won't apply them. They aren't dumb - they may be very intelligent, hard working and effective at they know; but still they won't "reason and argue avoiding fallacies and obviously incorrect positions" even the next day after taking a course about logical fallacies. As you say, they are not "thinking properly", but that's how they are happy and achieving results and they'll stay that way.


Everyone keeps equating programming with literacy. Why. This makes no sense. We have a legion of IT professionals that have no idea about programming at all. Could it be the only analog to "literacy" is really, simply the ability to use computers? Literacy comparisons is just too far. Literacy, in terms of reading and writing are much more fundamental.

Anyway, the reality is sure, logic is not for everyone. It clearly is not. I'm not talking about graduate level logic is not for everyone; I mean plain old logic is just not for everyone.

We may want it to be. But that's not reality. I think the world would be better of if everyone was at the same intellectual level of Einstein, but that's not reality.


In this case, I'm equating logic with literacy, which is more than reasonable. And it also happens that logic and programming are extremely similar (isomorphic, even).


> Everybody needs at least a bit.

This is a bit of a myopic view that assumes everyone has the capability to learn logic.

(Un)surprising truth: some people are dumb, and simply can't grasp it.


I think his argument was that it should be, not that it currently is.


Well, I mean actually that it is not in the sense that it never will be. It may not sound nice but just basic logic is not for everyone. Now if you mean some future utopia or something ... that's not really interesting to me. In such a case then you could never fault someone for saying "everyone should be maximally good at everything" but it has no verisimilitude with reality.


There are questions of cause and effect. Is the fact that a lot of people suck at logic and process based thinking because us coders are a special breed, or is it because they didn't get decent exposure to it in school?


> "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.


And this is why whiteboard programming interviews where syntax matters are toxic. I almost have the cojones these days to walk out as soon as they pull that crap, but it's a big red flag to me when they want the REAL regex to validate an e-mail address (though typically asking them if they want "the most naive implementation or the RFC 2822-compliant one" is enough to shut them up.

http://www.regular-expressions.info/email.html if you don't get why this is a bad idea (it's the equiv. of memorizing pi to the thousandth digit).


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.


So I want to live in a world where I can talk to people who have never learned counting or arithmetic. So I think we should make sure those people still exist, by denying a certain percentage of the population a chance to learn about them.

Seriously, what the hell?


I once knew a.old lady that never learned math, and never cared to.

I asked her, what was her age.

" oh sweet child, I have no idea, and it does not bother me, because it is not important, what is important is that I am old.now, and I will die soon, and that before being old, I did good things with ny life. You are young, do your best, strive for it while you can, and when you get old, enjoy what remains of your life. Don't care about your age, or the numbers on it, just live and do it, when the time.comes.to it be over, it will be over, it is useless to predict that."

And then, I was amazed at the wisdom.of a old lady that don't believed in math.


Knowing your age is pretty poor justification for knowing basic maths. How about understanding the true cost of a loan, or how much you should save for your pension, or whether the 3-for-2 offer at your local supermarket is good value?

If you don't know basic maths, you are likely to spend much of your life getting ripped off left, right and centre.


You are stretching the issue a bit far IMO. Also counting and arithmetic is kind of hard NOT to learn even if you do not specifically learn it from somebody or in school because it is too essential to living in society. Programming is hardly the case.

And the whole thing is not about my selfish reasons to satisfy my curiosity, it's about diversity in the thinking process of people in society. Programming changes how some people think and reason, and it may not be the best for everybody in the entire world to learn, regardless of profession. That is my entire point.


It's an absurd line of reasoning. You attacked the presupposition that everyone should learn basic logic with the further presupposition that learning to reason logically is detrimental to the thought process of certain classes or society.

Aside from being needlessly exclusionary, the entire notion that learning basic programming "warps" your way of thinking is about as ridiculous as the inverse - that learning about color theory and basic art & design irrevocably turns us into illogical über right-brained caricatures.


I never said people should not learn basic logic. What I said/meant was that learning to program may shift how people approach problems, in a way that favors logical thinking, which may not be ideal for everybody. Programmers tend to approach and react to issues/problems with reasoning, but for some people (maybe some artists for example), they may prefer to be more emotional and irrational.

In my opinion, programming is not as simple of other forms of knowledge such as color theory. Knowing color theory doesn't mean you can paint well, just as knowing the syntax of a language doesn't mean you can write good programs. Programming is more about a way of thinking, and my entire point was that this way of thinking may not be beneficial/desirable to everybody in society.


Perhaps comparing it to color theory is a stretch, but I think comparing it to something like 'learning how to see' as an artist is apt, and highlights the absurdity of the position you've taken.


But knowing color theory doesn't make you a bad programmer. Why in hell would knowing basic programming inhibit your emotions?


so, an alternate example 1. speaking english will give people advantages 2. learning a new language may quite well introduce you to new ways of thinking 3. so you'd prefer that not everyone had the opportunity to learn english, regardless of the individual benefit to them, in order to maintain the kind of society you want to be in.


That is not the case at all. I'm not saying that we shouldn't give the opportunity to learn programming to everybody, I'm saying that trying to get everybody to learn programming (which, in the ideal case, the end goal would be pretty much everybody on the entire planet learns to program when they were young) may not be all good.

Just like we shouldn't force everybody to learn English. People who can speak English may think quite differently from people who can only speak Korean or Chinese or German, and I don't think it's good to try to get everybody on the planet to learn to speak English. Part of it may be cultural, as with learning languages (programming languages included) you are inevitably exposed to the culture.


As a non-native english speaker I assure you everything has a cost even a supposedly universal good thing like english. The more fluent I am at english the more my thought process changes. There are already cases where I find myself unable to relate to the simple joy that people around me seem to get for free.


Slightly off topic, there's evidence that not having the language to articulate a concept can mean it is incredibly difficult to understand. http://www.guardian.co.uk/education/2004/oct/21/research.hig...


I agree that some programmers seem to get 'stuck' in a certain way of thinking, but I'm immediately reminded of Seymore Papert, in Mindstorms (1980), describing an ideal state beyond that:

"By deliberately learning to imitate mechanical thinking, the learner becomes able to articulate what mechanical thinking is and what it is not. The exercise can lead to greater confidence about the ability to choose a cognitive style that suits the problem. Analysis of "mechanical thinking" and how it is different from other kinds and practice with problem analysis can result in a new degree of intellectual sophistication. By providing a very concrete down-to-earth model of a particular style of thinking, work with the computer can make it easier to understand that there is such a thing as a "style of thinking". And giving children the opportunity to choose one style or another provides an opportunity to develop the skill necessary to choose between styles. Thus instead of inducing mechanical thinking, contact with computers could turn out to be the best conceivable antidote to it. And for me what is the most important in this is that through these experiences these children would be serving their apprenticeships as epistemologists, that is to say learning to think articulately about thinking."


Luckily some people's minds are quite resilient to becoming irreparably warped by logical thinking. :) I think you're overestimating how easy it is to fundamentally change the way someone thinks, as are the people who think anyone can get good at programming. There's practically no downside to letting everyone try programming because many will either quit or fail. But the upside is that some people will find out they're good at it.


You imply that logical thinking is a desirable trait for everybody

It's certainly a desirable trait for everyone whom we allow to vote.


The politicians of many "democracies" would disagree. They want the voters to be as stupid as possible.


> For example some artists may not want to "limit" their thought process to just logical, to more freely connect with and express their emotions [...]. But after being trained to program it may be quite difficult to think any other way but logically.

Is there any evidence for this assertion? I've noticed changes in the way I think after years (not a couple classes) of programming, but I highly doubt basic programming knowledge in any way inhibits creative ability. However, if there is reason to think so, I'd be fascinated to read about it.


I think programming warps your thinking when you do it for 10 hours a day 5-7 days a week, not so much if you do 1 semester of it at school.


I want to live in a world where I can find and talk to somebody who has not learned to write, who does not have any idea how the alphabet works, but is exceptional in some other completely unrelated field.


After the third paragraph, I interpreted the title as "Programming is Not [the Career Choice] for Everybody".


I got that sense as well. Which led me to the ask: so what is the point of this post? To spend many more paragraphs essentially saying what we already know.

Cooking is not for everybody. But we still learn to cook. Mechanics is not for everybody. But I was still out their working on the car yesterday. Politics is not for everybody. But I still vote. Accounting is not for everybody. But I still do my taxes and balance my budget.

It can all be summed up with one sentence: Every job is not for everyone.


> 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?


I went looking for it, and it appears in a handful of places:

https://www.google.com/#hl=en&sclient=psy-ab&q=%22le...

But the sparseness of the hits leads me to think it's not a real quote, or it's been reworded -- something like that.



That search (and lots others I tried) just returns the above HN post.


A recipe is not an algorithm, it is a heuristic.


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.


Perhaps hotel art is not the right analogy that OP should have used?

Here is a better analogy: Think of hiring an artist to paint the walls of a building, where painting them is defined by a rigid instruction set by a PM, we have two week sprint cycles where your progress on each wall is measured. You are actively encouraged with generous redbulls to crush painting the wall and work long hours painting the wall. You furthermore see that industry is obsessed with dozens of articles on whether people should paint their walls horizontally or vertically. There are people talking about making their first millions painting a building which has odd geometrical shapes.

Yet, the reason you got into painting/art was because you loved to design and create. You loved the fact that art school gave you the opportunity to do that. You are sometimes hopeful when you go interviews and you are asked questions on design, ask to create something amazing. Hoping that maybe this time things will be different and you won't be asked to paint fucking walls.


Agreed :)


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.


The demand still dramatically outstrips the supply for the time being and programming has a social network effect. Every device/store/application provides a wealth of data and interaction that other programmers can improve, work on or analyze. 3000 stores ordering by paper catalogues isn't nearly as useful or programmable as those same stores with computerized systems.

FitBit's value increases with each app that uses it's interface to do something new. Each of those apps has it's value increased by something like FitBit coming out. Some areas of programming are competitive but most are collaborative.

Also I think most programmers see programming as a force of good in the world. Technology can protect us, help us find what we want, and even get rid of boring jobs for us, most people who write code that does something like this want others to be able to do the same. Of course this is the altruism you are talking about I suppose.


That's not really the point. Or, rather, that really shouldn't be the point. There will always be the silly realities and quirks of computer systems that will take some intense local domain knowledge to work around, and for that we will always need a class of programming professionals. But programming entails a hell of a lot more than the world of computers.

The words program and procedure existed before computers did; computers merely forced us to acknowledge the need for and develop a formal means of describing and discussing procedure. That kind of knowledge isn't bound by any particular class of machine, nor by any language. It applies to almost every aspect of complex endeavour. It allows people to think about how they are doing things. Just as a Karnaugh map can help a circuit designer see redundancies in logical inputs, a codified description of a process—any process—can help people see ineficiencies and redundancies in what they are doing (or what they are having other people do). Perhaps we don't really want to Taylorize the world, but if people can find ways to eliminate wasted effort, then they benefit whether they ever program a computer or not.


I think most professions are reasonably happy to educate people when given the opportunity.

Sure, more programmers might lead to labour saturation but the bigger risk is that an emerging market country sees the opportunity and captures the demand first which will cause first world programmers to have to compete with hordes of lower priced competitors rather than a smaller number of domestic ones.


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).

1. http://tedxtalks.ted.com/video/You-Should-Learn-to-Program-C...


> 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.)

Now, if you said four hundred years ago...


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.


I guess 90% people don't know what they are good at. They can't spend time polishing their talent when they don't know what it even is. I accept people should not be coerced into it but ir may not be as futile as you assume.


"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.


The author comes off as an elitist snob.

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.


I'm sure I'm not the only one who reads this as a rant against his own brother for being naive. It's like he's saying, "how could he possibly ever become as good as me?" I highly doubt that his brother is much more of a screw-up than my cousin was when he moved from trucking to programming.

The video oversells by hyperbole a little bit, but it's really not too far off of the mark. The bigger issue is tech schools who sell programming as if it's not ever difficult or tedious work. Of course, they do the same thing for every "exciting profession."


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 think success is mentioned because of all the people who have begun to enter the industry just to cash in somehow.


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.


Math Is Not for Everybody.

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.


I'm wondering if there is any other insight you could provide beyond a simple and naive extrapolation of the title.


(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."

https://en.wikipedia.org/wiki/Mushroom_management


>Not everyone can program (beyond simple tasks)

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.


Some thoughts from a n00b at the coal face:

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/


Almost everyone in the US knows how to read, but only a small percentage are actually great writers and most people are downright terrible at it.

The same goes for programming. It should become a prerequisite at schools because software is indeed "eating the world" but only a small percentage of people who learn how to program will ever become highly competent programmers.


"And it never stops, because the work is never ending. There’s always some feature to add or some bug to fix. There will always be a reason for you to have to stay an extra hour or two."

So the point to the whole video is marketing coding as a profession as there is current and future high demand for the profession. The video isn't a documentary.


Get some basketball players, musicians, and billionaires to make programming seem cool to kids, so that 10 years later, you can get new Java developers for $40,000/year. Brilliant.


Come on now, there are very few things that are for everyone...what is the point of this article?


To complain. He could change his life. He could code fun games. It's his own choice to code things uninspiring. Many people work in careers not right for them. Why is he doing something he doesn't enjoy when there is so much other opportunity for him to enjoy his life.

Making things come to life through code is a joyful delight. Writing an entire complex programming at once in a rush, compiling it, running it, and it actually works... first few times, hundredth, thousandth time sometimes it's still amazing. And I'm no expert programmer. I mostly paint.

Based on his writing, I believe this Smith is at risk for burnout.


As someone who quit his fancy tech job and started a video game company, I can say with certainty that games are not as fun to code as you would think =). The fun part (gameplay, game balance, story-telling, level creation) all happen near the end. In fact, they happen so close to the end that games often don't finish. They will have one third great story, two thirds great levels, and the rest is just rushed and crap.

The reason for this is the tools we made -- game engine for rendering & AI, level editors, resource packers, art post processors, etc, this is how the game really is put together. You don't make a game, you make a series of tools that help other people (game designers, artists, writers, AI scriptors) make a game. Now it is a blast making a work of collaborative art -- because writing and art are awesome -- but making a tool for a game is VERY similar to making an office suite or a complex website. It is all just data and interfaces. All the same usability/complexity tradeoffs apply.

I guess what I'm saying is the author's attitude made sense to me, and I know for sure that I'm not not at risk for burnout -- I love this shit. I love making games, but really it is because I love to program. Stories and art and gameplay are all bonuses, but if I didn't love the code it would still be terrible. That makes me wonder if coding is for everyone. I would love for it to be, but I'm really not sure.

Lastly, I recently taught someone to code from the ground up and the biggest single lesson was this: You will spend most of your day not knowing the answer. You will think and think and wonder and wonder. Is there even an answer to find? Is rails just too slow or are my queries crap? Can the iOS animation engine handle what you are doing or did you just add too many quartz-level effects and that is why it is super slow? You won't know the answer, you will doubt yourself, but over time you will actually become comfortable with not knowing. And even then, you will still be surprised (and pleased) when you figure it out. It is unending and I think it takes a special someone to enjoy that sort of life.

tl;dr Changing your life isn't always the answer. Coding is hard, doubt is hard, and games aren't as fun to write as you would think.


I never had a fancy tech job, or really any fancy job. I've had jobs. I moved industrial pipe for a few years in my teens. Not my favorite thing, but it was a choice. I worked for Sears for a few years up until I was 18. Worst years of my life. Also a choice. I've been making games since I was 11 and I'm just about 25. When I was 18 I decided to take it seriously and now here I am. I choose to do this. I can do programming, but I like art more, and I work with people who are just as passionate as I am. I love programming when I do it. I have a game on Steam, games on iOS and Android. I am dead set on doing great things not just with games but with culture and the future of humanity.

>The fun part (gameplay, game balance, story-telling, level creation) all happen near the end.

Then you are doing it wrong. There are so many tools available which allow you to skip so much of the technical parts and get to the parts you like. You can choose to use them, or you can choose to build your own.

>You don't make a game, you make a series of tools

That's a choice, and a huge thing newbies to game development are cautioned against. Don't make tools - make games! The tools are already made, don't reinvent the wheel. Yet so many insist on doing just that, and I have no sympathy for them.


To be fair, whilst the poster might be able to quit and write fun games (although based on anecdotes from people I know who have worked in the games industry it's not as fun as one might imagine) by necessity not everyone in programmer can be a game developer or work at a startup.

Some % of programming jobs (probably a fairly high %) is going to be writing the boring crap. So if you want to work as a programmer you have to accept that there is a chance that this is what you end up doing for at least some or maybe all of your career.


I'm an indie game developer and the way I see it is a choice for anyone to work independently. Some people are adamant about working for others and accepting whatever boring job they can get. Making games isn't the perfect thing to do, but it is possible, and I wouldn't trade it for anything. Yes, working at a AAA studio can suck, but that's a choice also.

Boring crap to you doesn't mean it's boring to everyone. Who are we to impose our value system upon others. Some people just love modeling 3d crates all day and that's their mission in life to create the perfect 3d crate. Other people walk by and wonder why he's wasting his life creating crate after crate. It's not cool to me to rationalize something someone doesn't like doing just because someone has to do it. Let someone who actually likes it do it.

> you have to accept that

Only if you are not in control of your own life. There is no rule which say what you must ultimately do. If your goal is to do x and that requires ultimately doing a lot of y, you can still change what you want to do to z and immediately go for it. So many of my friends are insistently passionate about wanting to work for AAA game companies and I know their glamorous dreams are going to put them through a lot of potential slog, but that's not the only choice. It is their choice to go in that direction and accept the outcome of that direction. There are plenty of other options.

Smith is idealizing coding games and working on programming projects which inspire him. He should go do either of those instead.


It depends on supply and demand, ultimately there is only so much demand for video games, social networks or whatever types of things people might want to work on even if they weren't being paid.

Then the rest of the demand is for jobs that people basically only do for money (think TPS report generators or whatever). So ultimately some people end up being allocated to jobs that they would not choose for themselves unless they were being paid.

So you only get a "choice" in so much as there is unsatisfied demand for the thing that you really want to do.


You would think that, but the reality is there is a whole bunch of opportunity right now that is not being seized. Smith could change his life if he made the choice to. There is not an overflow of game developers, or people writing code worth being inspired about to the point where people who do it are not able to make money enough to live. People think what you are saying and assume it applies currently, and that they have no hope so they have to do the boring work they don't like. It does not apply right now, and it may never actually apply just because of what so many people are ingrained to believe.

>think TPS report generators or whatever

Value systems are not universal. You could take the most horrifying job you could think of and someone would take pleasure in it.

> being allocated

No one is ever forcibly allocated. Everyone has a choice to do what they want to do. If the ultimate horror reality of there being too many good games being made and not enough people to buy them all to the point where no one could make a living making games happened then people could still compromise and go down the list of things they genuinely enjoy and do those instead when they find something which can make them money. I don't know enough about Smith, but if he's not doing what he is doing as a temporary stopgap and he believes he is stuck forever doing code he hates then he is absolutely doing it wrong.


You can't have an economy where everybody gets to do their first (or probably 2nd or 3rd or 4th) choice of career unless you are people's desires happen to coincide with market demand.

In fact I imagine that the majority of people employed in the workforce can think of a whole list of jobs that they would rather do.

Otherwise we would have a huge oversupply of porn stars and rock stars but nobody to collect the trash.


>In fact

Yes, absolutely, and so many people lack willpower to do greater things. That's not because they are not good enough people forever unable to summon the willpower to do it, but simply because they don't know the knowledge necessary. So many people believe so many absurd things which hold them back from what is possible.

>You can't have an economy

Sure you can. How long before the majority of all manual labor, all service jobs are done by computers and robots? Jobs which humans can do, but don't have to do. All of that uninspiring, boring drudge work which doesn't require any creativity or real problem solving. When those jobs are left we trend toward more of a gift economy where the value you have is what you do for others, what you inspire in them, what you delight them with. Some people already do things which do these things, others collect the trash. People are not forced to pick up your trash, and everyone could decide to refuse to take up that job, and yet people choose to still. Eventually it won't be a choice to put anyone's trash because it will all be automated.


I doubt that we will see the total loss of all manual drudge work within our lifetimes, things change slowly and the our economy will be structured to incentivise doing work that is not enjoyed for quite some time.

It's simply a fact that the most desirable jobs are always the most competitive so you are far more likely to have to a take a job that you would not necessarily choose.

The choice is not between taking out the trash and being a rock star, the choice is usually between taking out the trash, working some other low wage job or being unemployed and unable to support yourself financially.

So, if you decide to train in some particular area, it is worth thinking about the whole spectrum of jobs that might entail. I would discourage somebody from fixating on a programming career if they were only interested in programming because they wanted to work at facebook for example.


>the choice is usually between

Or doing your own thing on your own on your own terms following the rules you make up. Hey, stop waiting for people to tell you what to do and create your own opportunity!

My alternate future where robots do everything absolutely no one wants to do (I wouldn't believe for a second that there are absolutely no people who love their job picking up trash) is more likely to become reality than your future where it's impossible to make money making games because too many people are making too many amazing games so no one wants to pay for them.

>I would discourage somebody from fixating on a programming career if they were only interested in programming because they wanted to work at facebook for example.

Yeah, same with wanting to work for a random AAA game company. Unfortunately most people don't appreciate wisdom until they have already failed (reality check when someone is doing work they hate at their "dream job" - if they hate it then they made a mistake), and some people never learn from their mistakes.


That's not really how economics works. The games market (for example) isn't capped by how many amazing games people could potentially play.

It's capped by the amount of money people have available to spend on games. So that money necessarily has to come from other parts of the economy. So when other parts of the economy suffer there is less money to pay for games. Games are going to be a fairly elastic good, in that as much as I might love video games I'm not going to spend money on them if I'm struggling to afford food and rent. So in a bad market either games have to either become cheaper, or there will be less titles on the market.

Thus the demand for game developers either goes down or they will make less money each and the wages can only go so low before they will be forced to defect to other industries because their game salary won't make the rent.

Other jobs like trash collection will have a more steady supply/demand because even in a bad economy someone needs to take the crap away. I'm sure there are people who love trash collecting, but they are probably a minority of the workforce vs people who would prefer to get a trash collection salary for watching TV or playing video games.

The problem with telling people to "create opportunity" is that starting a business (as I have learned myself) is something that requires more capital than you think it does even if you are frugal. So unless you happen to be independently wealthy you are going to need to take that capital by either working at some other job or persuading an investor that your business will generate them a return.

So you have to find something that is the best compromise between "what I like to do" and "what do I think will make money" and usually the second one becomes the dominant factor.


Starting a business is by no means an easy road, but it is something that is definitely possible without capital or investors. e.g. bootstrapping.


Even a bootstrapped business requires some cash to start, unless you are fortunate enough to be cashflow positive first month.


You have so many self limiting beliefs.


Not really, I simply took an econ class.

I think realistic management of expectations is important, the world simply doesn't work in the way you suggest it does though I agree it would be preferable if it did.


I think that Pkoed's advice is unrealistic if everyone attempted to apply it to their lives, but this of course is never going to happen. On an individual scale, for the few hundred people who read his point of view here, it strikes me as a valid and reasonable way of seeing the world.


Supply and demand? Really? There is no limit, no ceiling for things that truly inspire. If you make something with passion and skill - something that inspires others - you are probably going to do very well in life.


That sounds nice, but is a little empty. There are plenty of people who we now consider incredibly important figures (artists etc) who died broke.


And many who lived extremely fulfilling lives outside of accepting money for work.

Everything is a choice. The people who refuse to not be smart about business refuse to take what they need - so they get what they get much like people who only work when a job is offered to them. Money is rarely made by accident. It is more likely to be made when you mix choice with opportunity.


It's a choice to "choose to be smart", you can try to be smart but fail.


There's no such thing as a smart person. Only people who are more well informed. What you do is what you become. When I say smart I mean a willingness to do what it takes based on informed decisions.

Creativity is only the body of material you have to draw from. Your visual or intellectual library of things you have already made a part of yourself through direct exposure. No invention or creation is made independently, it's all made with a clear path from one to another. Anyone can invent or create great things. Anyone can be great. All it takes is choice.

Success favors perseverance. Failure is necessary to reach what works. Those who are unwilling to fail never succeed.


There certainly are people who are smarter than others, all research into human intelligence backs this up.

Well informed is also a sticky concept, there is a lot of information out there. Much of it conflicting, it requires skill,time and a certain amount of luck to use the right information to make the right decisions.

Sadly not everyone can be great, if everyone were great then nobody would be great. Though you could argue that we are already all "great" in comparison to the bacteria that we evolved from :)


There are people who can play chess better than I can, who have higher "IQs", and yet I make more money than they do. Intelligence is not a magic number which increases in one way which allows you to do great things automatically with no effort. An average person (based on IQ points, which do NOT measure all the the ways for people to have potential for intelligence) can do far greater, meaningful things through willpower, and willpower is something we all have only still most people do not understand how to use it effectively. It's just knowledge, not innate ability. We are all very similar genetically and we all have very similar with our potential for greatness. Sure we all cannot be great in the same ways... like many of us here couldn't be NFL quarterbackers if we wanted to, but still ultimately with the things we want and the things we want to do the only thing holding us back are our beliefs.

Any kind of creative person who is great is not born that way. It is not innate ability. Watch and listen to this: http://www.youtube.com/watch?v=dnflBERf2zM It is the same with anyone who has "intelligence" - like I said, there is no smart people, only people who are exposed to more and work harder to learn more. Yes, people can be brain damaged with real limits, but even they can be greater than lazy people who waste their potential. Even people with extremely limiting abilities can use what brain tissue they have, expand their mind, and blow away all we thought we knew as impossible.

>Well informed is also a sticky concept, there is a lot of information out there. Much of it conflicting, it requires skill,time and a certain amount of luck to use the right information to make the right decisions.

Yes, so, be exposed to as much as possible, and think. That's what I'm saying it takes.

>Sadly not everyone can be great, if everyone were great then nobody would be great.

Yeah, no. Wow. This is like saying not everyone can be happy, because we need some unhappy people for the rest of us to have some perspective. Or that we need ugly people to feel good about how good we look. Or that we need gold stars to gloat over how others don't have gold stars. No.


People are measured relative to others, if everyone were what we currently deem as attractive then many who are currently attractive would certainly seem ugly for example.

You suggest that willpower is important, which all things being equal innate ability is still important. If 2 people dedicate their lives to running 100 metres in the fastest time then eventually one will be faster than the other due to innate genetic factors.


>People are measured relative to others, if everyone were what we currently deem as attractive then many who are currently attractive would certainly seem ugly for example.

Nope. It is not that others must suffer for you to have a good life much the same as it not be required for your neighbor to be ugly for you to be beautiful. Much of what you think as really true is not.

>If 2 people dedicate their lives to running 100 metres in the fastest time then eventually one will be faster than the other due to innate genetic factors.

This is the world you live in: I have a predisposition and I'm going to stick to it and within my natural limits.

This is the world I live in: fuck the rules.

> innate ability is still important

To be the very best that no one ever was? Sure it is, but it is largely inconsequential in the reality we live in! Like I said before: probably no one here can be a NFL quarterback as they are now... but they can still achieve nearly everything within their desires still! The reality is that the majority of people will think like you do are held back by their beliefs, while less innate people blow past them. Even if you think there are limits... they really do not matter. There will always be opportunity for you to have as much success as you choose to have. If you deny this then you will remain one of the many who choose to stay as you are.

As far as the brain goes, the differences in innate ability are so very unimportant compared to choice. A person who is born one way with a healthy brain is not any better or worse in permanence than someone with an equally healthy brain. They both can be great if they through their lives choose to be.


This is very naive wishful thinking, I'm not quite sure what would change your mind but I wish you the best of luck.


Enjoy your limits.


Your two points are not incompatible; some people are naturally a little better at things; most "things that matter to general success as perceived in America" (ignoring if that matters to you personally) have some basis in the comparison of you to others; you can achieve almost anything that you really dedicate yourself to; limits are made to be broken.


> We are all very similar genetically and we all have very > similar with our potential for greatness.

Unfortunately, this is one of the biggest misconceptions in modern discourse. There is a whole "underground" (mostly online) current of thought called HBD (Human BioDiversity) which means to address this misconception. Google it, but with your attitude you will probably discard it right away.


Higher level Math is not for everyone either, but schools still teach it.


This is one of the better negative responses to the video that I have read. And everything he says is true. However, I think there are a few things that are missing which I think are important. Firstly, I think he thinks the point of the video is to get more kids into a CS career - I can't quite disagree with that as it would in fact benefit most of the people in the video if that happened. However, I personally think the larger purpose of the video relates to the opening quote by Steve Jobs which goes something along the lines of "everyone should learn how to code because it teaches you how to think".

This is not to say "learn how to code so that you can code in your job - whether it be a CS job or any other job" - it's saying that people should learn how to code for very similar reasons as to why people learn math. There are many, many majors which do not require advanced math and yet many kids take Calculus classes. It's not because you need Calculus for your job: it's because learning Calculus will give you problem solving skills, reasoning skills, and other skills which can be applied at your job.

Then there's the whole aspect that, hey, you might actually have FUN coding!

I definitely agree with the author squinting at the "all you need to know how to do is add and subtract" and other things of that nature. I agree that is a half truth. But IIRC, someone in the video elaborated by saying "it's all about breaking things down" - and that is extremely true. Break problems down, solve each one individually, tie things together. That is basically how I go about coding everything I do. Relates very much to abstraction.

Finally the OP article mentioned that the video seemed to be deceiving kids into thinking that (a) it would be easy to get hired into a company like Facebook and that (b) every company is as fun as those shown in the video. As for (a), I disagree. The video never says anything along the lines of "you'll become an expert at coding within a week!" or even within a year. It just says "you should try this out, start today!". I would think that most people in high school would know that getting hired by "a Facebook" would be just as challenging as I would imagine it would be to get hired by "A NASA/Boeing/Lockheed Martin" if you're an Aerospace Engineer - and I'm not in that field. But what's wrong with shooting for the stars? If that sort of company interests you then by all means SET THAT AS A GOAL! But I reiterate back to one of my earlier points: this video isn't even saying "get into a CS career" - it's more of a "this is good for you, and hey, if you end up loving it, there are some really cool jobs you have the ability of applying to".

So, overall the post had some good points but it seems a little misguided. Frankly the author seemed somewhat jaded. I don't know if I'm in the camp that wants everyone to be forced to take a programming class - but I would definitely be in the camp that would encourage all schools to offer it as an elective. While I agree with the author that programming is not for everyone, I certainly think that programming is something that everyone should be encouraged to try out. Not because everyone should get a career in CS, but because coding might turn out to just be a fun (and useful!) hobby for you. And hey, if you do end up really liking it, there are some cool jobs out there. Just keep in mind they're the equivalent of the NASAs and Boeings and Lockheed Martins - it's not a piece of cake to get hired into those.

*small aside: I'm pretty sure any kid that ended up really liking programming would figure out that coding is a little bit harder than the video portrays it to be by the time they decided they definitely wanted to pursue a career in it. So perhaps I can conede the video may have a bit of a "bait and switch" as far as that goes, but the switch will likely happen before kids waste a bunch of time pursing a job they won't get.

edit: and this ended up being much longer than intended. sorry


It seems unlikely that the ad was put together because "programming might be fun", and the people behind it just want kids to have a little bit more fun. Why not make an ad about skateboarding instead, or playing video games?

In the end it is probably all about finding cheaper developers on the market.

Or maybe not as "evil" as that, maybe they really feel they could progress technology faster if they had more developers at their disposal.


I'm sure those companies must understand that they need good developers too. Seems like they are throwing a wide net by saying "programming might be fun" to see how many people try it and stick with it. I've tried lots of hobbies that didn't stick, but programming did, and now its more than a hobbie, its my profession.

It reminds me of photography. There are a lot of really good amateur photographers out there, but they can't all get professional jobs as a photographer. Why can't programming be the same, or, at least similar? It would be nice if everyone could write a script that made their life easier by using something like AppleScript or Automator or Python or the like... does't mean they could keep up with the rigorous programmer lifestyle, but at least they could understand.


Talk about missing the point entirely. Wow.


Right on. Most of what he said also applies to the visual effects industry. Most people have a misapprehension that creating and animating a 3D character can be picked up over a few months of learning. In reality, it takes decades of dedicated practice to get to a professionally competent level.


The irony in this "What Schools Don't Teach" is that none of the people portrayed got rich programming.


Well, Zuck did. Gates did. The other people portrayed didn't, you're right. But, they enjoy it. And they admire those that can create something out of nothing by programming. Sure, it was romanticized a bit. But, it doesn't change the fact that you could get rich by coding. You could make something that people REALLY love to use. This is pretty unique to the profession, I think. Yeah you could be a writer and write a novel people love, or a painter, etc. But none of these things pay particularly well.

I think coding is a pretty neat and unique skill set that is relatively limitless. And, if this isn't true, I think I'll just keep thinking that it is true, because it keeps my head in the game.


Arguably both Gates and Zuckerberg got rich by starting a company -- there are plenty of Microsoft and Facebook programmers that didn't get rich, and plenty of CEOs of tech companies that earned money without writing a single line of code. I'm somewhat dubious that learning to program is what makes people successful at starting innovative business the way Gates and Zuckerberg did.

> Yeah you could be a writer and write a novel people love, or a painter, etc. But none of these things pay particularly well.

For a few it does; Stephen King, J.K. Rowling, E.L. James -- they're all millionaires. Not quite billionaires like Gates or Zuckerberg, but rich nonetheless. By comparison, the vast majority of writers aren't rich, but neither are the vast majority of programmers.

Yea, "you could get rich by coding", but learning to code in order to get rich is about as sound of a strategy as playing the lottery.


They didn't get rich programming, not at all. They got rich owning successful companies. The fact that they did some of the programming for some MVP or other is almost incidental. They were not getting paid huge salaries for cranking out code and they certainly weren't the only ones involved. If you can pay someone to do the same kind of work on an MVP and then you win the same kind of lottery, it is not necessary for you to have any direct programming input.


Sounds like the author doesn't really enjoy programming.

For those who like it, its the closest thing to magic.

That "life sitting down" line at the end is a salient point, but pretty much everyone sits down at a computer these days to work.


There is a difference between programming as a creative piece of work and asking to figure out why project A designed by a moron can be glued together with project B which is another clusterfuck. The true answer might be to redesign both projects with open extensible interfaces to connect with each other. However, you won't have the time to do it in the 16 hour deadline period.


Sure, but there are sucky jobs in any field. For the most part, I've had very positive experiences in my 8 years as a software professional, with the exception of when I wrote J2ME ports on 64kb phones. There are tons of interesting problems in the field and in general, my coworkers have been very smart people.


I think the article was probably written when he got really bored and frustrated at his own life and probably was contemplating his statement "why am I living sitting down". A little exaggerated but true.


I wrote about this, from a UK based perspective, 18 months ago: http://ntoll.org/article/teach-our-kids-to-code-or-not



I've to agree with title. however it is the same with science. everybody had had it but not everybody will find a job in it. So what' s wrong with introducing coding to a wider public?


In context of schooling(India), drawing and arts was not for me too, but they taught us anyways and I am glad they did. It helps me design things better as a programmer.


Lets get one thing straight: you don't play poker against the house but against other players... Maybe this is a game can be beat... but you have to play sitting down.


Actually when you put players of similar levels together and make them plays tens of thousands of hands together, all these players are going to be break-even... If not for the rake that the house takes.

This is already seen in online poker in cash games at some limits where there are a lot of regulars. And it's very often discussed (and criticized) in online poker forums, where they say that these regulars are just shifting the money all around, with the house being the only real winner.

So your oversimplification doesn't get anything straight.

When you play poker you play against other players and against the house (rake and buy-in fees).

To give you an idea: there are semi-pro who would be losing players but who are actually making quite a decent profit only thanks to the partial rake-back that the house gives them (regulars players playing lots of hands get back a % of the rake they paid, which is called the rakeback).


I think his point was:

Programming for a company = Playing in a casino (virtual or otherwise)

Programming for your own startup = Playing against players of a wide level of skills without a 'house' taking your money.


The obvious point, which people here seem reluctant to make,is that 'everyone' is not intellectually capable of programming.


If you can teach someone "10 print hello", and they replace hello with their own words, everyone able to be schooled can therefore participate in programming, and enjoy it within 5 minutes.

These days there's an awesome range of tools and help for learning, just awesome. And the variety of scripting languages and low-level programming to get people started is really good too.

I liked the original video's message. Can't really see why the article here is reacting. The woman in the video saying how she wish she'd known that software was for helping humans achieve things. Great message right there!


>"The woman in the video saying how she wish she'd known that software was for helping humans achieve things. Great message right there!"

+1. It's all about solving problems more efficiently or making things better/easier to use. This is a large part of why computers frustrate me so; it seems that most software companies wholly discard the notion of /user experience/.


heaven knows I get angry in front of the screen a lot


You want to know what they should teach at school?

The basics.

Programming is the application of basic skills, it in itself is a secondary skill.

Which basic skills do I need for programming?

Reading, Writing (as in Grammar,etc), Math, Logic

Over here in Austria we still have the concept of apprenticeship. As a 15-16 year old you can switch over from the more formal academic track to an apprenticeship (more here http://en.wikipedia.org/wiki/Apprenticeship#Austria). Coming from a background in constructional engineering I had a lot of opportunity to talk to employers about their opinions on the current apprentices.

Common complaint: Apprentices coming out of the modern school system are useless. They arrive with practically none of the basic skills. Quickly, we need to cut this 6m board into 2m long pieces - how many do we get out of it? The more intelligent ones reach for their phone to calculate it.

The world has gotten more complicated, we have a lot more knowledge and facts to teach. But a young brain can only learn so much in parallel. The good ones will teach themselves anyhow, read books or wikipedia from back to back. But there needs to be commonality and this one needs to be along the basic skill set of language, comprehension and logic. Why are so many people in debt? Because they can't understand interest if their lives depended on it - which it does.

Teach programming! Teach art! Teach philosophy! Teach whatever I find interesting!


Quickly, we need to cut this 6m board into 2m long pieces - how many do we get out of it?

Two, and a leftover piece shorter than 2m. Due to the fact that saw blades have a non-zero width, and you want to err on the side of cutting them slightly too long. What do I win?


Hi there!

I'm from ACME corp, and I would like to introduce you to our - no, your! - new water-jet cutting machine!

It cuts anything, including that 6m board there with a cut so fine that you will be able to get 3 pieces of 2m out of a board of 6m, there is so little waste that within the acceptable margin of error for woodworking the cuts will be 0 width.

Sold?


How will that help me catch the roadrunner again?


Nothing, because your answer is incorrect!

If you require the pieces to be exactly 2m long without allowing for any margin of error, then there isn't a saw that will cut that accurately, so the answer is 0, not 2.

If you allow for the accuracy of the saw, then the answer is 3 since any saw can cut within its own accuracy. :-)


I found this pretty funny and all but it also reminded me of something my dad always says: "Carpentry is a science of centimeters, not millimeters". Meaning no sane person would ask for a table 2m long and complain that it's 5 millimeters or even a whole cm short...


a kick in the ass by your master for being a smartass usually.


>"The more intelligent ones reach for their phone to calculate it."

and I took so much crap in school for refusing to memorize things I could look up quickly (like multiplication tables).

What now 3rd grade math teacher; I have Wolfram Alpha in my pocket.


On the other hand, I refused to use a calculator all through elementary school and high school. I figured if I couldn't learn to do basic math in my head then I'd be screwed later in life.

I don't think I'd be screwed anymore, but I'm happier having those skills without needing to rely on electronics.


It's not for everybody and what people don't realize is that the day it's going to be for everybody is the day we'll have reached technological singularity.

And all bets are off when/if that day comes. My take on it is that we won't need anyone "programming" anymore by that point.

Until then you'll need people at least understanding the physical limitation of our devices/networks and being able to use at least logic (probabilities being a plus) and some "maths" to get the (programming) job done.

This is definitely not for everyone. Just as writing books is not for everyone.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: