a companion discussion area for blog.codinghorror.com

So You Want to be a Programmer


I fully support a push for basic Internet literacy. But in order to be a competent driver, does everyone need to know, in detail, how their automobile works?

But Jeff, that’s exactly what the “everyone should learn how to code” movement is. We are not disagreeing. You are misunderstanding our message. Maybe we should have been saying “everyone should be technically literate” instead of “everyone should learn code”. I agree it’s ambiguous and probably the source of this confusion.

This has nothing to do with people following their joy or not. I also advise people should learn how to cross the road. If you believe you shouldn’t because you don’t find any joy in it. Then don’t, and get run over.


Many of the negative comments here serve only to prove the point which the post is trying to make in the first place.

There are clearly people here who know how to code, and believe that this is a basic life skill, like reading or writing, which everybody should have, but who lack some pretty basic English comprehension skills themselves!

Those who suggest that this post is elitist, or trying to exclude people, or telling people what they should or should not do, appear somehow to have interpreted the article to mean almost precisely the opposite of what it actually says.

How does that happen? Yet these people can, apparently, code!


Jeff, I get you.

Everyone should learn to rebuild car transmissions and engines. And everyone should learn how to farm. And everyone should learn how to represent themselves in court.

There’s a difference between understanding “knowing enough to get yourself in trouble” and actually digging in deep enough to get yourself out of trouble. I agree with you Jeff… too many people advocate we all know about all subjects enough to get us out of trouble. But folks, there isn’t enough time in a life to do such. So focus on what comes naturally and makes you happy (because you are wildly successful at that domain and easily grasp it).

There’s nothing wrong with knowing just enough to get in trouble as long as you know that’s all you know and fall back on someone who can get you out. Don’t abdicate, but delegate. If something comes up and sounds fishy, then dig a little deeper to verify your “expert’s” statements, but don’t go off studying everything so you can tell everyone else how incompetent they are. Just in time folks, YAGNI.


“Here’s a person who a) found an interesting problem, b) attempted to create a solution to the problem, which naturally c) led them to learning to code. And they loved it. This is how it’s supposed to work.” … now swap code for maths, or science or english…
It may not an exact analogy but that’s how its supposed to work for any subject. Sadly it so often doesn’t get taught that way.


I’m not one to advocate elitism but if someone wants to suggest that I learn physics better because one day civilization might find itself in space? Please don’t waste your breath. Even if that were to occur that’d still be someone else’s job.

I know hardly anything about my car in terms of mechanics and I can still drive it. I can’t cook but I still eat. I can’t act or film but I still watch TV.

If everyone needed to learn to code for day-to-day situations then they would learn it. Most computer issues can’t be solved with programming but rather with learning how to install a printer/software or learning to swap out a mouse/screen.

People should learn to be their own help-desk first. That’s where I started and no knowledge of code was needed.


toiletcademy :slight_smile:



I agree with your comment regarding the CPA story and “this is the way it’s supposed to be” but I took a little issue with some of your tweets. Especially the ones about plumbers. I’m a developer not a plumber but I have repaired and replaced my own toilets. :slight_smile:

I think it’s an important thing to be able to do things yourself. Maybe we should bring back more shop classes and teach coding at an earlier level. Coding is almost like today’s version of shop. It’s a skill that can help you get around the world in which we live in.

Sometimes it feels like if you’re toilet keeps flushing, call a plumber. If your computer is broken call Geek Squad. If your stomach is grumbling call for take out. And yes, if you need to have your computer or phone do something special, get an app or programmer.

It seems like more of an emphasis has been put on consuming and not creating. This country gained strength by building great things and we need to keep doing more of that. Coding is something we need to keep doing well and doing a lot of but that shouldn’t be the only thing we focus on.

Somehow the US became a place where ideas are formed and the grunt work is sent to other countries were it’s cheaper.

We need people that are able to do that “grunt work” locally and we also need to have jobs for them. Don’t mean to sound like an isolationist but I think it’s a good idea that if we’re forced into isolation we’re able to sustain ourselves. Just like I think it’s important to be able to fix a running toilet that’s keeping you awake at 3am when plumbers are $#^&@ expensive.

But I’m going to go back to my first comment I made in your first post. Bloomberg is just helping promote a local business :slight_smile:


“But in order to be a competent driver, does everyone need to know, in
detail, how their automobile works? Must we teach all human beings the
basics of being an auto mechanic, and elevate shop class to the same
level as English and Mathematics classes? Isn’t knowing how to change
a tire, and when to take your car in for an oil change, sufficient?”

For God’s eternal holy sake, people:

Knowing “hello world” != “Knowing how to change the alternator”

Knowing “hello world” == “Knowing how to turn the headlights on”

Computers are computers and cars are cars.

