Knowing what you don’t know

TLDR – These are the steps that I used to work out my training plan before I got started. I’m sharing the steps I used to ‘analyse’ the exam paper so you can understand how my training plan got built. It might be useful for you to work out how I decided to ‘play the game’, but if you just want to sign up to get a ready made training plan that’s fine too.

Step 1 – Use the exam blueprint to work out ‘patterns’

Exam guides and blueprints give us clues about the structure of an exam. It’s this dull and dry info that I used to work out ‘metadata’ about an exam if you will. From scanning these two guides I worked out how to distribute my efforts and tighten up gaps in my knowldge.

As an example I’ve included a table of ‘translations’. Now I didn’t actually write this myself when I was doing the training – they just went straight into my training plan. I’m showing it as an intermediate step so you can see how a dry blueprint and exam guide might result in concrete actions for you.

First the exam blueprint – I went through and analysed each part.

SectionDescriptionWhat does this mean to me?
Exam IntroductionDesign, develop and deploy cloud based solutions using AWSEnsure that my training includes understanding of cloud concepts
Exam IntroductionUnderstand the core AWS services, uses, and basic architecture best practicesEnsure that my training includes understanding of AWS concepts and services – white papers are likely to be important
Exam IntroductionDevelop and maintain applications written for S3, DynamoDB, SQS, SNS, SWF, Elastic Beanstalk, and CloudFormationEnsure each of these technologies is comprehensively covered in my training plans (separate flashcards/tutorials)
AWS KnowledgeProfessional experience using AWS technologyNothing – will continue this in day job and by doing any tutorials
AWS KnowledgeHands-on experience programming with AWS APIsUnderstand how the CLI and SDK works, and don’t only use the console in tutorials
AWS Knowledge Understanding of AWS Security best practicesEnsure IAM and other security technologies get covered
AWS KnowledgeUnderstanding of automation and AWS deployment toolsEnsure Cloudformation and CodePipeline are covered along with understanding Blue/Green deployments
AWS KnowledgeUnderstanding storage options and their underlying consistency modelsDynamo, S3 and NO-SQL knowledge is obviously important as it has its own section in this blueprint – create cards specific to them
General IT KnowledgeUnderstand loose coupling, REST APIs SQL/No-SQL, message queueingWas already familiar enough with these concepts – nothing specific to do in my case

Having done the exam, I can vouch for getting questions on everything except SWF. And that doesn’t mean you won’t of course. So my training plan would have to cover these technologies. Next is the weighting of marks themselves – at least according to the exam guide. Note that I used the weights in the exam guide as opposed to the blueprint. I used the blueprint to understand the structure of the exam – I used the exam to give me a clue on where to focus.

Step 2 – Using the exam guide to work out core areas

We can see the following weightings in the exam guide:

DomainExam Percentage
Domain 1: Deployment22%
Domain 2: Security26%
Domain 3: Development with AWS Services30%
Domain 4: Refactoring10%
Domain 5: Monitoring and Troubleshooting12%

Whilst the exam being 30% about development with services might be no surprise, the fact that we have huge parts of the exam (relative to the other areas) dedicated to security and deployment give us more clues.

Step 3 – Translate the technologies in each section

In the same way as the ‘Introduction’ section indicated technologies and concepts I’d need to be familiar with, the next section gives an even more clear indication about what I need to be able to do in order to pass the exam. Whichever subjects I do pick up will be about satisfying the overarching principles.

Which brings us onto the exam guide itself.

The exam guide gives us the ‘what’, the blueprint gives us the ‘how’

The blueprint gives the structure of the test, which is a great advantage to focus our study. The exam guide gives us some more concrete clues on how to build our syllabus.

Domain 1: Deployment

AreaIdentified study areas
Deploy written code in AWS using existing:
CI/CD pipelines, processes, and patterns.
CodePipeline
CodeBuild
CodeDeploy
Cloudformation
Serverless Deployments
Blue/Green Deployments
Deployment White Papers
Deploy applications using Elastic Beanstalk.ElasticBeanStalk Core Concepts
Prepare the application deployment package to be deployed to AWS.Cloudformation
EC2
Beanstalk
Deploy serverless applicationsLambda
SAM

Domain 2: Security

AreaIdentified study areas
Make authenticated calls to AWS services.
IAM
Temporary Credentials
Cognito
Implement encryption using AWS services.KMS
Implement application authentication and authorization.IAM
Service Linked Roles

Domain 3: Development with AWS Services

AreaIdentified study areas
Write code for serverless applicationsLambda
API Gateway
Translate functional requirements into application design.Understanding of AWS architecture
Implement application design into application code.Understanding of AWS architecture
Write code that interacts with AWS services by using APIs, SDKs, and AWS CLI.CLI Knowledge
SDK Experience
AreaIdentified study areas
In-depth knowledge of at least one high-level programming languageGet familiar with the use of SDKs – compare them with the Console and API
Understanding of core AWS services, uses, and basic AWS architecture best practicesFlashcards for each core area and reading white papers to understand best practices
Ability to identify key features of AWS servicesWe’ll need to be able to ‘distill the meaning’ when we study each AWS services
Understanding of the AWS shared responsibility modelIAM knowledge is a must
Understanding of application lifecycle managementGoing to need to know CodePipeline, Cloudformation, EC2
Ability to use a CI/CD pipeline to deploy applications on AWSAs above
Ability to apply a basic understanding of cloud-native applications to write codeContainer knowledge definitely required
Proficiency writing code for serverless applicationsPretty obvious we’ll be doing Lambda!
Ability to write code using AWS security best practices (e.g., not using secret and access keys in the code, instead using IAM roles)IAM study once again

Next steps

Now we have distilled the essence of our training, we need to put together a realistic training plan. I’ve  tried and failed on projects before because I haven’t realised what I’ve gotten myself into. Without an end date known in advance, your enthusiasm will wane. You need to know if you’re tracking according to your plan, and you need to know weekly.

Let’s move on to setting up a training plan.