- **Epistemic status:** #evergreen A knowledge portfolio is the accumulation of knowledge in the particular domain (See [[DDD - Domain Driven Design]]) and general experience. Managing this portfolio is similar to a financial portfolio: 1. **Invest regularly as a habit:** Invest regularly some time into forming your knowledge portfolio, even if it is a small amount. 2. **Diversification is the key to long-term success:** The more different things you know, the more valuable you are. You need to know the ins and outs of your particular domain, but that should not stop you on pursuing other fields having [[T-shape Skills]] 3. **Balance between conservative and high-risk, high-reward investments:** Technology in particular moves at a high pace. Don't invest all your time in learning a particular technology that may disappear, and you won't get any rewards for it. Don't also miss opportunities to get on the first floor of a new technology who might be the next step on your career. The key is to balance your approach. 4. **Buy low and sell high for maximum return:** Learning a new technology, as risky as it is, can have a very high pay off on your career. Look for opportunities where learning a particular domain has high payoffs. 5. **Portfolios should be reviewed and rebalanced periodically:** Review periodically your learning path and make sure what you are learning is still valuable. Managing a knowledge portfolio can take time to master, but it can be learned over time, forming a habit. Use the core hours of work to learn about a new subject. To [[Advance your career]] work smarter by slowing down instead of taking all the grunt work you can take. To acquire some intellectual capital, you can follow some of the following guidelines. Not all apply to every field, but you can get an idea on what applies: - **Learn at least one new programming language every year:** Different languages solve the same problem in different ways, helping you increase your understanding. - **Read a technical book each month:** Form a habit of reading a long-form books about your particular domain or others each month. - **Read non-technical books:** Read books that inspire you and add new ideas to your repertoire. - **Take classes:** Look for courses at a local or online college or university. Maybe even the next nearby conference. There are plenty of courses online on YouTube or other platforms that can increase your understanding on a topic. - **Participate in local user groups and meetups:** Apart from increasing your network that can land you a future job, you can learn what other people are passionate and working on, giving you an indication on what to invest on next. - **Stay current:** Read news, blog posts on different technologies for your current project. --- ## References - “Drunk Post: Things I’ve Learned as a Sr Engineer : ExperiencedDevs.” Accessed November 15, 2022. <https://www.reddit.com/r/ExperiencedDevs/comments/nmodyl/drunk_post_things_ive_learned_as_a_sr_engineer/?utm_source=share&utm_medium=web2x&context=3>. - Quora, Michael O. Church-. “What I Wish I Knew When I Started My Career as a Software Developer.” Lifehacker, January 22, 2015. <https://lifehacker.com/what-i-wish-i-knew-when-i-started-my-career-as-a-softwa-1681002791>. - Thomas, David, and Andrew Hunt. _The Pragmatic Programmer, 20th Anniversary Edition: Journey to Mastery_. Second edition. Boston: Addison-Wesley, 2019.