Follow us on Twitter at http://twitter.com/blogCACM
The Communications Web site, http://cacm.acm.org,
features more than a dozen bloggers in the BLOG@CACM
community. In each issue of Communications, we’ll publish
selected posts or excerpts.
DOI: 10.1145/2507771.2507775 http://cacm.acm.org/blogs/blog-cacm
tists and engineers. Here is my value
proposition to them:
If you are a scientist or engineer, pro-
gramming can enable you to work 10 to
100 times faster, and to come up with
more creative solutions than colleagues
who do not know how to program.
Kevin’s story
Modern-day scientists and engineers
are spending more and more of their
workdays in front of the computer. As an
example, consider my friend Kevin, who
works in oceanography and mechanical
engineering. Whoa, sounds like he is
probably spending all day out on high-tech boats, rigging together mechanical devices like MacGyver and collecting data from underwater sensors, right?
This must be his typical workday —
hard hats and heavy-duty work gloves.
Actually, Kevin spends less than 5% of
his time out on the ocean; the other 95%
of the time, he is sitting in front of the
computer writing programs to clean up,
transform, process, and extract insights
from data collected out in the field.
The same story plays out for scien-
tists and engineers in all sorts of fields:
astronomers, biologists, physicists,
aerospace engineers, economists, ge-
neticists, ecologists, environmental en-
gineers, neuroscientists…the list goes
on and on. Modern-day science and en-
gineering is all about processing, analyz-
ing, and extracting insights from data.
three Reasons to Learn
Over the past few years, many scientists and engineers have ranted to me
about how furious they are that nobody made them learn programming
back in high school or college. They
now realize how much more productive they could be at work if they had
developed those skills earlier.
Based on these conversations,
I’ve come up with three reasons why
scientists and engineers must learn
programming:
1. You can work 10 times faster by
writing computer programs to automate tedious tasks (such as data cleaning and integration) that you would otherwise need to do by hand. If you know
how to program, computer-related
tasks that used to take you a week to
finish will now take only a few hours.
I cannot think of any other skill that
leads to an instant 10-times productivity boost for scientists and engineers.
2. Programming allows you to discover more creative solutions than
your colleagues who do not know how
to program. It lets you go beyond simply using the tools and datasets that
everyone else around you uses, to transcend the limitations that your peers
are stuck with. For example, you will
be able to write programs to automati-
Philip Guo
Why scientists and
engineers must Learn
Programming
http://cacm.acm.org/
blogs/blog-cacm/166115-
why-scientists-and-engineers-must-
learn-programming/fulltext
July 18, 2013
In recent years, there has been an admirable push to get more people to
learn programming. But if I have never
been exposed to programming, why
should I invest all of the effort to learn?
What is in it for me?
Pundits often give fuzzy responses,
like claiming that programming is the
“literacy of the 21st century,” that it
helps you become a more empowered
citizen, and that it enables you to create magical works of pure creativity.
Even though I agree with many of those
claims, I am not convinced that they are
concrete enough to motivate someone to
devote the thousands of hours necessary
to get proficient at programming.
Instead of trying to convince everyone to learn programming, I have a
more modest goal: encouraging scien-
helping scientists,
engineers to Work
up to 100 times faster
Philip Guo explains how programming skills can make
scientists and engineers more efficient and creative.