Please Don't Learn to Code

Can you clarify what you meant by “learn to code”? It seems that everyone’s talking about different things when they say that

If you get a bunch of non-programmers to go through some basic courses on programming through something like codecademy they’ll appreciate what goes into it.

Too often these days people expect great software (and apps) for free. Once you begin to write your own code I think you’re more likely to donate to those who produce great applications and dish them out for free.

I agree 100%.

I saw so many comments where people said “but coding teaches you all these other skills…” and that’s true, but there’s lots of ways to learn those skills that are more useful.

One crucial life skill is just being familiar with technology and not afraid of it. If the “programming” that everyone should learn is akin to “programming a VCR” then I’d agree with the meme. But I think it means coding, and that’s silly.

A variety of life skills is an important thing. I am really good with computers, but I don’t have any sort of foundation of skills for something like home ownership. I have to admit, I’m probably one of those guys that sometimes needs help lighting a pilot light on my furnace. Perhaps I could build a robot and code it to light it for me, but I still wouldn’t know the solution so coding wouldn’t help (I’ve since learned my furnace doesn’t have a pilot light.)

I look at my grandpa and he knows how to do a bit of everything. He can fix my hot water heater, build me a shed from 2x4’s and plywood, get my lawn mower going, sort out electrical problems in my home, dispense advice on living a happy life, and many more things. In return, I help him with setting up contacts on his cell phone and fix the aspect ratio on his TV. Now let me ask you, which of the two of us would you rather have in your life?

Bottom line: learning coding is good, but if you don’t need to code, there are far better things you could learn that would improve your life in a vastly superior way.

Jeff,

Great article!

In my experience, with about thirty years behind the keyboard, programming is a talent. It requires both the ability to think logically and the ability to think systemically. There’s perhaps five percent of the population that are naturally wired that way, and perhaps another 15-20 percent that can learn enough patterns to to fake it. The good ones also tend to be autodydactic. You can tell the naturals even in grade school - they’re the ones who’ve figured out all the cheats to their favorite games and use those cheats to manipulate the games never intended by the games’ creators (I have one daughter like this, the other should never be allowed near a command line). The naturals gravitate to programming because it’s what they do - the remainder are in it because of the salaries and other perks that come with it, and most of those eventually end up in technical management.

What this means is that programming professions generally follows the trade/mentorship route (there’s actually a lot more similarity between being a plumber and being a programmer than most programmers are comfortable with). You can learn “how to program” in school, but most of the good programmers I’ve worked with over the years tended to have one or more mentors at some point in their career that steered them in certain directions, that helped them smooth their rough edges and that ushered them into a particular programming “school” or community. Apprentice, journeyman, master. Those mentors also periodically put challenges in the way of their apprentices, because programming is, at its core, the application of “magic” in order to solve problems, and if a person cannot work their way through a relatively benign problem, what’s going to happen when they reach a real world one that is far from benign.

Most politicians are not inherently logical problem solvers - they’re salesmen. They attempt to get their agendas passed by selling the idea, by making deals, by trading, none of which can be readily quantified programmatically. They see IT jobs as “green jobs” - low environmental impact, high salary, and in theory trainable (those holds true for most STEM jobs for that matter).

In practice, both the intrinsic aptitude requirement and the 10K hour rule still apply, and as you point out, there are a lot of half-assed “programmers” out there who will be able to solve problems through the application of automated problem solvers but who have only a marginally understanding of the fundamentals of computing.

I don’t expect that everybody who learns to code will work with this.

For example, I like to study astronomy but I don’t have plans to work with this. Astronomy is a hobby for me, why coding couldn’t be a hobby for the others?

I agree with you that people should focus on problem solving, and there is a lot of problems in the world that are not solved by software. But I think you are taking this meme too serious.

People are free to choose what to learn, and this is beautifull!

I know just enough BASIC to write the occasional brute force program to solve an otherwise long and tedious series of math problems. I once thought I could learn more, but found out it’s a lot more trouble than it could ever be worth.

If the mayor of New York wants to learn to code in his off duty time then let him.

I agree and disagree with you Jeff

I believe that programming is creating solutions, you said that dont love code but love creating solutions, programming teaches how to face porblems that occur while you try to solve the problem, but programming is not the only way to do that.

Bloomberg trying to learn code? I think your facts are a little jumbled, but you made some funny points. Lighten up guys, I don’t think anyone should get worked up about Bloomberg of all people! lol

Jeff, just wanted to let you know that your article touched off a lively discussion in NY Tech Women group on linkedin.
If you are curious take a look.
http://www.linkedin.com/groups/Have-you-seen-this-blog-4280894.S.120848624?qid=687e07ed-81c1-4635-9138-19a53b7d3fd0&trk=group_most_popular-0-b-ttl&goback=.gde_4280894_member_120848624.gmp_4280894

That’s quite a poorly written post, Jeff. On the one hand you seem to be equating “coding” with simply bashing out random letters on a keyboard and on the other you’re saying that “most people who consider themselves programmers can’t even code”. It seems to me that in an effort to justify your rather reactionary response, you’ve written a whole article that for the most part doesn’t support the headline.