How many times do I have to say it?

How many times do I have to say it?

How many times do I have to say it?

How many times do I have to say it?

How many times do I have to say it?

How many times do I have to say it?


I agree with you on this post (and the previous more controversial one).

In a few years I’m going to teach my daughter how to code, if she’s willing to learn, but for a career choice I will recommend something else.


This all seems like a bit of a storm in a teacup to me. I can’t think of one of my none programmer friends who’s expressed an interest in learning to code for the sake of it recently.

Seems to me the learn to code movement is driven by those who think they can make a quick buck by coding and those who are happy to make a quick buck trying to teach them.


Anyone who makes salary, personal or other decisions about people who call themselves coders, hackers, programmers, developers or similar should learn to solve a real-life problem by programming and all that that process entails (encoding, i18n, lint, security, etc.). Given sufficient training, these people would gain a healthy respect for the seemingly enormous time it takes to solve problems which are simple to formulate (and which are only attempted because we’re standing on the shoulders of giants), the complexity of existing programs, and just how much of a tossed-together mess 99.9% of all code is, including the reasons thereof.


Why people hates your position so much? Why they feel the urge of telling you what you should post or not. But most important, why they don’t get it, that this is the question of them all.


No, not everybody needs to learn to code, to the same degree, that not everyone needs to learn maths. How many of us apply the maths we learn in school to our lives (apart from the basics). Yet, is considered important that everybody gets exposed to maths in school. This is part of a rounded education.
What would happen, if maths wasn’t thought in schools beyond basic level. Do you think society would move forward from that? Do you think that those who love it, would naturally pursue it outside of class room. Do you think, they would do it in sufficient numbers to keep wheels of industry moving. I don’t think so.
I would consider myself as having an aptitude for programming and a love of programming, yet I never got exposed to it until I was 27. I wish that programming had been a subject in my school. Of course, a lot depends on how the subject would be thought (preferably project based rather then exam based).
Now, I look at my own country, Ireland. Stuck in the biggest slump since the founding of the state, with 15% unemployment rate. You might think that in this environment, it should be easy to find workers. Not in programming, though:

There are thousands of vacancies in this sector, and companies are having to fill these roles by importing staff.

This is nuts in my opinion. Thats why, I think programming should be thought in schools, so that we reach the minimum quota of programmers that we need to move forward.
Going back to the concept of a rounded education. Maths is considered a vital component of a rounded education, because it permeates the world of industry and progress, amongst other things. Without a sufficient amount of experts in this area, society could not move forward.
By the same token coding is driving almost every area of industry today. Think of robotics, industrial design and modeling, energy regulation etc. Its upturning the music, film, education and news industry.
Can you say the same about plumbing?


Apparently a significant percentage of readers stopped reading at the title.

It’s easier to dismiss then the discuss. Really, when you start your article with this, it’s all down hill from here.

Regardless, you go on and on about passion and importance, and yet you stumble right on into the point many where making.

Must we teach all human beings the basics of being an auto mechanic, and elevate shop class to the same level as English and Mathematics classes?

Now, I’ll excuse the ill-informed comparison of the core elements of programming to auto mechanics (something that has, at it’s core, not changed to something that has change dramatically), and instead focus on English and Math.

Somehow knowing what a participle phrase is is more critical than understanding an if clause. Reading and comprehending Frankenstein is of much greater importance then understanding the basics of a programming language. That knowing how to find X is critical to the daily life in a way that ordering a list isn’t.

And all these coming from a man who helped champion the copy/paste programmer.

So, if you want to be a programmer, all you need to do is follow your joy and fall in love with code.

Such wonderful touchy-feely sentiments. Do what you love.

It’s important to learn coding not because someone might be a programmer, but because of the value learning the core elements of programming provide. Dismissing it out of hand simply because you feel there is no value in the problem solving skills it teaches is no better than supporting Math or English because that’s the way it’s been done. Math and English are important, not because someone might become a Mathematician or a writer, but because of the skills it teaches. Problem solving and comprehension in communication.

But whatever. Taking a dismissive approach to this is not surprising, considering what you’ve done.


@Chris Vann

“”“Guess it’s time to unsub the rss feed.”""

Don’t let the door hit you on the way out. Seriously, what’s this with americans always announcing their intention to “unsubscribe” whenever they read something they don’t like? I’ve met this in outlets ranging from the “The Atlantic”, to trade press like “Keyboard” and “Dr. Dobbs”, and lots of blogs. Just unsubscribe if you feel like it, as for the self-entitled threat to unsubscribe: nobody cares about it.


What’s that an “argument by repetition”? You can say it one million times and you’d still be wrong. Yes, cars are not computers. That’s why it’s called an ANALOGY.


