A few weeks ago I read an article about Richard Feynman touching on what he refers to as his “notebook of things I don’t know about”. Feynman was on a mission to understand absolutely everything. If someone published something that piqued his curiosity, he would want to fully immerse himself in the topic, and he would go off the radar until he learned it. To aid him in his quest, Feynman had a special notebook which he dedicated to recording new discoveries. He would fill it with his learnings on any number of topics.
The software side
So how can we translate this to software? There are great platforms on the internet like GitHub where you can get repositories and put your example, aka your notebook. Say you want to learn about microservices, you could develop a small example and put the code on GitHub as a reference. If you want to expand it, you can push new code to the repository and keep on adding to it.
Say you now want to learn about lambdas, you can either incorporate this in your microservice or start a new repository. Eventually you could build a small framework, common code or some scaffolding code that you can use in your projects and you would have a reference point to evolve from. This will also allow you to share your knowledge with others.
Or perhaps you would like to learn more about Continuous Integration (CI). You could go to cloudbees.com and use their platform to learn about Jenkins. You could also buy an old PC and start installing virtual hosts on there and create your own cloud. Maybe use Vmware or LXC or Docker and run Jenkins there. This opens up a whole world of possibilities.
All in all you could create a lot of code or setup environments the way you would like it and expand on that each time you learn something new and therefore work towards a standard for your work. A lot of developers already do this, but there are a lot more that don’t, and should!
To quote the article: “It’s a simple idea: translate your growing knowledge of something hard into a concrete form and you’re more likely to keep investing the mental energy needed to keep learning.”