Recently, there's been much debate over whether or noteveryone should learn to code. Software engineer Yevgeniy Brikman says that this is the wrong question: there's a huge difference between learning programming and learning computer science, and the latter is the more valuable skill.
Picture: Seamartini Graphics (Shutterstock)
Learning to code, he says, does have valuable benefits. You'll learn how to build apps and troubleshoot technology, and it can open career doors.
However, programming is just a very small part of computer science, and there are other ways to apply the broader computer science concepts to life.
Programming, or writing code, is how you instruct a computer to perform some operation. If you've never written code before, you're probably used to interacting with a computer by clicking on things in an existing app. Under the hood, this app consists of code that tells the computer how to display the application, where to store or retrieve data, and how to react to your clicks.
All of programming is based on the principles of computer science...[It's] an essential part of learning computer science by applying the new way of thinking. However, by itself, programming is not nearly as general purpose.
Computer science, on the other hand, teaches you critical thinking skills that are useful in areas outside of technology; it's teaches you to process and represent information.
Brinkman explains the fine difference between programming and computer science with this analogy:
Now, just because a technology is ubiquitous doesn't mean you have to study it in school. For example, we all fly in aeroplanes, but getting your pilot's licence is not part of the K-12 curriculum.
However, the tools you need to understand how to think about flying are part of the curriculum:
- Physics and maths help you understand gravity, forces, pressure, velocity, friction, and lift.
- Biology teaches you what happens to the human body at high altitudes, with limited oxygen, and extreme cold.
- History explains how the aeroplane was developed, how it evolved, and its role in travel, commerce, and warfare.
By the time you graduate high school, you have an idea of what a plane is, how it works, and how to use it safely. General purpose classes like physics, maths, biology, and history teach you how to think about a wide variety of topics, including aeroplanes; this is in contrast to a class that teaches you how to use a tool, such as how to fly one specific type of aeroplane.
For the same reason, we should focus on teaching computer science and not just coding: the former is a general purpose way of thinking, whereas the latter is a specific tool.
Check out the full post for more examples and details of the often confused differences between learning to code and learning to think (via computer science classes).
Don't learn to code. Learn to think. [Don't Panic]