Over the past decade, cloud-computing technology has evolved at a rapid clip. While it’s hard to keep on top of the latest developments, it’s also essential that developers attempt to do so: potential employers will want to know that you can actually work with cloud-based tools and infrastructure.
One way to prove you have the skills is through certifications. While different companies offer all sorts of certifications, the biggest cloud-computing platform out there is Amazon Web Services (AWS). Amazon has become the platform of choice for hundreds of companies that have migrated their backend processes to the cloud, and AWS continues to add new services (while cutting prices).
Before diving into AWS certifications, remember a vital point: these aren’t easy to get. You’re going to have to work for them, and know the underlying technology beyond the jargon. Hands-on experience is key; if you land a job, whether as an employee or a consultant, you’re going to face issues that you can’t just solve by sorting through Web forums.
AWS certifications include three Associate Exams:
- AWS Certified Solutions Architect – Associate
- AWS Certified SysOps Administrator – Associate
- AWS Certified Developer – Associate
There are also two Professional Exams:
- AWS Certified Solutions Architect – Professional
- AWS Certified DevOps Engineer – Professional
Let’s take the case of AWS Certified Developer – Associate. One requirement of this certification is knowledge of AWS Elastic Beanstalk, a service that allows you to automate the deployment and auto-scaling of an application. If your employer already uses it, you can ask for advice from colleagues on its ins and outs; otherwise you’ll have to create an AWS account and build some projects that use it, following the handy documentation that Amazon provides.
Beyond Elastic Beanstalk, those attempting to earn AWS Certified Developer – Associate will need to know which services to pick for an application, how to leverage SDKs so that AWS services will actually interact with said application, and writing code to optimize (and secure) the application’s performance. If you really want to earn the certification, you can take the time to build a production-level app at home, a process that should give you the necessary experience. More on this in the next section.
The Knowledge Domain
Earning the AWS Certified Solutions Architect – Associate, which focuses on building and designing scalable systems on AWS, will allow you to progress to earning AWS Certified Solutions Architect – Professional. Earning either the AWS Certified Developer – Associate, which focuses on programming using APIs and SDKs, or AWS Certified SysOps Administrator – Associate, which focuses on architecture, including security and networking, will allow you to advance to AWS Certified DevOps Engineer – Professional.
While many developers progress through the ranking to earn the Professional degrees, an Associate degree will also help you achieve your career goals.
For software developers (such as myself), the AWS Certified Developer – Associate is a good place to start. For the related test, you need to choose a particular language and platform, which can prove tricky. For example, my main work area these days is node.js, which isn’t as popular as, say, Java.
If I want to land clients via my extensive, certified AWS knowledge, I will likely find more who are looking for tech pros with Java expertise rather than node.js. Furthermore, there are a lot more AWS-specific tools available to Java developers, such as AWS plugins for Eclipse. But if you’re comfortable working with a lesser-used language, that’s certainly your prerogative.
The Test Itself
Remember that the test questions are only a sampling of what you need to know to be certified. Yes, in theory you might be able to fumble your way through the exam and pass while only knowing what’s on the test and little more, but that’s unlikely.
In other words, don’t study for only the exam itself. Take a look at the sample questions on the AWS Website to get some idea of how they’re constructed, but don’t even take the sample test until you’re ready for the exam; you don’t want to prepare solely based on the sample test.
Even though the test for Certified Developer – Associate focuses on software development, the reality is that devops permeates cloud programming; you need to know more than just software development. For example, you should know how to upload files programmatically to S3, which requires knowing how to use the SDK and set up the correct credentials in your API calls (which in turn means understanding the security model used by AWS).
You also need to know things long considered the domain of the system administrators. For example, you need to know how data uploaded to S3 is replicated and may or may not be immediately available in different regions. You also need to know how AWS can scale an application, essentially creating multiple copies of a server, thereby sharing the workload. And you need to understand the importance of putting servers in different geographical regions in case there’s an outage in one region.
Adding regions comes with an increase in cost; by running more servers, you’re paying more money, and that starts to touch on the accounting aspects of your enterprise, into the economics of hardware.
You also need to know a good bit about Linux system administration, such as how services are run; while the test itself might not ask much about this, you will certainly find yourself logging into the servers and running various Linux commands for controlling services and even Docker containers and mounting drives. Again, this is outside of the data structures and algorithms aspect of programming. But you need to be well-versed and well-rounded: employers and clients want experts, not people who managed to survive their way through a single test.
Earning AWS certifications isn’t easy, but it will be worth it in the end. Study the documentation as much as you can, and learn topics you don’t regularly use at work.
Notice that I haven’t mentioned taking courses. Many of these classes are pricey, and some aren’t long enough to cover everything you truly know to become adept with AWS. If you want to truly prepare (and get the necessary experience), dig in and play around with AWS yourself.