I am 25-year old student of Mechatronics and I partly fund my studies by completing the projects on http://www.vworker.com. I write software for internation customers and I am not sure, nor do I care, if I fall into the domain of “true software developers” or not. All I know that I make some good bucks out of it and that I often ignore my studies in sake of programming, mostly because I feel so happy doing it and learning new stuff in the process.

I don’t think anybody should be objected by this article. I am most certainly not. If someone finds himself insulted, perhaps he should ask himself a question: “why do I feel insulted in the first place”. If you love what you do, then do it, no matter what it is (as long as it does not harm others, of course). If you’re forced to do it, no matter how good you’re at it - it’s not your field, choose something else for your own sake.


I like your blog, but I think you’re off the mark on this one. Not everybody needs to be a professional programmer (just like not everybody needs to be a writer, mathematician, scientist, or language translator), but I do think everybody should study a little programming for pretty much the same reason they should study writing, math, science, foreign languages, etc.

For years I’ve told anybody who will listen that it’s a tragedy that not everyone is taught to draw in school. (I learned as an adult.) Everybody thinks it’s an innate skill that a few people have but they don’t, but they are wrong. Drawing is a basic skill anybody can learn, just like reading, writing, or arithmetic. And furthermore, drawing is really just seeing with a critical eye, a crucial literacy in a visual culture, even if making art has nothing to do with your profession. I think a similar argument can be made about programming.

Basic programming (not crafting commercial products) is just formalized logical and methodical thinking, which never hurts to have in your arsenal, and in addition it helps to give you a mental model for understanding the strengths and limitations of these devices and apps (not to mention the people who make them) that play an increasingly dominant role in our daily lives, economy, and public policy. In the digital age, this is basic literacy.

I really liked Douglas Rushkoff’s recent (and pleasingly brief) book, “Program or be Programmed,” in which he lays out the intriguing thesis that each major technological revolution has not lived up to its potential, and has been accessible only to an elite, while the masses always stayed a generation behind:

The invention of alphabets could have turned everyone into readers, but didn’t; an elite could read, everybody else listened and only got what the elite decided to read to them.

The invention of the printing press could have turned everyone into writers, but didn’t: the masses became readers (finally fully participating in the previous revolution), but only an elite wrote and controlled the printing press, and thus controlled most of the public discourse. Radio, audio recordings, TV, movies, and video were pretty much just an extension of this – content consumed by many, but produced by very few, who in the process set the bulk of the societal agenda.

Now we’re at the digital revolution. It has unlocked the production of audio, video, and writing, and the means for widespread distribution of them; now everybody is a content producer – of the kinds of content that the previous revolutions brought us. But the salient difference of this new technology is its programmability. What will we do? Will the masses control this technology themselves, or will they be passive receivers of whatever devices, apps, and features are handed to them fait accompli by the elite?

I’m not arguing that everybody should be a professional programmer, or even a hobby programmer, but rather that it will be a tragedy if only a small elite learns enough to appreciate what’s involved in the task, to form a mental model that lets them understand and reason about hardware and software, and feel empowered that they could, at least in theory if they wanted to, make those devices do what they want, not just what somebody else decides to offer them.


"Is it punchcards? … ". Effete modernist.

I programmed using punched paper tape for input, often patched with scotch tape. Beat that, horse’n buggy braggarts.

Is there any correlation between love of coding and love of crossword puzzle solving?


I’m amazed at how offended people are getting over this.

I don’t think anyone should need to try coding at all. I know a hell of a lot of people who wouldn’t get anything out of coding.


One thing I like about learning to write code is that it makes you understand how computers solve problems. When you code, you have to break up your problem into dozens, hundreds, or thousands of sub-problems. Different from other fields, if you don’t have a crystal clear definition of these sub-problems, you will drown instantly. A task as seemingly simple as recognizing a face - something our brain does in an instant - takes decades of research to approach, and consists of millions of sub-problems that brilliant minds have worked years solving. Programming forces you to take apart everything. What is it that actually makes up a face? What do all human faces have in common? How can I detect one face in a crowd of hundreds? How do I detect a pattern in an image? How can I tell a face apart from a balloon with a face painted on it? et cetera et cetera. Actually writing your own code makes you appreciate how much effort it takes to do the seemingly simplest things, and it takes away the impression that computers do magic. And seeing as how scary, hairy, and HUGE the rise of all this insanely complex technology is, understanding it a little bit can’t be a bad thing.

But I guess it’s not certain how much real insight a little bit of coding can get you in this respect. Plus the idea of having some basic knowledge applies to other fields as well, I’d say most notably economics.

Anyway, this feels a bit like a non-discussion. If some people want to learn to code, why not let them? Most of them will pull out quicly, and the few who persevere will bore us at parties with their coding knowledge. That’s not a pleasant idea, but worse things happen.