Don't Just Learn to Code, Learn How to Think Like a Computer Scientist

Posted: Thursday, July 10, 2014 by Tyler Durden in Labels:




Don't Just Learn to Code, Learn How to Think Like a Computer Scientist


Don't Just Learn to Code, Learn How to Think Like a Computer ScientistEXPAND
Recently, there's been much debate over whether or not everyone 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, which is the more valuable skill.


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 airplanes, but getting your pilot's license 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 math 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 airplane 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, math, biology, and history teach you how to think about a wide variety of topics, including airplanes; this is in contrast to a class that teaches you how to use a tool, such as how to fly one specific type of airplane.
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).
Photo by Seamartini Graphics (Shutterstock).

16 96Reply

A better application of Computer Science is anything that involves troubleshooting or critical thinking.
With the appropriate background knowledge, the same critical thinking helps a mechanic figure out whats wrong with a system, be it car, boat, plane or train.... or it can help a doctor with figuring out whats wrong with you.
What this is advocating is basic critical thinking skills. Everyone should have them, but a large percentage of the population has not been exposed to this method of thinking.

For the record, I think learning to code can teach you more broadly applicable critical thinking skills, but I think Brinkman makes a strong case for why everyone should learn computer science. I wote about this elsewhere, based on Terence Eden's post where he likens learning to code to learning spelling, while "Computer Science is about what makes a poem beautiful, why alliteration is alluring, how iambic pentameter unlocks the secrets of Shakespeare."

0 comments :