As software engineers we are always crazy about metrics. We capture logs to a central system, we use Nagios for IT infrastructure monitoring, we use health checkups for measuring state of our applications.
But the most important part is how do we me measure, track and improve our learning. We are always short on time, there is next burning bug to fix, the story has a deadline of yesterday, or there is a sales demo tomorrow where sales folks have promised non existent features which we need to build overnight. :-). IN spite of all these very valid excuses, we need to find ourselves time to learn. Because if we don’t learn, we will simply won’t grow.
Now that I have convinced you that learning is important, and say you schedule half an hour every day (not just weekday 🙂 ) to spend on learning, then you ask what do I learn. There are infinite new and exciting things coming up from Aws, Azure, Big Data, AI, ML, NOSQL, Kafka, D3, Game development, Mobile development, Programming Languages, the list is infinite. So you go and just watch Netflix.
What I would personally focus on is preparing a priority learning list and then follow the same accordingly. And here is how my list would go.
P1 – Things that you are using or intend to use in your current job
This could be Kafka, Solr, some security tool, or just advanced Java or Python. This would enhance your productivity in your current job, and free up your time (your most important asset).
P2 – Data Structures and Algorithms
Many engineers today under value the importance of using the right data structure and algorithm just under the pretext of – I can write shitty code, the machines are pretty fast. Don’t be one of them. Learn or revise your data structures (Arrays, Maps, Sets, Stacks, Queues, LinkedLists, Trees and Graphs). Implement them in your favorite programming language, and know when to use what. On whatever you are working at job or at college, just do a check if it has right time complexity, or can it be better. And test yourself on leetcode, geeksforgeeks, hackerrank etc at least twice a week. These platforms are not just for interviews. They help increase your daily productivity as well. On the algorithm sides, see if you can implement traditional search and sort algorithms, use recursion, backtracking, dynamic programming, regular string algorithms as and when required.
How to track your DS and Algo Learning – Solve problems on leetcode. Do contests on hackerrank. Measure yourself on easy, medium and hard problems.
P3 – Distributed Systems
The scale at which we are operating today is much much larger than what it was say 10 years back. Vertical scaling, regular monoliths, traditional RDBMS are not gonna cut it anymore. This is the reason why folks are going crazy about Micro services, Containerization, container Orchestration, Docker, Kubernetes, Kafka, Solr , etc. Start getting a feel about various NOSQL databases, when they are a right choice. Mastering these will take a lot of time, and many folks jump to this before taking care of P1 and P2. That would get you fancy jobs, but you will struggle post that. So do not come to this before becoming comfortable in P1 and P2.
How to track your Distributed Systems Learning – Give tests on Pluralsight learning platform., give mock interviews, give real interviews. Involve yourself in bug fixes and projects using these systems and rate your productivity, read company design docs and see if you are able to grasp most of the things.
P4 – Hobby Tech – Cool Things
Quantum Computing, Internet of Things, 3D Printing. Building your own robot, Rasberry Pi, Blockchain, Crypto, do whatever excites you. From a career perspective, P3 is a good bet. But from a purely fun perspective, you would be a lot driven to P4.
How to track your Hobby Tech Learning – Again test yourself, by building things this time.
If you are able to track your learning correctly, you would know where you are weak and where you are strong and can adjust your learning plan accordingly.
We are sorry that this post was not useful for you!
Let us improve this post!
Tell us how we can improve this post?