Self-Motivation
David Goggins
Former Navy Seal
Career Development
Bryan Cranston
Actor
Critical Thinking
Liv Boeree
International Poker Champion
Emotional Intelligence
Amaryllis Fox
Former CIA Clandestine Operative
Management
Chris Hadfield
Retired Canadian Astronaut & Author
Learn
from the world's big
thinkers
Start Learning

Hobbits Would Make Great Programmers

Question: What skills or characteristics do you need to be a great programmer?

Larry Wall:  Well, laziness, impatience, and hubris.  These originated as sort of a joke in the first edition of what we call the Camel Book, Programming Perl, and in a sense, they are the three virtues of a programmer.  A lazy person will try to always find some way to do something; they'll always be looking for ways of doing something faster, more efficiently, and if you really want to control the world, that's a really sort of hubristic notion—excessive pride, the thing that Zeus zaps you for having.

But it really was sort of a joke, in the Japanese edition, the translated edition of the Camel Book, they actually had to put "laziness, impatience, and hubris – this is a joke," because they felt that they would take it seriously.

So really what makes a good programmer is much more than those three things.  If you've either read the Lord of the Rings or seen the movies, you know about hobbits, and hobbits manifest many of the virtues that you need as a programmer.  You know, you need to have persistence, when the going gets rough, to keep slogging through, a kind of innate stubbornness—in a happy way, not in a mean way.  You have to be smart enough to outwit your enemies occasionally. And you have to be able to be social, you have to be able to deal with a group, your team members, some of which are like you, they're other hobbits, some of which are elves, and dwarves, or even men, and they think very differently from you.  So you have to be able to contribute your part as a hobbit, but also be able to understand other things.  So the day is long past when most programming is done individually.  Almost all programming is done in teams and so you need to be literate in a sense of, the hobbit sense of knowing your letters.  You have to be able to read documentation; you have to be able to write documentation that others can understand.  But mostly you have to be just slightly insane in the way that hobbits are, where they can view the long term, you know, the goal is to get back to your comfy burrow, and view all the, everything between here and there, at the same time, forget about all that and just deal with the problem you have at hand.

So in more concrete terms on a computer, you're telling it to do various things by name, and it's going off and doing those.  You have to simultaneously be aware of what it's doing down underneath, but if you're always aware of everything it's doing, you go really nuts.  So you also have to be able to shut that out and work on the high level abstraction.  And doing both of those simultaneously gives the best result in programming.  If you ignore either one of those, you end up messing up.  So, that's what you really need.

And like a hobbit, laziness, a hobbit is lazy in a very industrious way, and a hobbit is very impatient in a very patient way, and a hobbit is proud in a very humble way.  It sort of seems like contradictions, but to the extent that you can increase your dynamic range on all of those, you'll be a better programmer.

The "Lord of the Rings" characters embody what Wall sees as the three virtues of good programmers: laziness, impatience, and hubris.

Malcolm Gladwell live! | Strangers, Storytelling, and Psychology

Join the legend of non-fiction in conversation with best-selling author and poker pro Maria Konnikova.

Big Think LIVE

Add event to your calendar

AppleGoogleOffice 365OutlookOutlook.comYahoo


Keep reading Show less

Can a quantum strategy help bring down the house?

Study finds quantum entanglement could, in principle, give a slight advantage in the game of blackjack.

Photo by Sheri Hooley on Unsplash
Surprising Science
In some versions of the game blackjack, one way to win against the house is for players at the table to work as a team to keep track of and covertly communicate amongst each other the cards they have been dealt.
Keep reading Show less

Virgin Galactic uses space tech to create new supersonic jet

The space tourism company Virgin Galactic teams up with Rolls Royce to create a new Mach 3 supersonic aircraft.

Credit: Virgin Galactic
Technology & Innovation
  • Richard Branson's Virgin Galactic announces a partnership with Rolls Royce.
  • The space tourism company will create a new supersonic jet for super-fast travel on Earth.
  • The aircraft will travel at Mach 3 – three times the speed of sound.
Keep reading Show less

Map of the World's Countries Rearranged by Population

China moves to Russia and India takes over Canada. The Swiss get Bangladesh, the Bangladeshi India. And the U.S.? It stays where it is. 

Strange Maps

What if the world were rearranged so that the inhabitants of the country with the largest population would move to the country with the largest area? And the second-largest population would migrate to the second-largest country, and so on?

Keep reading Show less

Hulu's original movie "Palm Springs" is the comedy we needed this summer

Andy Samberg and Cristin Milioti get stuck in an infinite wedding time loop.

Gear
  • Two wedding guests discover they're trapped in an infinite time loop, waking up in Palm Springs over and over and over.
  • As the reality of their situation sets in, Nyles and Sarah decide to enjoy the repetitive awakenings.
  • The film is perfectly timed for a world sheltering at home during a pandemic.
Keep reading Show less
Quantcast