No matter how many blogs, books, or papers you read, prototyping is still the fastest way to understand anything. Here’s my workflow -
- keep a GitHub repo called “prototypes”
- every folder is one experiment
- something seems interesting, implement
- define exactly what you want to understand
- find the absolute minimum required
- code, run, iterate
The key thing here is finding the bare minimum, the absolute bare minimum, to code that would help you build that understanding. Initially, you will code more than required, but over time, you will start assuming data, adding sleeps, mocking, and making the right assumption.
Also, I get it, there is an urge to open-source the prototype or turn it into a project or startup. Don’t. Remember, the goal is understanding. Once you get it, you are done; move on.
Yesterday, I built and implemented different types of joins (article published today) and benchmarked them to see how they actually performed. I already knew the theory, but the prototype gave me real, rough numbers.
By the way, I have 200+ repos on GitHub filled with different types of prototypes and hands-on experiments. Of course, I cannot recommend smashing your fingers on your keyboard enough.