What Warren Buffett can teach developers about their goals

An image of Warren Buffett: What Warren Buffett can teach developers about goal-setting

Warren Buffett isn’t known for his development skills—as far as I know. You wouldn’t immediately think he has much to say about learning JavaScript or Go.

Well, in truth, he doesn’t. But an anecdote involving him and his personal pilot is just as good for setting goals as a developer as it is for deciding your life’s goals.

You can read the whole story if you have time, but here’s the shortest version I can manage.

Buffett asked his pilot to write down the top 25 things he wanted to accomplish in his lifetime. Anything that came to mind.

Once the pilot finished the list, Buffett asked him to circle the most important 5. Only five, no matter how important all 25 items seemed.

The pilot said he’d start working on the top 5 items right away. He also said he would work on the other 20 as he had the time or saw fit.

Buffett interrupted him, insisting that those other 20 items just became a list of things to avoid at all costs. He wasn’t allowed to work toward those until he had accomplished the top 5.

Buffett’s strategy might sound harsh, but it relies on the idea that success depends on the elimination of distractions. Items that end up on the avoid list are still meaningful, but they distract otherwise successful people from achieving any of their goals. It’s why many people have a dozen half-finished projects and maybe just one finished one.

My quickly-growing list

The development community is one of constant distraction. There’s always another framework, language, or app to try. And it seems like as soon as you’ve learned something, the rest of the industry heads in a different direction.

Remember when Ruby on Rails was the way to develop web apps? Remember a time before React?

All that motion means it’s way too easy to get overwhelmed with things you want to learn or do as a developer.

What's the BEST DEAL in cloud hosting?

Develop at hyperspeed with a Performance VPS from SSD Nodes. We DOUBLED the amount of blazing-fast NVMe storage on our most popular plan and beefed up the CPU offering on these plans. There's nothing else like it on the market, at least not at these prices.

Score a 16GB Performance VPS with 160GB of NVMe storage for just $99/year for a limited time!

Get limited-time deals!⚡

I’m a pretty amateurish developer—I’m a writer by training, after all—but I know this all too well. Years ago I used plain CSS for all my front-end projects. I then added Sass, followed by a custom grid system for all my projects. I then used Susy for a grid, then Milligram, then Bulma, and now I’m on Tailwind. I don’t even bother with Sass anymore—it’s all about PostCSS, too.

Sometimes I wonder how much time I’ve wasted, and how much I haven’t accomplished, by this constant bandwagon-chasing. Don’t even get me started on WordPress versus static site generators.

That waste doesn’t even include all the things I’d like to learn about development, like continuous integration, a “real” server-side language, or anything beyond the basics of server security. It seems like I’ll never get to most of them.

And maybe that’s the point.

Applying the ‘not-to-do list’ to development

Developers can and should cut some of these distractions from their own lives by following Buffett’s advice. He advised his pilot to think about his entire life, but let’s narrow it down to our development skills and education.

Now’s a good time to hunker down and start your list. I’ll be here when you’re done.

Here’s mine:

  1. Build and launch a web app/SaaS-based business.
  2. Learn a “real” server-side language (not JavaScript).
  3. Figure out SQL queries for once.
  4. Understand Linux server security.
  5. Solidify my personal development pipeline.
  6. Learn how to document my code correctly.
  7. Study machine learning and how I could benefit from it.
  8. Learn one of the front-end JavaScript frameworks.
  9. Understand and memorize regex in one language.
  10. Code up an interactive piece of fiction.
  11. Study algorithm basics.
  12. Create code that I can be proud of.
  13. Write an ebook about some development-related project/process.
  14. Become a master of the Linux terminal.
  15. Build a web dev/front end portfolio.
  16. Get paid as a developer, not a writer who can also develop some.
  17. Create an open source tool that people use.
  18. Support someone else’s open source tool.
  19. Make friends with other developers.
  20. Find a development mentor.
  21. Learn Python.
  22. Start a development podcast.
  23. Get interviewed about development.
  24. Create a cohesive, complete online course.
  25. Discover a cool intersection between development and storytelling.

The bolded ones are those I’ve chosen as my top 5.

Creating the list was tough, but narrowing it down was even more harrowing. My brain hurts.

It’s not surprising that I chose some of the biggest, most aspirational goals on the list. They might not be as easy as learning regex, but they are far more important to me. So, it’s time to forget about Python and podcasts in favor of the rest. Time to cut the excess and get to work on the things I actually care about.

Machine learning can wait.