Please Don't Learn to Code

The point I tried to make in my post (http://weblogs.asp.net/jgalloway/archive/2012/05/16/why-i-taught-my-daughter-to-code-a-little.aspx) was that:

  1. The stakes are so much higher when comparing the risk of computer literacy to plumbing or automobile mechanics.
  2. The return on investment (time and cost) is so much greater. A few hours (less than the time to watch a season of Glee) is enough to get a much better understanding of how the world works, and perhaps the beginning of a lot more. I know some people who have made careers out of building internet businesses and writing blog posts about software development! As I mentioned in my post, I know a lot of other people who applied some pretty basic coding skills to help in their day to day work, or ridicule Oracle lawyers. The sky's the limit!

Yet another response long form on blog [0]
tldr-Foreign Languages are useless, Pascal and Lisp are useless, Plumbing is useful, Excel rules the world, 3rd graders can learn programming and html, and I hate playing tech support to people who don’t understand computers :slight_smile:

[0]-http://hairysun.com/blog/2012/05/16/coding-is-a-life-skill-that-should-be-taught-in-elementary-school/

“I point you to the Big Bang Theory as what mainstream does to your subcultures.”

If you don’t want to associate with novice programmers then don’t. I’m learning to code for my own purposes, not to work in some code-monkey sweatshop and CERTAINLY not for the company of close-minded elitist pricks like yourself.

People who go out of their way to discourage learning make me ill.

We live surrounded by digital devices, I guess it’s not bad to actualy know what is code, what it’s useful for and to understand the logic of it. Doesn’t any car owner need to know a little what’s in his car ? I guess knowing about plumbing wouldn’t be a bad idea too, even if I have no idea of it. If people just consume thing, and never make them, they end up “proletarized” (Marx), meaning they have no personnal control (or illusion of control, that is sufficient) on anything, they don’t actualy own their life, they are slaves, without the comfort of being taken care of. Therefore, even if NY mayor statement doesn’t mean much than if he’d have say “This year I wish to learn spanish or italian”, I think a culture of coding can be a good thing to learn at school. It’s important for the professional too, because it makes the amator able to explain better what he wants.

This is an excellent article that is being unfairly maligned. Probably the best line in here is “Software developers tend to be software addicts who think their job is to write code. But it’s not. Their job is to solve problems”, this is absolutely true, and I think today is driven by an obsession with techniques like Agile and a desire to build something, anything and start coding immediately without thought to what is being done.

I would also add that Software Developers are always attracted by the latest “brightest and shiniest” technology and are often completely oblivious to the deeper decisions that should be taken from a business perspective as to whether it actually makes sense to adopt the technology in question. But that’s probably another article…

Horrible thought!

Why should everyone learn to code? If everyone learns coding we programmers loose our jobs. Likewise why not have everyone learn to build and repair cars, bake bread, navigate ships, build houses, be a math teacher or whatever profession comes up. Programming seems to be a fad right now and being a geek is oh so sexy. It’s that coding is limited back to where it was in the 80s/90s: to the real techies.

Oh my god, I cannot believe there are people who don’t get this. Really. The world is a lot scarier place than I thought.

The idea, you know, in code is to describe things in the world. It’s not the other way around. And usually those descriptions are pretty bad. Usually all they do is to work out where the complexity is then run like heck to get away from it.

All that coding can really do for you as a human being is to constantly remind you of how dumb you are and how limited to your own little world view you are.

Look, there is a pattern! Wow! A pattern! But you are actually inside a pattern, yourself, already, now. Seeing the pattern is a pattern.

It took Christoper Alexander and his companions eight years to write A Pattern Language . Who else has spent that time on a book about coding? Knuth, OK. But the next level up from there?

Essentially it is like, coding creates all these vast problems. Then coding solves a few of them. And we think we are geniuses.

People actually choose to code in languages that make all this process really involved and elaborate, because they feely even more like they are geniuses. I mean really, face it, there is nothing out there that is coded in Java that cannot be coded better and more cleanly in Smalltalk. Really. Or Self for that matter. But people love Java. They love C++. They talk about these little efficiencies they get. Meanwhile, processors have increased in capacity by a gazillion (approx.) since Java and certainly C++ came along, so what is the point, really? And concurrency, etc, will be solved at that level eventually. Not in code. Because code should be describing the world, not the way the world-emulating symbolic machine works. The code that enables the machine needs to do that, but not the code that engages the machine with the world.

It’s nuts. Truly. Just nuts. And the great big wonderful programs that change the world? What do they get written in? Really? Fricken PHP. I mean. And not O-O PHP. Twitter. Facebook. Then they fall down. But it doesn’t matter. Because they have MONEY!! If you have MONEY it no matter code all fall down. You buy more code. WHEEEE!! More code. Then you have Scala. Look, real objects. Look real class methods.

It’s sad. But what’s really sad is not understanding how great and funny this post is.

This is a publicity, I won’t say stunt, but rather a “plug” for a fairly well known online training academy. Who by the way pocketed some $150,000.00 in their first month of operation so I’ve read (founder citation).

@Kelseyinnis,

I feel the opposite to you. I don’t think we’re missing out at all on anyone with the passion, intelligence and capability to be a coder.

If you have those attributes, you’d already be one. You either have a love and passion for all things technical and not.

You can’t be that smart and stupid at the same time.

The diversity amongst programmers is diverse enough, to say that I am uniquely different to you as you are to me. Though, I may share some similarities with others - we are all individuals with very unique personalities, that share one commonality being a love for code.

From this, programmers are stereotyped as being one particular one and one particular kind of breed, thus its easy to say all programmers are a like or that there is a lack of diversity within the industry - thanks to our ability to stereotype groups.

Just like I think all lawyers are sharks. See the problem?

I’d like to know where else the pipeline is broken too? I don’t see it.

There are numerous paths and opportunities present at all times within this industry and if you can’t find them then you need to stop listening to people who tell you “its hard to find a job within the industry because of x, y, or z”. It’s not.

This is a very, very clever initiative of Code Academy to solicit the blessing of our hire-ups in power to spread the word and that word is “come line our pockets with your money”.

Marketing at its finest and I don’t blame them if you consider the stupid amounts of money they are making, recurring mind you.

@Scott Lewis

I lol’ed for 3 seconds until I realized you’re a bit of a loose-cannon, jittery and all over the place with your birds eye view of programming and the world.

What are you doing talking about Java, C++, SmallTalk then whinging about PHP and finishing with some random comment about Scala?

Trying to get a grip on the point you’re trying to make here. A language is a matter of preference and taste.

PHP is good language for web based applications. Hard pill to swallow, I know…

If you say its not then I’ll assume you don’t know how to code and that’s the problem, if you don’t know how to code, your code will look like shit and function just the same.

If the roles were reversed and Ruby was the popular language of choice and PHP were the far lesser known of the two then we’d be saying similar things about Ruby, in that half the code out there is shit and that’s because of the sheer number of people writing shitty ass code versus the programmers writing clean, functional code - procedural or object oriented.

Its that simple.

Screw the little nuances between languages, you either write clean code that follows standards or not; but bashing on a language is stereotypical of someone who complains about the nuances between one lang-to-another, you’re all the same but then you yourself say “so what is the point, really?” But then go about contradicting yourself by doing just that.

Breathe deep brotha and make peace with the code…

You make a lot of good points, as do the commenters. I think you point out that there is a general superficiality with regard to skills. A lot of people tell me “people need to learn calculus to get a good job these days,” when perhaps they’re talking in fact about certain numerical skills that are necessary, but are not calculus.

We should also ask cui bono? Certainly the people who would teach the incipient programmers benefit from all this talk of needing more programmers, as would the vacuous corporations that spring up around any excess of skill.

One reason I promote learning programming to science students in my university (not just anybody) is that writing a simulation program gives you a better idea of how certain dynamical processes work, and what the right questions are to ask than fiddling with an already written program. Guess where I learned this? In the course of my own research.

I would use a different reason to say that my son should learn programming: he likes building things, he likes robots and he’s very technically minded. Also, programming is a fun thing for kids to learn. If he decides to use it later is up to him.

Consider also that I would rather have kids learning about programming than just learning what passes for computer skills in schools these days. I’ve recently toured a lot of schools and they get very excited when they tell me “Your son’s going to learn how to use this this and this Microsoft product, so he’ll be ready for the workforce!” The workforce of twenty years from now? Yeah, right! He’s six. Teaching kids to use Word and Powerpoint (in deference to anything that empowers them) is just advertising for Microsoft.

However, you’re right that teaching them to program so that they will grow to be “programmers” (as in, professionals) is also foolish. I would generally rather have them learning things that will help them be more learned than more marketable. It’s tough to get anybody to see this point, or your points, when almost everybody believes that the point of doing anything is to make more money.

for me code has always been a useful tool, i want to do something i could grind it out or i can spend a little more time to make some code to do it for me, using code to make novel solutions, to query or manipulate data, to automate computer functions, or just to make my life and my work easier is what i feel code is there for.
i find in situations like this i like to look to harry potter

coding is like magic in the harry potter series, there are those for whom magic is their goal, who work to be the most powerful witch or wizard, and there are those who look down on people of lesser magical capabilities and see them as inferior, or that they should disappear entirely.
then there are those for whom magic is a tool, such as the weasleys, for them magic is a means not an end, an enchanted dish scrubber, or broom, different things performing tasks to make their lives easier and more productive.

and we should remember that sometimes its fine to use code as a tool, and that just about anyone can benefit from learning to code. there is nothing that says they must make elegant code, or production level code, or even share their code. maybe their code is useful only to them, i think we shouldnt discourage anyone from coding, and should encourage EVERYONE to code.

“Don’t celebrate the creation of code, celebrate the creation of solutions.”

I agree 100% with this sentiment.

We need to be teaching people how to think critically and solve problems. That solution may well involve getting someone else to do it for you because your own area of expertise lies elsewhere.

I think it’s important for people to be at least somewhat technology-literate, because we’re surrounded by so much of it now. But that doesn’t mean they need to learn to code any more than I need to learn how to rebuild a gasoline engine because I happen to own a car. I do, however, need to know how to drive the car, and how to recognize when there’s a problem which needs expert service or if it’s a minor issue I can correct myself.

There’s a significant difference between “learning to code” and “becoming a coder”. Kind of like, “learning to write” and “becoming a writer”.

Much of what is taught is schools isn’t realistically thought to have day to day applicability for most professions. Learning how to think and building frameworks for understanding problems is what most schooling does.

Another side of the argument is, what valuable things are we avoiding based upon the limited understanding of basics of coding, such as logic, flow, etc?

To state that last point another way, what kind of things would we have avoided if understanding of basic arithmetic was missing? We can actually see examples from looking at times and places where it is missing.

Coding seems like a natural fit for general education because automation is a general need, and even if you don’t really learn anything useful, you should at least have been challenged to improve your method of thinking. At the very least I think it may be a more appropriate context to teach the principles of logic than math, because it’s naturally interactive.

“It’s not about getting more professional programmers into the job pool.”

Then why does the primary metric of success seem to be the employment rate and average salaries of the program graduates ?

Jeff,

I think your example of the Dev Boot Camp is a poor choice. When I read the article, I get that the point of the boot camp was not to quickly create programmers from non-programmers, but rather it was a class to teach Ruby on Rails. I would not expect anyone leaving that class to be able to code a network stack in C, for example.

To me, the point of these classes is really to teach a new tool to developers. Going to a job interview armed with the knowledge that you’ve attended this course and can actually apply Ruby “in the wild” is great.

Part of the problem here lies with companies who are looking for a very specific set of skills for developers and won’t even consider programmers who do not have that skill (but could quickly learn it). A great example of this is the .NET movement from a few years ago. I, for example, have over 20 years of programming experience in C, C++, using the MFC framework, HTML, etc. Companies wanting .NET skills wouldn’t talk to me because I didn’t have years of .NET experience. For folks with CS degrees, this mentality is extremely insulting. We spent years learning how to apply knowledge with ANY toolset (Ruby, JavaScript, phooey - it doesn’t matter!). And telling someone with that background that they’re incapable because they don’t have a specific skill is nonsense.

Hi.

try comment this:

Programming, the second literacy A.P.Ershov

than .

in that meaning mayer NY is the programmer cose hi can plan self action then do it than again.

so by now Mandkind need that bigger than now piple can plan they action

How sad. Simple coding is getting to the point where it should be an essential or at least highly beneficial skill.
Bloomberg also is not a better mayor because he can divide. Should we not teach division?
Not everyone can be a programmer, but I see nothing wrong with large numbers of people being able to whip out a bit of perl to make something simple that takes a crapload of monotony out of their day. I am not a programmer. But being able to do a little bash scripting and a small amount of perl has made my life easier.

I’d rather more people learnt about computers in general, I.e. That a hard drive isn’t the big box you plug the wires into.

I can understand the mayor promoting programming in his town, programming is probably the biggest source of worker migration in from a certain sub-continent and judging by the posts on StackOverflow, there are likely to be a lot of jobs available to clean up shonky code!

Your plumbing example is an interesting one, and I think you dismiss it too quickly. It is very valuable for a lot of people to have some simple plumbing skills. Do you really need to call a plumber every time you need to snake a drain? I can change a valve, or swap out a toilet, or replace a drain by myself. I wouldn’t try to plumb a house (at least, not one I intend to live in), but having some basic skills in a lot of fields can save you calling some very expensive professionals, and allows you to better communicate with them when you have problems that are beyond your skill level. I don’t see why any of us would object to people picking up some basic programming skills. I don’t think the major intends to give up his day job to focus on his code.

“If coding was fun and easy, everyone would be doing it.”

Coding is fun and easy. I’ve been introducing beginners to Java with my Teach Yourself books for 15 years, and I hear from people all the time who took programming up for the first time with the language.

I think Atwood’s objections are bizarre. Everybody who has an urge to learn programming should try.

Whether it’s programming or any other difficult field, it is a good thing when people want to learn it. Even if they never get past the basics, increased technical literacy is a good thing.

Atwood asks, “Have you researched the problem, and its possible solutions, deeply? Does coding solve that problem? Are you sure?”

I ask, how are these people going to know whether coding can solve their problems if they never learn how to code?

I’m glad this learn-to-code movement is springing up. Programming is a lucrative and valuable skill and some people will discover they have an aptitude for it – and, even better, that they love doing it.

Will everyone who dabbles in programming like Bloomberg or reads my 24 Hours books go on to become an expert coder working professionally in software development? No. But every great programmer started somewhere, and I can’t find a single drawback to helping as many people as possible get that start.