This post from Jeff Atwood has triggered an outraged on the internet, with responses from here, and here. It seems that he’s the lone guy going against this general opinion that everyone should learn to program, as in full-fledged program. However, it seems that from a surface, both are arguing with opposing thesis, and that one cannot exist with the other.

However, I’ve noticed that if you let it sink in, you’ll notice that the post is rather not a rant about anyone learning to code, but rather a rant against the idea that anyone can program (as a software developer) and get a job with it. This makes the opposing argument moot, since he didn’t argue against anyone wanting to code. And that, I support. You see, programming as a professional doesn’t make much sense at all. If everyone did that, it’ll just distract from their job.

Personally, I think that it’s a fine idea to have kids learn to program, and get their feet wet. Like anything else, like learning a new language, or learning to picture a frame. All of them will help make a “well-rounded student”, and everyone will benefit from a bit. I support an expanded courses of programming (4 years of it) in high school, and have it be a math program (for reference, it’s based in Ontario’s curriculum). However, giving them an advantage over other things, such as woodworking, the sciences, etc. and putting them with the 3 Rs, probably isn’t a good idea. Since first, you’ll need to know math and programming is just an extension of that. And second, you won’t know less about critical thinking, as these thing can be taught in other subjects, like philosophy, and math. And no, not learning to program will not prevent you from getting a job. It’s the other things that will, communication, working, attitude, etc.

In the end, it doesn’t hurt to program, and it’ll probably help you a bit on your job, but don’t expect to get left behind on life if you don’t learn to program. Nor should you expect to be a super-employee, and be more valued, simply because you know how to program.