There are two main sources of learning:
The experiences of others - Learning from history
Personal experiences - hands-on method
This is true in every field.
To maximize learning efficiency we should combine the two. Let’s see how to do that in data.
Learning from Others: Established Knowledge
The easiest way to learn anything is to use the huge amount of knowledge built by others. Tutorials, books, online courses, and open-source projects provide a lot of information. It’s like learning from history: studying existing work allows you to avoid common mistakes.
Data science has well-documented solutions and best practices. By exploring these, you can learn how to write clean code, process data, or build machine learning models. You don’t need to reinvent the wheel.
When learning from others, remember that every tutorial or guide reflects the author’s experience. Whether it’s a Kaggle notebook or a Stack Overflow solution, the solution you see is shaped by specific contexts. There is no one size fits all method, so don’t just learn the code, always recognize the “why” as well.
Learning from Your Own Experience
The most impactful learning comes from doing. Writing your own code, analyzing your own datasets, and debugging your own errors will 10x your knowledge.
Loop learning
When tackling a data science project, it’s easy to fall into the trap of repeating the same mistakes. Trying again without changing your approach will not provide knowledge. Step back, analyze the problem and what went wrong, and try to understand the underlying issue. That’s how you really learn.
For example, if your machine learning model consistently overfits, don’t just adjust hyperparameters blindly. Spend time on understanding overfitting. Maybe the problem is hiding in the dataset or somewhere else.
The Power of Reflection
After completing a project, ask:
What worked well, and why?
What didn’t work, and how can I avoid this in the future?
What gaps in my knowledge did this project reveal?
Blogging about your projects is a good way to document all these. You can also create resources to help others.
Combining Both Sources
The best learning strategy combines lessons from others with your own experience:
Start with Existing Knowledge: Follow a tutorial, read a book, or explore online resources to learn the basics.
Apply and Experiment: Use the above in your own projects. Whether it’s automating a task with Python or analyzing a dataset, hands-on experience deepens your learning.
Reflect and Iterate: Regularly review your progress. Are there more efficient methods? Better libraries? Smarter approaches?
I wrote about how I would learn to code for data here: