dagblog.
← Archive

How to cultivate a knowledge portfolio


After a while I got back to reading the excellent The Pragmatic Programmer: From Journeyman to Master by Andrew Hunt and David Thomas. This time I got into the chapter “Your Knowledge Portfolio.” The authors point out that your experience and knowledge are your most important assets, then offer a few tips on managing your knowledge portfolio so it keeps growing. Their method borrows from financial investing.

  • Serious investors invest regularly. It’s a habit.
  • Diversification is crucial to long-term success.
  • Smart investors spread their money across investments from conservative to risky.
  • Investors try to buy cheaply and sell for as much as they can.
  • Review and rebalance the portfolio from time to time.

Each piece of advice comes with a way to apply it as a developer. I don’t want to copy too much, so I’ll share the less obvious tips I’ve more or less tested in my own work.

Pick up a new language or technology at least once a year

If you develop in Java, learn or explore a new language or technology at least once a year. It doesn’t matter if you won’t use it in your current project. You might discover approaches you would otherwise miss. At a Grails presentation, I liked the metaobject programming and the way it dynamically extended the persistence layer. I remember thinking what a shame it was that you couldn’t do that in Java, only to look more closely and find that you could with AOP.

Read books that aren’t about computers

People often forget that they spend more time in meetings and talking to colleagues than communicating with a computer. There’s no harm in setting down Bloch’s Effective Java and picking up, say, Fareed Zakaria’s book on the clash of civilizations. You can read all sorts of things. Inspiration is everywhere, from antiquity to Lance Armstrong’s biography. I recently found some remarkable parallels between software projects and successful special operations, including Mussolini’s abduction by Otto Skorzeny, the raid on the Son Tay camp and the release of hostages at Entebbe Airport in Uganda.

Learn beyond the technologies everyone already uses

Learning the Spring Framework today is a bit like showing up after the funeral. It’s been around for at least five years, and unless you’ve been asleep, you already know it. Look for technologies, languages and approaches that are still waiting for widespread use. You might back a horse that gets only fifteen minutes of fame, and that’s fine. You’ll gain experience either way, and one day you’ll hit the mark and get a head start.

Try the opposite of what you use

The worst thing that can happen is getting stuck in your ways. Look for the opposite of what you already have. Used Windows all your life? Install Linux. Work as an architect? Code for fun on an open-source project. Always dated brunettes? Try a blonde ;-).

Medium version

Related articles

Related CZ Podcast episodes