Introduction

As software engineers, programmers, or in any field who work in the technology or digital industry, skills and experience are our most important professional assets.

Unfortunately, these skills and experience expire very quickly. Our skills become outdated as new technologies, programming languages, and libraries are developed. Market or industry changes can also make our experiences obsolete and irrelevant. Given the ever-increasing pace of change in society, these changes can occur as quickly as possible.

If the value of our skills decreases, so will our value in the eyes of the company or client. We want to prevent that.

Our ability to learn new things is our most important strategic asset. The question is “how do we learn?” and “how do we know what to learn?”.

Knowledge portfolio

Photo by Markus Winkler on Unsplash
Photo by Markus Winkler on Unsplash

As I have written here, since 2019 I am very grateful to be able to learn about financial literacy. I have started investing in several investment products such as stocks and government securities. I have also diversified according to my financial goals.

During my practice, I realized that managing our portfolio in CV (knowledge portfolio) is very similar to managing a financial portfolio. At least, these are some principles in managing a financial portfolio that I believe in:

  1. Serious investors will invest regularly, and it becomes a habit.
  2. Diversification is the key to investment success for the long term.
  3. Smart investors will balance their portfolios between conservative, high-risk, and high-return investment products.
  4. Investors always try to buy at a lower price and sell at a higher price for maximum returns.
  5. The portfolio should be reviewed and rebalanced periodically.

We can also use these principles to invest in our knowledge portfolio.

Build a portfolio

Invest regularly

As with any financial investment, we must invest in our skills on a regular basis. Even though the amount is small, if we do it regularly, we can reap maximum results.

Diversification

The more different things we know, the more valuable we are. Basically, we need to know the ins and outs of the particular technology we are currently working on. But don’t stop there. Technological developments are fleeting. It could be that what we are good at now is useless (or not in demand) tomorrow. The more technology we mastered, the better. We can adapt to change. And don’t forget all the other skills we need, including soft skills.

Manage risk

Not only investment products, technology also has a spectrum. There are technologies that have the potential for high-return, there are also technologies that are low-risk, and some are even low-risk and high-return. It’s not a good idea if we invest all our money in high-risk stocks that can go bankrupt at any time, or invest all our money in conservative investment products (deposits) because we can lose the opportunity to earn more. We can follow general advice in investing.

Don’t put all your technical eggs in one basket.

Buy low, sell high

Learning a new technology before it becomes popular can be as difficult as finding an undervalued stock, but the payoff can be just as rewarding. Learning Go when it was first introduced and unknown to many software engineers might have been risky at that time, but it paid off well when nowadays many big companies like Gojek, Bukalapak, and other unicorn companies are looking for software engineers who can master Go.

Review dan rebalance

Our industry is very dynamic. The warm technology we investigated last month could be very cold by now. Maybe we need to hone our database skills that we haven’t used for a long time. Who knows we can get a better position in a new place if we try to change our role such as from frontend engineer to database engineer.

Then, how?

At least these are some ways I think we can do it:

Learn at least one new programming language every year

Different programming languages can solve the same problem in different ways. By learning a variety of different approaches, we can broaden our thinking and avoid getting stuck in “that-and-so” habits. And to be honest, learning other programming languages is not difficult. On the internet there are lots of online converter tools that can be used as a guide. Just try to search “java to ruby” or “js to go online converter” on google.

Read the technical book every month

Photo by Daria Nepriakhina on Unsplash
Photo by Daria Nepriakhina on Unsplash

While there are many reliable short articles on the internet (or medium), for deep understanding we need long books. Browse booksellers for technical books on the topic we’re working on. After we finish reading books related to what we are living, try to read technical books that are not related to what we are living.

Don’t forget to read the non-technical book too

It is important to remember that the software we produce will be used by humans whose desires we want to fulfill by using our products. We work with humans, are employed by humans, and work for humans. Even though we work in front of computers every day, don’t forget the human side. It requires skills that are completely different from what we have learned so far as software engineers.

Take classes, can be online or face-to-face

Look for courses that you find interesting. We can take online classes that we can find anywhere on the internet. Take a topic that we are passionate about.

Participate in community and meetup events

Don’t just go and listen, but participate actively. Extremely humble can kill our careers. Find out what people are doing outside our company, or even outside our industry.

Experiment with different environments

If all this time we only use Windows, try to use Linux once in a while. If we are coding using a text editor, try to use a sophisticated IDE with cool features, and vice versa.

Stay current

Read online news and articles about different technologies from our current project. This is a great way to find out what other people are having.


It is important to keep investing. Once we are comfortable with some new language or a bit of technology, move on. Learn something else.

The point is not in what technology we learn next, or which technology we will put in our CV. The point is that we can carry out a continuous learning process so that we can create a positive habit.