Which Cloud Platform Should I Learn?
The development of cloud technologies has thrown the doors wide open for the progress of the Machine Learning world. The ability to scale resources based on need and hold data that would put a strain on our local devices means we can now run more complex models, with more data than we could before.
Why should I know about Cloud Platforms?
Cloud Platforms provide us with the access to the cloud technologies we are after - the ability to scale the capabilities of your resources (e.g. storage) as required by your business needs.
The point is, the Data Science and Machine Learning world revolves around these Cloud Platforms because of these perks. If you haven't used them, you've probably heard of at least one of the "big 3" : Amazon Web Services (AWS), Microsoft Azure and Google Cloud Platform (GCP). NB there are others out there which are not as commonly used.
In most business settings, these platforms will be where your models are deployed. As a Machine Learning Engineer, deployment is a key part of my role (especially as I'm quite focussed on the MLOps processes) but also it is important to be aware of these tools and how to use them as Data Scientists. As I've talked about before, there is no definite boundary between these roles, so it's not unlikely that as a Data Scientist you'll be deploying your models or monitoring them using such platforms.
Being a Machine Learning Engineer or a Data Scientist is so much more than the models that you write, and I would say that learning the benefits of cloud technologies and having an awareness of how to use them is a crucial part of the learning. Side note: when I was interviewing for my first job in the industry, it was a topic that came up repeatedly. Hiring teams want to know you can do more than "just code".
Which Cloud Platform Should I Choose?
In some cases this is easy and obvious, in others a lot less so. If you've already landed a job then learn the platform(s) that your job requires! That's the first easy case covered. If you don't have a job in the field just yet then here are some thoughts.
If you're interviewing for a job, it might be obvious which Cloud Platform they're using. First up, read the job advert - it might tell you! If that's the case, even if you haven't used the specific one before make sure you're aware of roughly how it works/key apps that you'll use. If it doesn't say, you can always ask. The knowledge you gain from using one platform will be transferrable to another. They key is to show you understand the concepts and can apply them.
The other obvious way you might get an indicator of the technology to get familiar with is if you have an interview with a company that has created a widely used platform i.e. if you're interviewing with Amazon, make sure you're familiar with AWS. Even if you're not interviewing with a company that created one of the "big 3" it might be worth checking if they have their own (looking at you IBM!)
If none of the above apply to you, then I would say it doesn't really matter which one you get yourself familiar with. Cloud Platforms generally do the same things, the apps are just differently named and they'll be structured a little differently. BUT, the concepts are broadly the same and as a beginning it is the awareness of these that is important along with going through the motions of doing the things you need to be familiar with e.g. deploying a model and monitoring it. The one exception I can think of is that you can track/monitor your space satellites in AWS using Ground Station and I'm not sure the others have that just yet...so if you have some satellites to monitor, that's the one for you!
How Do I Learn How to Use a Cloud Platform?
The internet of course! I'm not saying this facetiously, the internet has all the resources you should need as someone just starting out with cloud technology, and yes there are lot of free ones too.
Each provider wants us to be able to use their platform, it's how they'll make money in the long run in the end, so helpfully they have each put in place helpful ways for us to learn. A key feature of the cloud is that it is pay as you use, i.e. you only pay for what you use. An extension of this is that there are ways to use the platforms for free, as you won't really be using anything super resource intensive for your learning.
On each of the platforms you can create an account for free, and then use their free resources. For AWS this is a free tier that you can use for 12 months, you just will be limited with what you can do. For GCP you can use the free tools (not the full range) up to a specified resource limit but there is no restriction on the time you have to use that up. With Microsoft Azure, however, you have a 1 month period where you have $200 (currently) of resources to spend. For a beginner getting to grips with the basics this should be plenty.
The what about the instructions? Each of the platforms have extensive documentation and even other training packages that can give limited free access to their platform, along with paid training should you wish it. This is where I would recommend starting personally. Whether that's Microsoft Learn, GCP Training or AWS Learning Library.
Of course there are other ways you can learn: blogs, video series on YouTube or paid courses through platforms like Udemy, LinkedIn Learning and Pluralsight (amongst many others).
Should I Do the Exams?
Professional exams evidence that you know what you're doing with the tools, that's the theory anyways. Personally, I would say actually knowing how to use the tools is more important than showing you can pass an exam. I wouldn't recommend investing your time in the exams themselves before you get a job. They are expensive and you may end up changing to a different platform when you get a job. That's not to say I would pass up an opportunity if you're learning anyway and there is a way to do one for free (e.g. Microsoft Ignite Challenge).
I *would* follow the exam training pathways though, as they are a great guide for what is good to know, also they provide structure learning which can be helpful when trying to make a start on such big topics. When I was interviewing, no one seemed that bothered about qualifications or courses, but they wanted to know what I could do and what my experience was. If you can sign up to a free tier and deploy a model on there and write about it on a blog, Medium post or even just talk through the processes you took in a README.md in your relevant project GitHub repo that will demonstrate the experience you have gained from actually doing these things (bonus: and that you can communicate these things well!)
That's not to say the exams are useless, I'm just of the view that they're not the priority when you're trying to land your first job. It's nice to be able to display your knowledge/achievements, of course it is! It might well help demonstrate what you've learned but from my perspective, they just are not the priority when you're first starting out.
The key thing is to get your hands dirty and get stuck in. Knowing the theory but not knowing how to actually do it won't help you much (she says from experience). Go through those steps and processes, that knowledge will be transferable to other cloud platforms should you need it to be.