Understanding New Concepts Quickly

Staying current with the latest trends and technologies in software development is crucial. Technology, library, and framework rise and sunset quicker than you can imagine. With so many new concepts emerging every day, it can be challenging to keep up. In this post, I will share my experience and insights on how I learn and understand new concepts quickly.

Personal experience keeping up with the tech

Nowadays with social media, is pretty hard to not be aware of what happening. That is unless you’re living in the jungle. Sometimes, the urge to learn may also come from the work environment. For example, when joining a new company who are using a different framework than you used to.

If you have followed my journey, the knowledge I have is pretty diverse. From blockchain to AI, to CyberSec, and more, I sort of have some baseline understanding (it is hard for a layman to distinguish if I am even BSing my way). Why is that so? Because I took the time and hard work to learn.

To keep myself motivated and willing to put in the hours, I need a purpose. Be it for joining hackathons to win some prizes or trying to solve a problem at work. Ultimately, is something that drives you to a point that you can forget about time.

I never let myself be bound by my past skills to define what I can learn. For me, once my purpose and motivation are aligned, is easy to stay focused and do what needs to be done.

The Concept of Transfer Knowledge

One technique that has helped me learn new concepts quickly is the concept of transfer knowledge. Transfer knowledge is the ability to apply knowledge and skills learned in one context to a new, unfamiliar context. By identifying transferable skills and knowledge, you can save time and energy when learning new concepts.

For example, if you are familiar with programming in C++, you can leverage that knowledge to learn a new programming language, such as Javascript or Python. While the syntax and some concepts may be different, the fundamental principles of programming remain the same. The best part, the knowledge you learn has a compounding effect as you learn more things.

Even if some knowledge doesn’t overlap, such as the storage mechanism Blockchain and AI. It doesn’t matter, because the underlying concept is still a storage for application. Therefore, you should roughly have an idea of how to apply it and just focus on understanding what’s different, and what’s new.

At first, it could be challenging to grasp the underlying concepts and principles. Rest assured in the tech world, most of the things you use have documentation for it. Get familiar with reading and learning the structure of the docs. If possible, make it like is a muscle memory to look for information within the docs.

Picking a Starting Point

When learning a new concept, it’s essential to pick a starting point. IMO, it doesn’t matter what it is, this could be a specific tool, programming language, or problem that the technology is used to solve. By starting with something, you can gradually build your understanding of the technology as a whole.

For instance, I started my journey with C++. But then, I need an API to interact with the web. That’s where I got my first exposure to using Casablanca (CppRestSDK) for a C++ application. I then transitioned to make my first SPA webpage with MithrilJS, and the rest is history.

Testing Your Assumptions

Making assumptions is a natural part of the learning process. At times, we cheat ourselves that we know how the high level component works. This helps us to overcome certain barriers of mental block and progress.

Is fine to assume. In our engineering practice, this is what we call a “spike”. If is correct, we give ourselves a pat on the back; If is wrong, we update our knowledge base.

A “spike” is a time-boxed period of exploration, typically used to answer open-ended questions or to evaluate the feasibility of a new approach, technology, or feature.

Conclusion

Learning new concepts quickly is a valuable skill in software engineering. Is also a life-long journey to keep learning. Make sure to be comfortable with learning. No excuse.