a companion discussion area for blog.codinghorror.com

Please Don't Learn to Code


It seems that Jeff (and most of those who agree with him) argue against letting “mere mortals” learn to code because they’re afraid of losing their job security, and frankly that’s pathetic.

If you’re worried your employer is going to outsource your job to the Mayor of New York, please get a job in the service industry, because frankly, I’d rather have to maintain and debug his code than yours. And yes, I’d like fries with that.

Those who argue against learning to code as a meaningful exercise in expanding ones mental faculties, or as a way to better understand what code does to avoid being duped need only look at how easily politicians swindle the ignorant masses who can’t read or add.

@Konrad was a particularly elucidating example of that mentality. By all means eliminate math and reading as well as keeping coding from the core curriculum if you want ignorant slaves. But don’t complain when your chamber pot smells because the surly churls haven’t got around to changing it yet.


Although this is an entertaining and interesting post, I’ve been wanting to learn how to code for years. I’m a huge nerd and always have been since I was a kid. I’m just not very good with reading books of text. I’m more of a hands on learner. I’m a machinist by trade and have had to learn how to program a CNC lathe to do my job. I love how things work and feel that to learn the basics of how computers and programs work, you should learn how code works to know these things. I’m hoping to find someone who can kind of help me learn coding. Codeacademy didn’t help much because it didn’t explain a lot of things for beginners like me. Like where to put the { } symbols. I read a really awesome tutorial earlier about Java that explained variables, control structure, data structure, and syntax very well and feel I’ve learned a little about coding. Hopefully I can learn more soon.


At the very least you should teach kids about binary. Just the knowledge of the fact that pretty much your whole entire world can be encoded into 1s and 0s is amazing. Learning to program also helps you understand and appreciate the tech world around you. Also it helps you to look at the world in terms of logic, it helps to understand true and false things, and that knowledge could help you think things through more clearly. Lastly it also gives you a lot of experience in analysis and failure. P.S. Even though it would be good to teach kids the underlying basics of programming. I am glad that schools do not teach it because of the fact that they do not teach hardly anything well especially in America.


Lots of good points, in particular too many people try to create solutions for problems that don’t exist. One point though is -

There are different types of programming
If everyone knew the basics of using excel forumlae, they would find doing their accounting easier
If everyone knew the basics of shell scripts, they would find managing their media archives


I think you should stop telling everyone what do to!



for normal people IT is good to know how to program on
the highest level possible. for remembering the mapping of a key
to a function you use. functional gesture;

copycat = command+c
zO_Om = control + touchpad(range(100.,0.,001))
LMB = select

or is it programming self?

gruss aus germany :wink:


This guy is right, if we all knew how to code, none of us programmers would recive our megar payment for who we are. Like for instance, just because you know how to read, doesnt mean somebody will pick you out of the employment line and pay you 100,000 dollars monthy because you can read, anyone can do it. So if anyone can program, nobody would have a job for programming. Because its just as important as reading, anyone can program, but if everyone programmed as good as notch, where would windows or Apple be? Like if anyone can juggle, than juggling would not get you the fame you deserve, or the money you make. Not everyone should program, or programming would be worthless. But if NOBODY programmed, then we would all be computer idiots, and thats where we are. To code can be a small hobby just to create small applications for friends, but if you wanna take it professinal, thats where you learn. Theres more to reading, you just know the basics. Same with programming. Theres more to it, but its good if you get the basics.

Saying “Don’t learn to code” is like saying “Don’t learn to read or write” or “Don’t get a job”. Now I totally see where you are going with this no doubt, by seeing how coding is something for you to discover, not have shoved down your throat. But not learning how to code at all is giving up a education all-together.Yes, its true, coding SHOULDN’T be one of the main subjects, but at least for bill gates sake put it up as an opportunity. To code or not should be up to you, as coding is only fun if you think it is. But having it shoved down your throat makes it boring and dumb, and that’s the exact opposite of what coding is. You should not take coding because everyone else is. Coding only makes you happy if you truly give into it. I hope that explains the thoughts put into this, along with ones of my own. Spoken from the words of a happy ruby programmer who thought if he never learned to code at all, he would have nothing to do with his life.

