Learn faster by pushing limits


One technique I use to learn tools and techniques more quickly is pushing the limits of the tool or technique I’m trying to learn.

Here’s a coding example: In Lisp-based programming languages, there’s a meta-programming technique called macros. They’re like functions, but they operate on code. You’re only supposed to use macros when functions wouldn’t suffice.

I started abusing macros by writing them everywhere to learn when and when not to use them.

You can do the same thing for learning cloud infrastructure.

Let’s say I wanted to learn serverless. I would try to deploy all my infrastructure using serverless offerings—everything from static landing pages to CI Runners and databases. One thing I learned from this experience is that CI runners cannot be run in privileged mode on AWS Fargate.

Don’t do this in production, of course.