The challenge with ‘drilling down’
A big challenge when doing self-paced learning projects to upskill in careers like software engineering (and many others) is ensuring that they actually lead to results.
In software engineering in particular, there are so many tempting topics to ‘drill down’ on. Surely, it’d be useful to spend a few weeks learning CSS Grid or really understanding data modelling in DynamoDB. Maybe you’ll even do good deliberate practice, doing exercises and trying the new techniques.
The problem, as Scott Young has found, is that: ‘…these were rarely the projects that resulted in promotions, raises or transformations of a person’s work.’
Benchmark projects improve skills and produce a recognisable achievement
To learn as fast and impactfully as possible, I instead try to focus my learning objectives on ‘benchmark projects’.
In short, a benchmark project is just the idea of first choosing a clear accomplishment - ideally something that is a real benchmark of success in whatever you’re doing - and then getting to work on the skills that help you reach that success.
So instead of “Learn about AWS”, I would go for “Become an AWS certified Solutions Architect”. Instead of “Learn about node modules”, it could be “Create my own simple NPM module and write about it”.
Using benchmark projects to focus my learning:
- motivates me as there is now a very clear finish line,
- eliminates excuses to give up on a project when it gets ‘boring’ (read: difficult or frustration),
- forces me to think about why I’m learning X and what it will allow me to do, and
- gives me a concrete achievement or “thing” that I can point to after achieving each goal.
An example: AWS Solutions Architect Certification
Instead of “Learn the fundamentals of serverless, networking, security, and databases on cloud providers like AWS”, I decided to book and pay for an exam to become a certified AWS Solutions Architect.
This provided a great benchmark as the exam is well-recognised in industry and because AWS recommends at least “One year of hands-on experience designing available, cost-efficient, fault-tolerant, and scalable distributed systems on AWS”.
At the time I had only 1-2 months of experience with AWS, primarily serverless, so studying for the exam turned out to be quite a challenge, but the clear benchmark for success kept me motivated. I certainly would never have pushed through an entire Sunday of diving into the details of how to use Security Groups, NACLs, private subnets, VPCs, and internet gateways to secure my ec2 instances!
Happily, I passed the exam and I can now point to both the certificate and the fact that I achieved it with a 12th of the experience AWS recommends and just 1 month of focused study. Deliberate practice on steroids!💪
More examples of benchmark projects
Here are some of the benchmark projects I have completed so far:
- Land my first developer job.
- Become a certified AWS Solutions Architect.
- Create a blog and write 5 posts.
- Make my first open source contribution.
And some others that are in my backlog that I hope to prioritise soon:
- Develop an app / project that people I don’t know use recurringly.
- Publish an NPM package that could be useful to other people too.
- Make 5 code contributions to open source projects I use.
- I’d love more ideas, please email or tweet me if you have some!