Software development is a rapidly evolving field, with new techs emerging every day, and sometimes you can feel outdated very fast!
I know that because in 6 years while I’m here a lot of things have changed and I found out a way to keep up with new technologies, and don’t lose the big picture - that way is having and keeping a Personal Knowledge Base.
What is a knowledge base?
A Personal Knowledge Base is your vault and workspace. It could be a set of folders or linked documents, that you can keep and organize:
Any pieces of knowledge you encounter throughout your professional journey. It even could be ongoing projects and high-level architecture design documents. Basically, it serves as a repository of knowledge, allowing you to connect and link different concepts to build a comprehensive understanding of the whole field.
Personal Knowledge Management, in general, is a fast-growing discipline, many techniques and tools are coming up every week, and keeping up with that could be an occupation by itself, however, at some basic level it’s easy to get started.
Try out Evernote for a folder-based approach, Roam Research for a link-based, or Obsidian for a mixed. Notion can also be very handy, it’s a more collaborative workspace and can be overwhelming, but with numerous integrations and great UX, it has become a lovely personal workspace for thousands of software engineers.
Reason 1: Staying Current in a Changing Landscape
Everything new stays on the shoulders of something that already exists. Every day we encounter new technologies, frameworks, tools, or methodologies, and it might be too much to even stay up to date with them.
But often, when you take a look at them, you might start recognizing that you already know what is this: Prisma is just an ORM, but more abstract, Vue 3 is closer to React, and Nest.js is just Angular merged with Spring.
A Knowledge Base here stands for a linkage from old technologies to new ones, from abstract simple terms like ORM and Database to specific technologies, like Mongo and Prisma. So whenever you meet anything new - most probably you will have a clear understanding of how to fit it into your picture of the world, in your technology landscape.
Imagine, how handy it might be to have answers for such questions in interviews or any other technology networking events. “Prisma? Just an ORM for the front end. I even have an example, let me show you…”
Reason 2: Expanding Your Mind
As you can see above - everything new says on something made before, isn’t it mean that even our ideas, projects, and initiatives stay on something that we already know?
Whenever you grow your knowledge base, you also will grow your mind, expand it for new ideas, and at some point, your insights will take a decent place in your own workspace, it could lead to new areas of interest, niches to explore or even new business opportunities!
The thing with continuous learning - we never know where you get to in the end. You just crack topic after topic and find yourself after a while a whole new person.
Reason 3: Freeing Up Mental Space
You might hear: “Our brain is for having ideas, not for storing them”, Dumping your mind on the page is more useful, and more inputs you have.
If you have full-time tasks at work, a couple of pet projects, and a dense backlog to learn, keep in your mind that seems like an unbearable burden, but your personal workspace can handle as much information as you can input, freeing up your mental space along the way, creating more capacity for new ideas and brain clarity.
Reason 4: Enhancing Communication and Expression Skills
“Writing is thinking”, have you heard it before? There’s much more truth in that than it sounds at first point. Often, when I have an idea, which sounds so smart in my head, becomes a dead end while I try to write it down, not losing logical connections between its components.
Writing extremely helps improve your ability to express complex concepts clearly and concisely. When you describe ideas in your own words, you may uncover gaps in your understanding or identify areas that require further exploration.
Your communication skills also grow, even if you write just for yourself in your own knowledge base - your teammates definitely will recognize the improvement of your expression skills after a while.
Reason 5: Enjoyment and Personal Growth
Building and expanding your knowledge base is a fulfilling and enjoyable experience in itself. It’s amazing to see how your knowledge base grows day by day, and what new connections between concepts are found, tools like Obsidian show graphs of your notes, and seeing it grow could be some kind of gamification.
At some point, you can’t keep yourself from starting to share some of your findings with your communities. Maybe even make some serious publications, or just blogging from time to time for personal and professional fulfillment.
Start from what you already have on your mind. What you use at work, what you are learning, or want/should/have to learn. Instead of just reading the How To article, and instantly applying a guide to your code, take a moment to jot it down to your notes. Whenever you find a good solution - add it to your notes as well.
Connect these findings to each other. For instance, if you found a good way to organize routing in React - connect it to React, Routing, and SPA conceptions in the base. At some point, you will recognize more connections between your notes, and more ideas will come to your mind.
Share your experience and the frameworks you use to keep your knowledge organized.