In others articles you may have seen that I have got a lot of value out of ‘Make it Stick‘ in building my learning plans/confirming that I’m designing my learning in an efficient way.

TLDR; the book gave me some great ideas on how to get more out of training courses by do some homework beforehand. The study plan I created is here and it covers the AWS DevOps Course I am about to go on.

In this article I’m going to review a case study from the book to suggest some tips and tricks. In this instance, I’m going to use the case study of a guy by the name of Tim Fellows, a psychology student at the University of Southern California. He was surprising his lecturers by getting grades of around 90-95%. And on all types of activity, be it multiple-choice, exams, coursework etc.

Fellows used the following tactics, amongst others:

  • Reading up before the lecture, based on the course outline
  • Anticipating test questions based on the outline
  • Terms that he doesn’t understand/remember he makes sure to learn/spaced repetition
  • He writes the high level concepts and connections out and keeps them above his bed

Putting this into practice – a practical example

I have an AWS course coming up with work, and I wanted to maximise the benefit of it. I’m not sure about you, but in the past, I’ve turned up on the day, done the labs, but I’ve not really had any sense of the big picture. Or if I have, it’s only after the event.

Why does this matter? Well perhaps it doesn’t. But the people at my work who always seem to keep ahead of the game (and my goal is the whole work-life balance thing after all) have this great ability to keep on top of the high level concepts and dive in when needed.

I’m one of those people who doesn’t seem to get something for ages, and then I get all the details, and understand everything all at once. If it was a software project, my learning style appears to be ‘big bang’ rather than anything ‘agile’.

So, I’ll apply Tim Fellows tactics to my own learning. I’ll show how my actionable steps went, and then I’ll let you know if it actually worked after the course..

Reading up before the lecture, based on the course outline

The course I was doing is an AWS DevOps one. For copyright reasons I wasn’t couldn’t get the slides before the event (or indeed afterwards) as they belong to AWS.

However, after speaking to the trainers I was pointed in the direction of the AWS Ramping Up Guide for Developers and given pointers on which modules to focus on.

It’s just a primer

NB: I’m not talking about spending hours on this work BTW, since we’ll be finding out most of the answers during the study itself. it’s more an exercise to prime our brain for what we will be doing beforehand. As with Tim I just want high level concepts and connections, and before I start the training.

Having a context gives me focus

Why are we doing this then? I’m hoping that the hour or so I spend doing this beforehand pays dividends in terms of having a clearer focus during the course itself.

I’m hoping that having my questions, connections and context upfront will narrow my focus during the training. I’m hoping that already having the big picture before I start will help me by:

  • There’s nothing distracting me that thinks ‘but where does this fit in?’ since I’ve already established that.
  • I we have ‘a context’ to start with, we are approach our learning ‘in terms of x’.
  • I’m hoping that this preparation allows me to build ‘richer learning chunks’ much earlier than we would have. And as I’ve previously written about, chunks are the ‘currency’ of our expertise.

Let’s move onto how to put it into practice.

Use the course material for the big picture

I’ll use the PDF guides I was given to get context, by applying the techniques laid out by Tim Fellows. The guides are as follows:

A course outline

The first resource I got from the trainers was a course outline. This was a bit vague but it was useful in as much as gave me a high level resource from which to generate questions.

A ramping up guide

I contacted the trainers after downloading the outline and seeing it was a little light on details. They pointed me to the AWS Ramp Up Guide for Developers and gave me pointers on which sections were relevant to the training.

With these two resources I felt I had enough ‘raw material’ to apply the principles used by Tim.

Anticipate test questions based on the outline

In my case, there’s no practice quiz that I know of. But that doesn’t mean I can’t anticipate what the course is trying to get me from and to.

So I worked through the course outline, looking at each section, and then translating into my own gaps in my knowledge.

For example the first section read:

DevOps Engineering on AWS shows you how to use the most common DevOps patterns to develop, deploy and maintain applications on AWS.

Which became:

Things I don’t know:

What ARE the most common DevOps patterns?

What are the means of deployment on AWS?

How do we maintain apps AWS once they’re built?

For the ramping up guide I followed a similar approach. I was advised to look at Section 5 and so I very quickly read up on the sections covered there and formed questions based on overviews and existing knowledge alone. Remember the actual learning is going to come from the course , we’re providing context by doing this exercise..

Learn terms you don’t understand

So by running through the 2 guides, I was able to from a table like the following:

ResourceArea IdentifiedQuestions from Overview
Ramping Up GuideContainersHow do plain docker and AWS ECR interact?
How do plain docker and AWS ECS interact?
What’s the relationship between ECS and docker-compose?
How does Kubernetes relate?
How does app mesh relate?
Ramping Up GuideCaching and other performance enhancing measuresWhat options are there for caching?
Ramping Up GuidePerformance whitepaperWhat are the architectural ideas?

Build answers before the course

Next comes finding building out the high level answers. Remember, the purpose of this isn’t to do your own training course, it’s to ‘knit together’ the key ideas before we start the course.

Think about it. If we only got our questions from the overview and our existing knowledge there’s only so far we can, and more importantly should take our learning at this point.

ResourceArea IdentifiedQuestions from OverviewAnswers
Ramping Up GuideContainersHow do plain docker and AWS ECR interact?
How do plain docker and AWS ECS interact?
What’s the relationship between ECS and docker-compose?
How does Kubernetes relate?
How does app mesh relate?
Images get pushed to ECR instead of DockerHub
ECS runs tasks definitions but also defines the container limits
ECS is an orchestrator, that can understand docker compose to build its tasks
EKS is an orchestrator
Services have to report on their health so we can re-route
Ramping Up GuideCaching and other performance enhancing measuresWhat options are there for caching?Route53, Cloudfront and Elasticache
Ramping Up GuidePerformance whitepaperWhat are the architectural ideas?Sharding, Caching, Monitoring, Compression, Mechanical Sympathy

Build connections before the course

Finally, we are following Tim’s points on getting the high level connections together. He writes them out and puts them above his bed. I’m going the slightly more advanced spreadsheet that I can refer to anywhere.

ResourceArea IdentifiedQuestions from OverviewAnswersConnections
Ramping Up GuideContainersHow do plain docker and AWS ECR interact?
How do plain docker and AWS ECS interact?
What’s the relationship between ECS and docker-compose?
How does Kubernetes relate?
How does app mesh relate?
Images get pushed to ECR instead of DockerHub
ECS runs tasks definitions but also defines the container limits
ECS is an orchestrator, that can understand docker compose to build its tasks
EKS is an orchestrator
Services have to report on their health so we can re-route

Reproducible tasks because they’re code
Ramping Up GuideCaching and other performance enhancing measuresWhat options are there for caching?Route53, Cloudfront and ElasticacheCache static, weight routing
Ramping Up GuidePerformance whitepaperWhat are the architectural ideas?Sharding, Caching, Monitoring, Compression, Mechanical Sympathy
Bias towards serverless, deploy often, choose the pattern that fits the technology choice

Conclusion

You can see the full sheet of questions, answers and connections here. I’m hoping that this ‘pre-coursework’ is the equivalent of a decent ‘warm up and stretch’. By building out connections with what I know before the course, I’m hoping that I’ll hit the ground running.

Will it be worth the effort? I’ll report back after the course in another post.

By James