From Cloudless to AWS and Azure Certified in 2 months.
Tags: aws, node, motivation, azure
Published: 2020-12-30 21:33:03


I started 2020 with no experience in cloud development. My database experience came in the form of old MySQL setups, Firebase/MongoDB or simply asking for API access/Endpoints. After starting several hobby projects i realized in order to release a working software i needed to learn this "Cloud" thing. There was simply no way for me to effectively develop my hobby projects without. I had seen the words "Azure" and "AWS" listed in almost every job ad. After some googling i found out Microsoft was having a free 3 day webinar with a chance of attempting the AZ-900 Azure fundamental afterwards. I quickly signed up.

### Why get certified?
"The purpose of a certification is to give you a competitive advantage over similar applicants for both getting a job interview and an offer. Any certification strengthens your resume and verifies you have a minimum level of knowledge. Simply put, certification is like getting your AWS driving license"

While this is partly true my main goal with the certifications was getting to know the cloud platforms in a structured environment. It is easier to measure my knowledge and structure my learning with an exam as a goal. In terms of getting a job they have largely been irrelevant, but might have showcased some knowledge. 

If you are thinking about getting certified in order to substitute a bachelors degree i have seen this work in US and Russia/Ukraine, but in for example Scandinavia or Germany i have a hard time believing this will be enough. The requirements are largely based on a degree and the certification has never been a talking point in any of mine or my colleagues interviews. Get the certification as a supplement to either a good Bootcamp or a CS degree. The requirements for new developers is constantly increasing and it could be a good way of showcasing your interest for the field. This is what i am hoping anyways.

###Exam Completion
All the exams require you to score 750 out of 1000 to pass. There is no grade and the score does not show on your certification. The questions varies from multiple choice with single answer to several answers. Some are scenario based some ask you to review code, but often these are rather simple. I will not be going over any example questions as these can quiet easily be found elsewhere in more depth.

### Azure Fundamentals AZ-900
The course was 4 hours for 3 days covering all the various functions in the Azure service, Cloud history and Cloud terminology. As someone who never had any exposure to Azure almost everything was new. Edge Locations, Availability zones, VPCs, security, pricing, auditing. The list goes on. I was not even aware of how VMs are used or what the data ware house contained. The instructors however went over everything slow and in great detail. After 3 days of webinars i went to the Azure learning resources. Did some practice tasks and attempted the exam the week after. I would highly recommend to anyone starting to first go through the Azure fundamentals or the AWS practitioner as some of the terminology used and pricing models would never have been known to me had i only taken the AWS SAA or Azure Developer certs. It also gives you good practice with the exam environment as the questions and proctoring is in itself something to get used to. 

Because of COVID-19, you can now take AWS and Azure exams from home on Pearson VUE platform. As this exam is being taken at home, you need to ensure your system works well on the test day. You get a link to do System check few days before the exam. Do not ignore the mail. It will avoid last-minute rush during the exam day. To avoid cheating, Pearson expects that you take the exam in a closed and isolated room. During the exam day, you need to take your room pictures on mobile, Front, Back, Right and Left sides of the room. They will ask you to switch off any monitors including TV screens.

No papers, pens, book, headphones and watches are allowed. You will not be able to move away from the chair for the entire duration of the exam and your camera must be on all the time. At the end of my exam after seeing the completion screen i left the room to tell my wife i passed. What i was not aware of however is even after the completion screen, the exam is still being proctored. 2 minutes later i came back to a warning that my exam would be revoked as i had cheated by leaving the camera. However i was still able to send in my exam and got it completed. The proctor might have seen that my screen was on completion and choose to not revoke it. Either way this shows how the detection works in practice. 

### AWS or Azure?
There are few differences between Azure and AWS both from a certification stand point and a usage stand point. AWS is by far the older platform and has a few options Azure does not, but overall they are pretty similar. AWS has a market share of 32% and Azure around 19% as of 2020. In Norway Azure has a wider usage then AWS due to their Norway data centers. A bigger difference comes in how they market themself, which is a big reason why i choose AWS. Azure markets more for the corporate world, while AWS main selling point since it's inception has been cost reduction for SME. The associate certifications for each contains the following:

