
School administrators and educators are currently zealous about the idea that every student should learn computer science. โThink about the world we live in now,โ says New York Mayor Bill de Blasio, โHundreds of thousands of good jobs will be accessible to those with coding and other essential skills.โ I agree that everyone should learn to program, but I disagree with Mayor de Blasioโs motivations. You shouldnโt learn to program in order to get a good job. Learning to think computationally can give you a new way to understand and describe your world. Learning to program can make you a more expressive person.
We express ourselves in many different forms, and each form has its core elements. Musicians rely on pitch, rhythm, and timbre. Visual artists and designers use color, form, and scale. Performers use movement, gesture, and timing. Computational thinking is another form of expression, and it rests on a set of core elements as well: Inputs and outputs connect a computer to the rest of the world. Named memory addresses called variables keep track of important properties, like temperature, bank balances, or button pushes. Conditional statements define what to do when one of the properties changes significantly (for example โif my bank balance drops below $10, email meโ). Various forms of iterative loops are used to continually check for changes in a systemโs inputs and to update its outputs. Functions combine several statements into repeatable actions. These concepts underlie every form of programming.
If you like to make things, you probably either design them with computers, or you put computers inside them. You may think youโre just a novice, but as you use these tools, youโre learning to program. If you think computer programming is all about math, youโre wrong. Itโs about describing a situation precisely, and giving good directions for what to do when conditions change.
Consider these everyday moments:
ยป If the temperature goes below 65ยฐ, turn on the heat
ยป When the drum solo starts, mute the guitar track and spotlight the drum kit
ยป Itโs just a jump to the left, and then a step to the right. With your hands on your hips, you bring your knees in tight.
All of these statements embody computational thinking. They could all be programs.
Computational thinkers arenโt just programmers. Theyโre the people who can create lovely intricate patterns in Illustrator, or make a really cool gizmo in Minecraft, or make a MIDI synthesizer play crazy microtonal jazz solos. They understand not only how to make a computer speak, but they also have an imagination for what it could possibly say. People often ask, โWhat language should I learn?โ There is no right answer because youโre going to learn several if you start programming. Pick something that computers are used for that excites you, and find out what languages are used to make it happen. With each new application, youโre likely to learn a new language, and youโll become a better programmer and a better computational thinker as you do.
Speaking and writing isnโt just something that linguists do, nor should programming be something that just computer scientists do. So learn to program. Like any form of expression, it will widen your view of your world as you learn to master it.
(Above) Leo Villarealย of The Bay Lights projectย uses code to set up fantastic light patterns across San Francisco’s Bay Bridge. Photo by Lucas Saugan
ADVERTISEMENT