Ask a Professor: Can I Learn Cloud Computing Online?
All of the cloud providers are competing very heavily for their customers, and I would say that their services are becoming at par with each other. What is enjoyable to watch is how quickly the cloud service providers are innovating in many domains so that they can add value to their cost. So it’s quite an exciting thing to be a part of.
Majd Sakr, PhD, Electrical and Computer Engineering Courtesy Professor and Computer Science Department Teaching Professor at Carnegie Mellon University
It’s no secret that tech expertise is in high demand and offers some of the best paying jobs. Of the many job markets cropping up, cloud computing is proving to be one of the best paying segments in the tech industry.
At the start of 2020, Forbes identified Google Certified Professional Cloud Architects as the highest paying certification, paying an average of $175,761 for the second year in a row. More recently, the World Economic Forum stated that cloud computing will continue to hold massive value as a top job skill sought for by employers in the current market.
The job scramble following the initial novel coronavirus outbreak has highlighted various cloud computing certifications—such as those created by Google, Amazon Web Services (AWS), and Microsoft—that can be pursued for free or at a limited cost to bolster a resume. While this is great news, many students new to cloud computing looking to learn foundations critical to passing these certifications through hybrid or fully online programs are wondering can I learn cloud computing online?
We spoke with a cloud computing expert teaching at Carnegie Mellon University, ranked among the top computer science schools worldwide in 2020, to learn the feasibility of learning cloud computing online, as well as the differences between various cloud computing certifications and careers students should be aware of as they prepare for the workforce.
Meet the Professor: Majd Sakr, Carnegie Mellon University
Dr. Majd Sakr is a teaching professor in the computer science department within the School of Computer Science at Carnegie Mellon University. He is also the co-director of the master of computational data science (MCDS) program.
From 2007 to 2013, Dr. Sakr was a computer science faculty member at Carnegie Mellon University in Qatar (CMUQ), where he also held the positions of assistant dean for research and coordinator of the computer science program. He founded the Cloud Computing Lab and co-founded the Qri8 Qatar Robotics Innovation Lab at CMUQ. He also co-founded the Qatar Cloud Computing Center.
Dr. Sakr has held appointments at the American University of Science and Technology in Beirut and the NEC Research Institute in Princeton, New Jersey. His research interests include online education, cloud computing, and human-robot interaction. He holds an BS, MS, and PhD in electrical engineering from the University of Pittsburgh.
He graciously answered our questions about the challenges and opportunities in online instruction for cloud computing.
Cloud Computing Courses Online vs. In-Person
OnlineEducation.com: When the pandemic hit the U.S., did you have to change anything with your existing courses? How does learning cloud computing online differ from in-person or hybrid learning programs for students?
Professor Sakr: I am involved with teaching cloud computing at the undergraduate master’s level and at the PhD level. And I’ve been involved in building and designing courses in cloud computing using project-based learning that were already made available online to students around the globe even before Covid-19. So for us, when the pandemic hit, not much needed to change in terms of how we deliver our course because it has always been offered as a remote, project-based course for our global students.
For the courses that were in-person and are now remote, we just went to Zoom lectures and offered online office hours to make sure that we were still providing the students with the opportunity to spend time with faculty. We had a pretty good experience with this.
Initially, we were worried about whether students would be reluctant to ask questions in an online setting, but we were surprised that they were all asking questions, and for some lectures, even more questions than we were getting in-person. Maybe there’s less pressure to just type it in the chat window on your computer screen compared to when you’re sitting among 50 to 60 people and you have to raise your hand.
The level of engagement has been reasonable, as well as the level of attendance. Of course, some things are lost in translation when you are not in the same room, but we still managed to make the best out of the situation. And then we also received a lot of support and guidance on the things that we should adopt and some training on some of the technologies that were out there.
The big thing that changed when we went to all online at the beginning of the semester is that that cohort-building did not exist anymore because students were just joining these online lectures. And they weren’t getting an opportunity to meet each other, perform study groups to figure out what other things that they would want to do together, and through that, find out who are the people that share their interests in these kinds of things.
Across campus, we are adopting different mechanisms so that we can enable that cohort-building to enable people to meet each other and know more about each other.
Online education is hard because you’re putting a lot of the responsibility on the learner to motivate themselves and to keep themselves going. This means it has to be designed in a way where the learner is being challenged but also being supported so that they can achieve the task and not feel that it’s an insurmountable thing to complete. That’s when people usually say, this is too hard. I’m not even going to start. You want to challenge individuals and support them. And then when they complete the challenging tasks, that sense of confidence feeds back into the individual so that they can do the next challenging task.
You have to design online courses very carefully to make sure that the individual remains interested and motivated. Over the course of a semester, it is key to help develop their confidence so that they continue to tackle more and more challenging tasks.
Cloud Computing Courses: What to Know
OnlineEducation.com: Can you give us a snapshot of what learning cloud computing involves?
Professor Sakr: Absolutely. Before telling you what is involved in learning cloud computing, first, I have to tell you what it is.
When you go to your house and you turn the light on, what you are doing is you are basically saying, I don’t need to generate the electricity that I need today. What you are doing is you are saying, I released the service from a power company.
Now, there are no guarantees from the power company that you’re gonna have the service 100 percent of the time. And you are okay with it because the power company is functioning on a reputation-based model, where if they don’t give you the service you want, you will go to the competition. They are incentivized to offer you a service that is up and running most of the time so that you do not go to the competition. That’s the model under which they operate.
And you, as long as you’re getting the service that you want, you pay for what you actually use so that you don’t have to maintain the power generation and worry about any of the capital expenditures as well as the operating expenditures for you to have power at home.
Why does that model make sense?
Because if the power company can create power at scale, it can benefit from economies of scale—and then then it can generate power to a large number of individuals at more of a reduced price than what they can do for themselves. And that’s a model that makes sense for everybody.
With cloud computing, it’s the same idea: you’re saying, why should I own the computing, storage, and networking that I need if I can lease it and only pay for what I use?
So if for your photo storage you need one gigabyte per month, then you can just lease that storage space on the cloud and only pay for that. And if you need one terabyte per month, then you can just lease that. The nice thing about the cloud is, if you have a period of time where you need a lot more, you can lease that but then shrink back later. You can do that on the cloud, whereas if you own something, you have to provision for your maximum needs all the time, right?
That concept of elasticity in the cloud makes it so appealing for companies that they can grow and shrink what they need based on their current load and only pay for that rather than having to, say, buy 1,000 more computers, set them up, have them in their data center where they’re consuming power, and then find the right retailing to provide that space and what have you.
The concept of cloud computing is similar to that of power companies.
If you are not having to own it, maintain and pay the capital expenditure, they can instead have the cloud and benefit from the economies of scale to obtain that computer storage.
So that then you can do the things that you do, whether you’re editing video or building websites or e-commerce sites. You can just build the services that you want to run on the cloud, and then you can grow and shrink how much you need and just pay for that. Based on what your current load is.
With that in mind, what we need to do when we are training individuals on the cloud is we have to first make sure that they understand the history of computing…There were many enablers, the internet being one of them, interactive browsers being another. Lots of technologies were maturing that enabled this model. So we have to make sure that the folks who are going to be practitioners in the cloud understand what has enabled that.
Then, when we are training people in the cloud, we cannot just teach them conceptual knowledge because when you want to become a cloud practitioner, you need to be able to add value. And the way you add value is by what you are able to do now—not only by what you know.
What teachers have to do is design and develop a set of training exercises so that we can develop people’s capacities by asking them to build solutions in the real-world scenario, using real-world data sets and using real-world cloud services. So we develop a sequence of training exercises.
For example, if they are going after a cloud administrator position, there is a set of tasks that we train them on, which are around things like:
- How do you evaluate what the customer needs? How do you find the proper cloud services that meet those needs?
- How do you provision these resources on the cloud?
- How do you deploy applications or solutions on the cloud?
- How do you orchestrate that process so that it’s repeatable and deterministic?
- How do you monitor a deployment on the cloud so that if something happens, you know and you can react to it?
- How do you secure that deployment on the cloud so that you reduce the chances of being compromised?
- And then how do you recover from a disaster so that you can have backups as well as hot backups running somewhere else in the world?
So that if this current data center that is running your current set of services goes down, your solution does not go down. Those are the types of things that we train a cloud administrator. This is the person who can administer the deployments of applications onto the cloud.
And there are other types of cloud-related jobs, such as a cloud developer. These are people who understand the services in the cloud, whether it is to analyze large data sets or deploy applications on containers using Kubernetes and the cloud-native model or on systems that use heterogeneous storage systems and databases.
There’s a variety of different learning objectives for each training and we design a set of real-world tasks that put the individual in that scenario so that they have to build an actual solution on the cloud.
And we teach on all three cloud providers: Amazon Web Services (AWS), Microsoft Azure, and Google Cloud Platform (GCP). The learners get a lot of confidence that they have done something that is quite similar to what they’re asked to do in real work. We teach them the foundational stuff as well as the practical.
Synchronous vs. Asynchronous Online Cloud Computing Coursework
OnlineEducation.com: What are some pros and cons of synchronous versus asynchronous online learning models for students?
Professor Sakr: With a synchronous learning model, students will benefit from a cohort that they belong to. And then they can probably ask questions or listen to a forum where there’s some form of a discussion that’s happening between the learners. That usually benefits this learner quite a bit in terms of giving them confidence that what was assigned is doable and that you can overcome some challenges that other learners are going through right now. They can also see what kind of feedback teachers are giving, or what kind of advice they are sharing when you encounter issues.
The synchronous model of learning has the benefits that first you are part of the cohort learning together, and that gives you some motivation and confidence that other learners are going through the same challenges that you’re going through now.
In asynchronous learning, you want to make sure that you are quite disciplined and able to structure your time and organize yourself so that you can make sure you’re making progress all the time.
The other thing that is needed for asynchronous learning models is an ability to learn quite a bit on your own, so that if there’s a prerequisite set of skills that you do not currently have, you are able to develop it on your own so that you can go finish the task that has been assigned to you.
Of course, having the prerequisite knowledge will be beneficial for both synchronous and asynchronous learning, but for asynchronous, you need to have organization and discipline. You need to carry yourself through it and not postpone and say, I’ll do it later because that’s when your confidence probably takes the hit. And then your willingness to jump-start something that has been growing cold for a while just becomes harder to restart.
Which Cloud Computing Certification Should I Pursue?
OnlineEducation.com: While you teach AWS, Azure, and GCP, for someone looking to get into cloud computing, is there one certificate that is more valuable than the others? Or what is the best place to start?
Professor Sakr: All of the cloud providers are competing very heavily for their customers, and I would say that their services are becoming at par with each other. What is enjoyable to watch is how quickly the cloud service providers are innovating in many domains so that they can add value to their cost. It’s quite an exciting thing to be a part of.
What I would say is, no, you do not need to select one over the other.
What you need to do is you should probably look at job descriptions and see which ones are you’re interested in and which cloud service providers those job descriptions highlight. You can think about geographical location as well as the type of company that you want to work for—and then you can decide which cloud service provider you want to develop skills in.
And each service provider has a set of certifications that you can go to and after you finish your training, you can pass the certifications and that will help add another piece of evidence that you do have the skill sets needed for that cloud service provider.
But with all of that said, I would not tell people to be too intentional and choose one cloud service provider over the other because these skills are transferable. Since the cloud service providers are competing heavily, you will see a lot of similarities and the types of services that they offer.
Think of the car. All cars have a steering wheel, and they have an accelerator pedal and brake pedal. If you know how to drive one car, it’s not too hard for you to be able to drive another car.
Think about the elasticity service when you are deploying an application on the cloud and someone tweets about your application and you go from 10,000 users all the way to 100,000 users very quickly.
If you want to make sure that that web application is deployed in an elastic manner that can do auto-scaling so that when you go from 1,000 or 10,000 to 100,000 users, that solution is provided to you by AWS, Microsoft Azure, or Google Cloud Platform. They have lots of similarities, but they have some nuances of differences, that new employees can generally pick up on the fly.
So I would say that if you’re applying for a cloud position and you show that you have good skills in one of the cloud service providers but the company that you’re applying to adopts a different cloud service provider, that’s not a big hindrance. They will recognize that you understand the basic services, then you can transfer your skills into the other cloud service.
Advice for Aspiring Cloud Computing Professionals
OnlineEducation.com: Do you have any advice to help students best prepare for a career in the cloud computing industry?
Professor Sakr: Yes. I think they need to decide which cloud jobs they’re interested in. And they need to start there before deciding what they want to learn in the cloud. The cloud domain is growing very rapidly, and it’s innovating at an accelerated rate.
So my suggestion would be to look at the job descriptions that you’re interested in and work backward. And then say, those are the types of jobs I’m interested in, and hence go find the training system.
This is probably the most reputable evidence that you can generate to convince the potential employer that you do possess these skills so that they are willing to talk to you.