Given the tone of your post, why shouldn’t any professional journalist turn around to you now and say, “Please don’t learn how to write in public”? Indeed, why should anyone learn any skills at all that aren’t directly related to the job they’re destined to do?

Why bother to try anything new at all for fear that the elite will tell you, “You won’t be able to do it properly” and then, “it’s not really that useful anyway”?

“Please don’t learn to cook”
-A Chef

“Please don’t learn to fix old cars”
-A Mechanic

“Please don’t learn to drive”
-A Cab Driver

“Please don’t ever have hobbies that don’t relate to your day job or profession, but happen to interest you.”
-No reasonable person ever

I would agree with the arching sentiment provided in the comments. Coding is like mathematics, it forces the brain to think in if/then statements and to solve problems; to research and persevere and find a solution that works. Most people aren’t going to grow up to be mathematicians (or anything close), yet the coursework still teaches students to think logically and solve problems. As such, it is fundamental curriculum. Coding is the modern equivalent.

My bias: I started coding at nine years old. Even though I decided to turn it into a profession, it has taught me so many universal skills applicable to all industries. And, in my opinion, was the most valuable component to my education outside of English and History and Math.

Cheers!

I think the “everyone needs to learn to code” thing is a misplacement of a totally legit sentiment, that everyone needs to understand logic-based algorithms. This isn’t just useful in tech, this is useful in all life decisions. We all know people who can’t manage basic calculations like, “If I punch this guy, then he will punch me, or else he will call the cops on me.” or “If I eat my roommate’s food AND I don’t replace it, OR if I leave wet towels on the floor, then my roommate will be pissed.”

A basic understanding of algorithmic thinking and boolean logic is essential to successful life planning.

The learn to code movement was born out of the economic downturn, not learning how to solve problems and think critically. Coding is a gateway for that, but there are other fields(like plumbing). We are now solidly in the information age and people that have relied on manual labor or other easily ‘replaceable skills’ can no longer find work. Many places require experience and/or education and these people are out of luck. Coding seemed like an answer because you can make ‘tons’ of money, you don’t have to go to school for it, you can learn it for free at home and the ‘experience’ question can be solved by working on online projects you can point to in a portfolio. I definitely wouldn’t turn anyone away from learning code or otherwise, but some of these programs are set to run in places where the students might not have access to the internet and/or computers. I don’t know about you, but sometimes you need to spend quality time debugging and the 30-minute time-limit at the library computer isn’t going to cut it. Not to mention the things you usually have to install to get going with some languages.

We need to spend efforts on affordable computers and broadband. Making broadband more accessible. (I understand groups are working on this). We don’t need more coders. We need to really deal with what caused this downturn.

Yeah, you should all stick to your ignorance, don’t learn stuff, don’t force yourself to become smarter, don’t try to think by yourself, don’t develop any kind of personal thought, taste or even wish : be one of the sheep !!

If you were born stupid and poor, it’s because god decided it and it’s your fault (i know it doesn’t make sense but then it’s like the 3 “holy” books).

Let me organise your life for you but pay me for it ! and a lot as you don’t know how to do it !!

=> Dear writer, i won’t push any futher the caricature of your wish to see the rest of the humanity lower and lower their intelectual ambition. However i will add that when you say : “something is deeply, horribly, terribly wrong with politics in the state of New York” you are mistaking. If a mayor as to learn the code, it’s because the guys who are meant to know how to code, create codes that are at best hidden (which is already a freaking shame) at worst just full of security hole when it’s not a sell-by date so they can sell more of their crap 2 years later !!

You should get out of your office and have a walk in the street, because then you would see how many people could actually use the job !!

“Everyone should learn to code” isn’t about getting thousands of new developers to write dodgy programs or enter the field of professional programming. It’s about LITERACY. I’d rather have a somewhat educated user than a blind consumer any day of the week. A good parallel to this might be the way we teach middle schoolers about the advertising industry. There’s plenty of instruction in schools as to how ads are constructed, how audiences are being marketed to, what techniques are being used, and so on. The aim of these programs isn’t to launch a thousand slimy careers on Madison Avenue, it’s to get people to critically engage with the culture.

@_Nevermind You’re confusing intelligence with knowledge. Learning math or coding doesn’t make you smarter– only more knowledgeable of the subject. What you do with the underlying principles and what parallels you draw from them to enable a different understanding of the world is another matter. They are mutually exclusive.

This is a straw man argument. Of course coding isn’t the kind of skill ‘everybody’ should learn and of course it isn’t ‘useless’, but those kind of extremes are seldom sensible in an argument. I would say that ‘algorithmic thinking is a very useful skill that more people, even outside the tech world, should learn’. (But that isn’t so catchy is it?) So Jeff, would you, with your “thirty years” and “ten thousand hours” agree to that, at least?

I teach psychologists how to program. I fully agree that for some that will turn out to be useless, no doubt. But, as an example, algorithmic thinking is very helpful in understanding modern cognitive psychology and recent cognitive neuroscience methods. It is a very helpful tool in (Msc) research with stimulus presentation and data analysis. All in all I would say that for these ‘non-techies’ it can be quite useful. Would you disagree? (And after a month of learning they can produce pretty neat creative little things: http://www.delphimasters.nl/)

I personally do not think everyone should be a plumber or a programmer.