Core Concepts
To become an expert in any field, one must solve practical problems, understand the trade-offs of different solutions, and share knowledge with others through various means.
Abstract
The article outlines a step-by-step approach to developing expertise in any field:
Start by identifying and solving practical problems within the context of what you are trying to learn. This hands-on experience is crucial for building true competence and expertise.
After solving a problem using your own approach, study the patterns and best practices used by experts to solve the same type of problem, such as two-phase commit, CQRS, SAGA-based orchestration, or event sourcing. Understand the trade-offs between your initial solution and the expert-level approach.
Generalize this process of continuous learning and problem-solving to quickly develop expertise in your field of interest.
The final step is to contribute your knowledge to the field, such as by writing articles, teaching courses, attending community meetings, or contributing to open-source projects. This not only helps you solidify your own expertise but also allows you to learn from the feedback and challenges provided by other experts.
The article emphasizes that this approach of hands-on experience and knowledge sharing is a "fail-proof formula for building expertise in anything quickly," while also cautioning against the pitfalls of imposter syndrome and the Dunning-Kruger effect.
Quotes
"The real learning and lasting expertise will come from studying the difference between the two solutions (i.e. your first attempt vs the pattern) and understanding the tradeoffs that result from each solution."
"This is very important because not only will it help you become noticed as an expert on the topic, it will help you to further refine your knowledge and expertise by teaching others and learning from the challenges to your contributions that will be provided by other experts on the topic."