I learned 5 scripting languages in less than 8 weeks, and I am the happiest man alive. The more you know, the more satisfied you are. The more ignorant you are, the more dumb you look. You can only learn if you want to, and not learning gets you now where.


Yes, people code professionally who shouldn’t. But problem solving is also something people do for fun. Problem solving games should be designed that encourage learning such things as design patterns and should present tools that correspond with an API. These puzzles can be made fun enough that children will want to play with them.
There is an intrinsic value to programming, like writing a poem, or folding origami.

This intrinsic value is a higher quality motivator than the utilitarian one (of which the “boot camp” victims seem the ultimate representation).

It is definitely something that should be made accessible to younger children. We need more code mozarts. It will be a Mozart that designs the first recursively self-improved AI system.


“It puts the method before the problem. Before you go rushing out to learn to code, figure out what your problem actually is. Do you even have a problem? Can you explain it to others in a way they can understand? Have you researched the problem, and its possible solutions, deeply? Does coding solve that problem? Are you sure?”

I don’t know about you, but I doubt anything as abstract as a “problem solving” course would have stuck with me without a concrete application to learn it alongside or by-way-of, and the abstract nature of programming makes it the ideal application.

As with Math, I don’t think it’s a matter of learning the application before the theory or the theory before the application, but learning them both in parallel produces the best results, at least for many of us.

Furthermore, the problem modeling/solving and critical thinking skills learned through programming have important applications in most (if not all) professions and in many areas of personal life (due to surplus of problems and shortage of critical thought :wink: ).

I can’t think of an application that lends itself to a broader range of applications while being concrete enough to facilitate an understanding of the subject.


In general, you failed to address the value of transferable skills. Shame on you. :stuck_out_tongue:


30 year career in programming eh?

Maybe you should retire…


The fundamental problem with all of this is, programming does not teach you anything about how computers work, even at the assembly language level. Don’t believe me? Go spend six months learning VHDL or Verilog and make a CPU core with an FPGA, then you will have some idea about how computers work. Until then, learning to code is just an exercise in understanding the tools people use to solve problems with computers.

Learning to code in order to learn about computers or the Internet is the wrong approach. Knowing how to code does not magically give you insight into how problems have been solved with programs and computers, any more than knowing advanced math gives you insight into how NASA put a man on the moon. It might give you more of an appreciation into the scale of the problem solved, but that’s about it.

Back in the 80’s when home computers were getting popular, the only people who owned them were geeks, and most systems came with BASIC in ROM. You could play crappy games or code. Now that computers are a commodity, it does not mean the number of geeks has increased, but easy access to getting started with programming is orders of magnitude larger.

Seems analogies are popular here, so I’ll use one for the sake of making my post larger. Cars are a commodity and everyone has one (and no, learning to drive is not analogous to learning to code). Of the people who can operated a car, only a few can fix a car (auto mechanics). And of those who can fix a car, even fewer can engineer and build a car.

Just because there are billions of cars and drivers in the world, being a mechanic or engineer does not make you a better driver, it does not stop accidents, it does not stop drunk driving, etc. Having a world full of educated drivers who can change a flat tire does not make cars or roads any better or safer.

Programming is like a puzzle. It is problem solving with a specific tool, and it can be fun - sometimes. Do it because you enjoy it.


Err… this post felt like a 1-minute soapbox rant. I can’t see what’s wrong with everyone learning to c0d3…


I’m glad I’m not the only one to vomit whenever I read these things. I keep seeing ads for Treehouse programming school and it disgusts me. We already have too many incompetent “coder” writing broken, untested, unmaintainable, inefficient code. Seriously, the world is flooded in this disgusting plague of crap code.

If you aren’t a professional and you don’t have a proper education, especially in things like algorithms, then for the love of god, leave the real programming work for other people. Feel free to write as much toy code and personal hobby projects as you like, but don’t think, even for a second, that anybody needs you to write code. We need the opposite.

Put the keyboard down!


This is great Jeff. Can we also throw our hat in as a better way to learn? I’d like to think that we are creating solutions providers out of people who need to be developers at www.codercamps.com.


