What is the “Developer Knowledge Portfolio” and how to use it?
How to Invest and speculate on your knowledge
An Investment in knowledge pays the best interest
We like to think of all the facts programmers know about computing, the application domains they work in, and all their experience as their knowledge portfolios. Managing a knowledge portfolio is very similar to managing a financial portfolio:
- Serious investors invest regularly as a habit.
- Diversification is the key to long-term success.
- Smart investors balance their portfolios between conservative and high-risk, high-reward investments.
- Investors try to buy low and sell high for maximum return.
- Portfolios should be reviewed and rebalanced periodically.
To be successful in your career, you must invest in your knowledge portfolio using these same guidelines.
The good news is that managing this kind of investment is a skill just like any other – it can be learned. The trick is to make yourself do it initially and form a habit. Develop a routine that you follow until your brain internalizes it. At that point, you’ll find yourself sucking up new knowledge automatically.
BUILDING YOUR PORTFOLIO
- Invest regularly
Just as in financial investing, you must invest in your knowledge portfolio regularly, even if it’s just a small amount. The habit is as important as the sums, so plan to use a consistent time and place, away from interruptions. A few sample goals are listed in the next section.
The more different things you know, the more valuable you are. As a baseline, you need to know the ins and outs of the particular technology you are working with currently. But don’t stop there. The face of computing changes rapidly – hot technology today may well be close to useless (or at least not in demand) tomorrow. The more technologies you are comfortable with, the better you will be able to adjust to change. And don’t forget all the other skills you need, including those in non-technical areas.
- Manage risk
Technology exists along a spectrum from risky, potentially high-reward to low-risk, low-reward standards. It’s not a good idea to invest all of your money in high-risk stocks that might collapse suddenly, nor should you invest all of it conservatively and miss out on possible opportunities. Don’t put all your technical eggs in one basket.
- Buy low, sell high
Learning an emerging technology before it becomes popular can be just as hard as finding an undervalued stock, but the payoff can be just as rewarding. Learning Java back when it was first introduced and unknown may have been risky at the time, but it paid off handsomely for the early adopters when it became an industry mainstay later.
- Review and rebalance
This is a very dynamic industry. That hot technology you started investigating last month might be stone cold by now. Maybe you need to brush up on that database technology that you haven’t used in a while. Or perhaps you could be better positioned for that new job opening if you tried out that other language….
Of all these guidelines, the most important one is the simplest to do:
Invest Regularly in Your Knowledge Portfolio
Now that you have some guidelines on what and when to add to your knowledge portfolio, what’s the best way to go about acquiring intellectual capital with which to fund your portfolio? Here are a few suggestions:
Learn at least one new language every year
Different languages solve the same problems in different ways. By learning several different approaches, you can help broaden your thinking and avoid getting stuck in a rut. Additionally, learning many languages is easy thanks to the wealth of freely available software.
Read a technical book each month
While there’s a glut of short-form essays and occasionally reliable answers on the web, for deep understanding you need long-form books. Browse the booksellers for technical books on interesting topics related to your current project. Once you’re in the habit, read a book a month. After you’ve mastered the technologies you’re currently using, branch out and study some that don’t relate to your project.
Read nontechnical books, too
It is important to remember that computers are used by people—people whose needs you are trying to satisfy. You work with people, are employed by people, and get hacked by people. Don’t forget the human side of the equation, as that requires an entirely different skill set (we ironically call these soft skills, but they are actually quite hard to master).
Look for interesting courses at a local or online college or university, or perhaps at the next nearby trade show or conference.
Participate in local user groups and meetups
Isolation can be deadly to your career; find out what people are working on outside of your company. Don’t just go and listen: actively participate.
Experiment with different environments
If you’ve worked only in Windows, spend some time with Linux. If you’ve used only makefiles and an editor, try a sophisticated IDE with cutting-edge features, and vice versa.
Read news and posts online on technology different from that of your current project. It’s a great way to find out what experiences other people are having with it, the particular jargon they use, and so on.
It’s important to continue investing. Once you feel comfortable with some new language or a bit of technology, move on. Learn another one.
It doesn’t matter whether you ever use any of these technologies on a project, or even whether you put them on your resume. The process of learning will expand your thinking, opening you to new possibilities and new ways of doing things. The cross-pollination of ideas is important; try to apply the lessons you’ve learned to your current project. Even if your project doesn’t use that technology, perhaps you can borrow some ideas. Get familiar with object-orientation, for instance, and you’ll write procedural programs differently. Understand the functional programming paradigm and you’ll write object-oriented code differently, and so on.
Thank you for reading and as always,
If you enjoyed please leave a few claps 👏👏👏
As it really helps me a lot.
Have a lovely day.