Programming Is Not for Everybody
symbo1ics.com
symbo1ics.com
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.
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.
Seriously, what the hell?
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.
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.
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.
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.
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.
If you don't know basic maths, you are likely to spend much of your life getting ripped off left, right and centre.
"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."
It's certainly a desirable trait for everyone whom we allow to vote.
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 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.
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, 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.
So math is useless.
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.
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.
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.
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.
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.
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.
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).
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.
> 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".
I want to use this great quote to advertise a programming class I'm teaching. Can't find the original. Any ideas?
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.
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.
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.
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.
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.
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.
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.
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.
It just seems odd to me. Very few other professions are keen on diminishing their employment prospects in the name of education.
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.
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.
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.
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...
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.
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...
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...
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.
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.
"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.
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.
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."
Coming up next, "Painting Is Not For Everybody, Math Is Not For Everybody, ..."
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.
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.
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.
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.
CarlH was very useful starting point: http://www.computerscienceforeveryone.com/
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.
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.
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.
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.
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.
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.
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.
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.
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 :)
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.
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.
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.
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.
>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.
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.
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.
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.
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.
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.
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.
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.
>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.
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
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.
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.
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.
> 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.
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.
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).
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.
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!
+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/.
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!
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?
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?
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. :-)
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.
I don't think I'd be screwed anymore, but I'm happier having those skills without needing to rely on electronics.
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.