So jeff tells not to learn to code. I wonder if he’s going to tell his kids same thing if they want to become just like Daddy? He will run over and show them how to code and it’s the best thing ever! But, of course, your kids shouldn’t learn to code, and you shouldn’t, and your friends shouldn’t, just jeff AND HIS KIDS should.

Now imagine if Jeff’s son was in school and a teacher told his son something like this: “Ok, just stop. You shouldn’t learn to code even if you want to. No, I don’t care if your Dad does it, you suck at it and the world does not need more bad code. Go finger paint or something.”

Jeff would be absolutely livid. He would probably try to have that teacher fired. Well actually Jeff might be a nice guy and would politely ask the teacher to maybe not say such mean things. But the point is, I know Jeff would be angry if a teacher told his son he couldn’t do something.

Yet, here’s Jeff, happily doling out advice telling everyone this very same thing. He’s telling other people’s kids to not learn to code. He’s telling adults who want to improve their lives, or just learn something new. He’s telling people from other professions that no, programming won’t help them.

Why? Why would Jeff tell people to quit and just let the professionals do this? Because of resentment.


Well im a good guitar player. I can play sweep arpeggios, and shredd away all over the neck. People that are interested in playing the guitar and forming a band that arent in possession of these sweet skills should never pick up the guitar and try making a carrer in guitar playing/making music.

Your lack of evolved sympathy and encouredgement for beginners trying to make a successful career in development really demonstrate your lack of maturity and intelligence. I find it ironic that someone that is suposed te be that smart would write a post that arrogant.

I tell you this, you don’t have to be the sharpest guy/girl in the class but you can still be successfull and aquire great skills with determination and motivation. That same principle goes ofr guitar playing. Not everyonne can still be a succefull guitar player even though your name is not Yngwie Malmsteen and provide good music that brings joy to people. There are of course peaople that can’t separate one note from another but that’s an extreme case. I would encourage people to pick up the guitar and make music that people enjoy if they have motivation, determination and enjoy.

Great things can be archived with determination and motivation among other traits, greater wonders have been archived. A programmer didnt buid the great pyramids of Egypt with bare hands. Meaby your good, meaby your amazing or even a rocket scientist. That dosn’t make you special. What make you special is what you will be remembered for, if that is an asshole hating on people trying to make a career in a respectable profession then go ahead…


I believe that more people should be able to at least have an understanding of the nature of software construction and code. Understanding of this should feed up within an organisation - from the grassroots rights through to executive.

  1. People easily blitzed by dev BS will find themselves wasting time and money when they realise that they have been duped by an arrogant and dishonest web shop.
  2. I’ve worked with a web team who didn’t know how to do the basics (as in, HTML/CSS/Javascript) which led to either onboarding their work, losing time because they didn’t know the basics, losing money because we had to bring in other specialists. It is not that difficult learning the basics.
  3. I’ve worked in the charity, global health and health care sector and I strongly believe that this sector needs more coders, developers, entrepreneurs. Yet many get snapped up by big gov, bug biz or airy start-ups solving non-problems. More different -types- of people need to code.
  4. Following on the previous three points above, my old work had HUGE development and launch gaps trying to deal with 20-person committees* in which only TWO people have an understanding of just some of the technologies at play. Said development project have been in ‘the works’ for more than two years now. *Also An Example of Death By Committee

We need more coders.
We need more developers.
We need more people with an understanding of software construction.


I see a lot of good comments here, on both sides of the debate, but I’m surprised that no one has brought up the issue of equity.

The reason I believe all children should be taught basic programming is because there are many students who might be excellent programmers who will never get the chance to find that talent because they don’t own a computer, or simply are female. If every child gets a chance to learn CS, those with the interest and talent can choose to pursue the field in depth. If the only people who study coding are those who will seek it out without any direct experience, only those who the stereotypes say will be good at the field, or those who parents push them, go into it. Right now, the children who are learning coding are mostly boys (4 times more males than females took the AP CS exam in 2012, which is the most extreme gender skew of any AP exam) and many potential software engineering genius are going into other fields because they think girls like them don’t code.


Mobile apps that visualize opportunities (what to grow and how, for how much) and dangers (weather, politics, economy) help a lot. I think corruption is the main cause of poverty, and transparency combined with free online education helps to establish trust.