Today, it isn't unusual to come across some mention of how "everybody should be learning how to program". However, programming is not for everybody, and such a mindset is a bit ridiculous. Today, programming, and the ability to create software, has never been a more desirable and critical skill. Technology and software is everywhere, and it seems to manage pretty much every aspect of human life. Therefore, the desire to create more technologically literate students is understandable. Regardless, education should be centered on more important, fundamental skills, such as reading, writing, and math. In terms of education in math and science in the world, America has been falling behind, and is currently ranked at number 28. Reforming education to produce more critical thinkers and technology oriented students is a good way to increase this ranking; but teaching every student to program is not.
In modern computing, one of the greatest achievements is simply the fact that you do not need to be a programmer anymore to get things done. The industry has moved forward, and by now, has evolved far past the stage when computers were not user friendly at all. Why send people back to the Stone Age, when everything that is needed to continue moving forward can be found easily? Of course, everybody should know what computers are, how they work, and how to use them; skills are exceedingly important today. However, when you learn how to drive a car, are you also taught how to build a car engine? “By teaching low-level coding, I worry that we are effectively teaching our children the art of automobile repair.” says Jeff Atwood, Software Developer. “A valuable skill — but if automobile manufacturers and engineers are doing their jobs correctly, one that shouldn’t be much concern for average people, who happily use their cars as tools to get things done without ever needing to worry about rebuilding the transmission or even change the oil.” When applied to computers, it is the same principal. Society has evolved to a point where labor is divided so that everyone can make use of things without having to learn how to actually build them from the ground up.
If you are not planning on becoming a programmer, then you probably should not learn to code. Actually learning how to program requires a very long course of study and practical application. While it may be a fun skill, and an interesting way to flex your problem-solving finesse, most people who just “learn to code” will not end up learning anything that sticks. Some people like to throw around figures showing that the future of employment is in “IT jobs”, and that people who can program make the most money. Just because a few big companies are hiring programmers does not mean that everybody should take up programming. People looking to hire programmers are going to hire the one with a credible portfolio, and possibly even a college degree, over the “average Larry” applicant who just learned how to write a few lines of code in high school. Without a full technical education, and only bits and pieces of the problem solving skills, a user will never be able to fully appreciate the inner workings of a computer and never be able to manipulate them in any useful way. This approach to programming will result in multitudes of students with useless knowledge that will never do them any good.
A basic exposure to computer programming could be beneficial to developing students, but not when it is detrimental to the more fundamental academic pursuits; reading, writing, and math. Even programmers need these skills, and currently, in these areas, the American education system is falling behind. With a little bit of practice, and perhaps a good book, anybody can learn how to write a program. However, not everyone can say exactly “why” or “how” they wrote a program. These are things in a narrow field that career programmers spend years studying and mastering, which more or less makes computer programming is more of a vocational skill than an intellectual pursuit. Students do not need to be wasting their time learning this stuff, because no matter what they learn, it will always end up being done, and done better, by an expert. That is the entire reason that these experts exist: so that the average person does not need to waste their time learning how to program computers that have already been programmed with a primary goal of reducing the amount of things people need to do in the first place.
The “everybody needs to learn how to program” bandwagon is rolling at full speed, with the idea that teaching every kid how to write a few lines of code will make Americans more employable across the board. This is a noble pursuit, considering the impact and importance of such skills in today’s society. Regardless, sacrificing the general education of students so that they can learn how to write a code is just not the best way to go about doing this. America’s education ratings, compared to the ratings of other countries, are severely lacking. If schools begin to run off on a tangent of trying to teach every student how to program, the result will just be students who now know a little bit of programming, but less of every other important skill. There are enough resources available so that any student who wants to actually learn how to program can; and, as long as they are dedicated and interested enough, actually excel in the field. It is true that America needs to begin creating more enthusiastic and employable students, but this is not going to be done by sending them out with a little programming experience. Students do not need to learn how to code. They need to learn how to think.