The SecureMac Interview: Michael Hartl on technical sophistication
Michael Hartl is an award-winning educator and passionate advocate for technical literacy. He is the author of numerous books on programming, including the Ruby on Rails Tutorial, an introduction to web development which has helped people all around the world learn to code. Michael is also the founder of Learn Enough, an education company devoted to empowering people through the teaching of fundamental technical skills.
In this SecureMac Interview, we talk with Michael Hartl about the meaning of “technical sophistication”, the importance of technical education for cybersecurity, and more.
Thank you for agreeing to do this interview! What would you like our readers to know about you and your background?
Education is one of my great passions, and it has been my privilege over the years to help people learn some of the most fascinating and important subjects. I started out by teaching physics when I was in a Ph.D. program at Caltech, where I got to introduce students to the marvels of Newtonian mechanics, electrodynamics, and quantum theory. Critical subjects, to be sure, but the truth is they’re not especially important for most people to learn. Over the past few years, I’ve turned my attention to subjects of much wider importance, including computer programming (especially web development) and related skills like the command line, text editors, and version control. The result has been a series of books and online courses under the brand names Learn Enough and the Ruby on Rails Tutorial.
You’ve written before that “tech is the new literacy,” and you’ve emphasized the difference between what you call “technical sophistication” and what most people think of as simply “learning to code.” Can you tell us a little more about this?
Learning to code by itself is important but is fairly narrow. There are many adjacent technologies, such as text editors and version control, that are also important, often necessary. Beyond that, there’s the general ability to figure things out for yourself, and to figure out how to figure things out—like clicking on app icons, using the Help menu, or Googling the error message. It’s hard to emphasize how important these kinds of things are in the daily lives of technical people. (The xkcd comic strip “Tech Support Cheat Sheet” summarizes the situation well.)
One of the big challenges in cybersecurity still seems to be the human factor: people being susceptible to social engineering, or falling for phishing scams. How important do you think technical sophistication is from a security standpoint?
I’ve observed that, as people grow in technical sophistication—in a sense, being less often fooled by their computer—they become harder to fool in related areas as well. I have family members, for example, who’ve gotten good at troubleshooting their own technical problems, and at the same time have become much more proficient at sniffing out phishing scams and the like. It’s not a complete solution, but I think it can be part of a broader strategy of hardening yourself against attackers and not being an easy target.
In the same vein, we’ve all read about Cambridge Analytica; about nation states trying to influence elections through technological means; and we’ve started to find out some fairly disturbing things about how the tech giants collect and monetize our data. What role do you see for technical sophistication in terms of these macro issues like economics and politics? Is there anything that we as a society should be doing, educationally, that we aren’t doing?
I think it would be difficult to move the needle on a macro level, at least on any sort of reasonable timeline. That said, I’d love to see a greater emphasis on learning technical skills in the educational system, which I think would be empowering for many people.
Over your career, you’ve helped countless “non-technical” people to become technical, or technically sophisticated, and you’ve given a practical roadmap for how to do this through your work on the Ruby on Rails Tutorial and Learn Enough. But what advice would you have for people who are already fairly technically sophisticated when it comes to how to engage and communicate with people who still aren’t technical? It seems there’s often a sense of frustration around these interactions, whether they take place at home or at the office, such that they wind up creating friction or even resentment.
I definitely counsel patience, and it’s important to adopt a forgiving attitude. One thing I’ve noticed is various linguistic tells, such as the use of the phrase “of course”—I can’t count the number of times I’ve heard technical people say “Of course…” and then state something extremely non-obvious to non-technical people. I try to practice something along the lines of the house style of The Economist magazine, which writes things like “Mark Zuckerberg, CEO of Facebook” or “GE, an American conglomerate”. By always explaining everything, you mitigate the risk of coming across as condescending, while also including anyone who might otherwise be confused.
You’ve hinted before that technical literacy is still, in a way, in its infancy. But you’ve also suggested that there may come a day when every high school student, every person working in a law firm, and so on, knows how to do the technical things that are now only understood by a relatively small group of people. When you wrote that, you said that you still didn’t know what such a world would look like. Are you starting to see the possibilities of that future world take shape, or is it still too soon to say?
There’s a growing sense that “learning to code” (broadly defined) is important, but it’s still early days. For example, even among software developers, how many still don’t regularly use version control? I don’t know offhand, but I’d bet it’s higher than most people think. I expect that we’ll see growing adoption of these core technologies, expanding out from those on the leading edge like a ripple on a pond, as more and more people realize how powerful technical sophistication can be.
Last question…for someone who wants to move towards technical sophistication, but is sort of overwhelmed by all the possible options, all the things they could conceivably learn, what would you recommend as a good first step?
I suggest looking for opportunities to improve on a day-to-day basis. The tiniest things can get people on the road to technical sophistication. Has an app mysteriously stopped working? Try closing it down and opening it up again. Still not working? Try rebooting the device. It may sound goofy, but adopting the attitude of troubleshooting such mundane tech problems yourself can have huge effects on confidence with technical subjects generally. As far as the more formal study of technical tools goes, the first Learn Enough tutorial, Learn Enough Command Line to Be Dangerous, is designed to be as gentle an introduction as possible, assuming no prerequisites other than general computer knowledge. That might be a good place to start.