Azure Associate:
* Developer
* Administrator
* Security Engineer
* Data Engineer
* Data Scientist
* AI Engineer
* Database Administrator

AWS Associate: 
* AWS Solution Architect Associate
* AWS Developer Associate
* AWS Sysops Administrator Associate

AWS Speciality:
* Advanced Networking
* Security
* Machine Learning
* Alexa Skill Builder
* Data Analytics
* Database

As you can see Azure and AWS offers most of the same certifications, but Azure contains two data heavy certifications. Azure is often preferred for ML. One of the reasons why is the UI of Azure ML enables you to build machine learning pipelines that combine multiple algorithms. My focus however is mostly Development and Operations. I originally started the Azure Developer route, but changed to AWS Solution Architect for a couple reasons:

1) Azure requires Azure specific C# knowledge for their exam. I have never used C# and was not really a fan.

2) Azure markets themself for enterprise usage. I have always been more interested in the start up world. The Azure brand didn't feel right to me and im not a general fan of Microsoft. The Azure market is also smaller then AWS.

3) Functionality and usage. Azure felt slow and unorganized compared to AWS. This is just my personal preference after trying to use both on a higher level. I liked how AWS organized their content.

4) Azure does not have a Architect certification for it's associate level.

I landed on the AWS Solution Architect Associate or SAA for short. Im more of an architect as i like to explore various patterns and organizational theory. I read some of Martin Fowlers books and im fairly certain this is the path i would like to follow in the future. However a more important reason is the SAA contains a good balance of Ops and Developer. I felt the others where more for individuals who is searching a pure Ops or pure Developer paths. 

###AWS Solution Architect Associate

There is multiple good resources for this exams that i used. Stephen Maarek has good courses for each certification. Cloudguru used to be a very popular resource, but is said to be not indepth enough, which i definitely felt. I did the cloudguru course for SAA until the end, then i used Maareks course to caught up on topics i felt lacked in the cloudguru course. Finally i used Jon Bonsos practice exams to practice for the exams. These were a bit hard and i had to rehearse the answers multiple times until i could score past the 80% mark. 
At the end i ended up following some courses on serverless and migrated one of my projects from mongodb to serverless Node.JS. This helped me greatly in seeing how the different resources worked. In order to pass  the exam, due to the complexity of the questions you really have to know the platforms services inside out. Seeing various errors appear in real time is good practice.

I used around 1 and a half month to prepare and take the exam. I tried to get in at least 2 hours each day, but some days i could only make 1 hour due to working a full time and a part time job. I highly recommend using at least the practice exams from Jon Bonsos. How you end up learning the material can vary, but the exams are very similar to the real ones and gives you a valuable resource to test yourself. It's quiet hard to digest all this material in a short amount of time. I advise anyone trying to not care for all the small details and rather let your memory handle it. Watch, do the quizzies and go through the tasks given in the console. Don't overthink it or you will never finish. Practice makes perfect. Some of the quizzes I repeated several times to make sure i could memorize the answers.

The exam went quiet well. Didn't leave during the completion screen this time. Most of the questions i went back and forth over several times, skipping to the next, then back again. You really have to make sure to read the questions carefully, as small details can change the answers drastically. An example is using a network load balancer vs an application load balancer. The questions will read the exact same, with a difference in load balancer. For a large portion of the question there is no obvious right answer.

###Did i learn what i wanted?
Absolutely. I was a bit afraid the knowledge would not transfer into working with the applications, but i feel i have quite a good grasp on the features and mechanics. When i first started it felt overwhelming. Now i deploy what i want how i want. The feature i am still the most unsure of is the VPC section and ML section. VPC is too deep of a Ops topic for me to be fully comfortable with and the ML section is not really something i touched much as it has little relevance for a developer. The resources i use the most are Lamdba,route 53, API Gateway, Dynamodb/Aurora and Cloudwatch. Overall i am quite happy and hope i will be able to use more of my knowledge in the future. Being a Junior/Mid level developer i don't have much responsibility for monitoring or automation, but i except this to change as i get more into the senior realm.