The cloud WILL play a role in your coding journey. Here’s how.

Want to become a successful developer in 2024? You need to understand the cloud.

This blog was originally published on Substack. Subscribe to ‘Letters to New Coders’ to receive free weekly posts.

The tech landscape experiences a major paradigm shift every few years. When I started my career in the 2000s, cloud computing was the major transformation in the industry. In fact, as a young software engineer at Microsoft, I had the honor of working on Project Red Dog, the internal code name for Azure — an experience that would shape my career in immeasurable ways.

Today, the paradigm shift is AI. However, today’s AI boom would be impossible without the cloud — AI systems rely on cloud infrastructure for the computing power, scalability, and storage that complex AI models require. As it turns out, the cloud is integral to nearly all internet technology today as we know it. Whether you’re streaming shows on Netflix or working in Google Drive, you’re likely interacting with the cloud every day, whether or not you realize it.

Cloud technology is such a cornerstone of modern software development, that any new developer should have at least a working understanding of cloud computing fundamentals (eventually, you should also learn how to leverage the cloud for your applications, too). That’s why I’m spending the next three posts focusing on the cloud, and cloud-related skills you’ll need to succeed.

This week is the groundwork. I’ll introduce cloud fundamentals, and why the cloud is important:

  • What is cloud computing?
  • A quick history of the cloud
  • How the cloud affects everyday life
  • Cloud computing 101

Let’s get started.

What is cloud computing?

Cloud computing is a model that lets us access compute resources — like storage and processing power — over the internet, rather than on a local machine.

Before the cloud, companies had to own and maintain their own servers (large, expensive computers) to store data and run applications. This meant only the biggest companies could afford these resources. Luckily, the cloud has democratized access to those powerful resources, making them available to more people.

The term “cloud computing” is used interchangeably with “cloud.”

To understand the cloud a little better, let’s look at the stages that led to the cloud era.

A quick history of the cloud

It took roughly 4 stages for us to reach the cloud era.

1) Mainframes

In the early days of computing, we used mainframe computers. Mainframes were huge, expensive machines that filled entire rooms and required experts to operate them.

People and companies had to rent time slots to run their programs on a mainframe, a concept called time-sharing.

2) Networks and personal computers

As technology progressed, networks were created to connect computers over distances. This allowed users to access computers remotely — without having to be physically near the machine. Around the same time, personal computers (PCs) became affordable, so individuals could have their own machines at home or work instead of relying on mainframes.

3) Virtualization

Eventually, businesses started using virtualization, a technology that lets you create virtual machines (VMs). A VM is software that acts like a real computer, and runs inside another physical computer. Rather than buying several computers, virtualization allowed companies to run multiple VMs on one computer, which could each be rented out to clients or used for different tasks.

4) The cloud era

Cloud computing took virtualization to the next level. In cloud computing, cloud service providers (CSPs) like Amazon, Google, and Microsoft operate massive data centers full of physical computers. Through virtualization, these data centers run thousands of virtual machines among their computers, which they rent to companies or individuals. Cloud computing shifted the responsibility of managing and maintaining physical infrastructure to CSPs, rather than developers.

Instead of renting time on mainframes, the cloud era gives us the option of renting more accessible and scalable virtual machines in the cloud.

How does the cloud affect everyday life?

The cloud powers much of what we do daily. Whether you’re ordering food through DoorDash or getting real-time traffic updates through Maps, the cloud makes essential tools more fast, accessible, and flexible.

Cloud services benefit both users and developers, and can consist of storage, networks, apps, and more.

Now, anyone can access the massive computing power of cloud providers to run applications, host websites, or store data. As a dev, the cloud lets you create and publish apps without needing physical servers. As a user, you can access your favorite apps and services from anywhere, provided you have internet access.

By allowing us to drop worries about hardware limitations, the cloud has allowed developers to focus their attention on building highly effective solutions.

Now that we’ve covered the basics, let’s dive into how the cloud is structured and the services it offers.

Cloud computing 101

Cloud environments: Where is the cloud?

There are three main types of cloud environments, which describe the different ways we access and use cloud services:

  1. Public clouds consist of services provided over the internet by third-party providers like AWS, Google, or Microsoft Azure.

2. Private clouds are each dedicated clouds for a single organization, either managed internally or hosted by a third-party provider. These are more common for businesses with strict security or compliance requirements.

3. Hybrid clouds combine both public and private clouds, allowing data and applications to move between them. This allows for more flexibility and resource optimization. Hybrid clouds are common for businesses that want to maintain control over certain systems due to regulatory requirements while benefiting from the scalability provided by the cloud.

Cloud service models: What is offered on the cloud?

Cloud providers offer different servicesunder the following categories:

  1. Infrastructure as a service (IaaS)
    Think of IaaS as renting computing power. The cloud provider manages the hardware, while you handle what runs on it. For example, Netflix uses AWS (Amazon Web Services) to power its streaming service.
  2. Platform as a service (PaaS)
    Similar to renting office space that’s ready for you to work in, PaaS lets you rent a platform where you can immediately build applications. All you have to do is work on your applications — the provider does the rest. For instance, Shopify runs its e-commerce work on Google Cloud’s App Engine so their devs can focus on building features.
  3. Software as a service (SaaS)
    SaaS is when you use software that’s hosted in the cloud. You access it via a web browser or other devices, without needing to install anything. Apps like Gmail or Google Docs are examples of SaaS.
  4. Serverless computing
    Serverless computing means you write code, and you don’t need to worry about having enough servers for low or high traffic. Instead, the cloud provider automatically scales to handle changes in demand. For example, AirBnB is one of many companies using serverless computing.

So, which cloud skills should you learn?

From collaboration to innovation, the cloud opens doors to possibilities that were unimaginable just a few decades ago. Thanks to the cloud, cutting-edge technology is more accessible and affordable, which makes it easier for you to make great solutions as a developer.

Once you’ve started building apps with confidence, you can start to add cloud skills. For example:

  • Web developers might add to their app’s functionalities with cloud service APIs
  • Systems engineers can use services like Elastic Beanstalk to more efficiently scale systems

It can be a bit abstract to imagine how devs use something as ubiquitous as the cloud to do their work. To clarify this, I’ll introduce just how developers use the cloud next week, so that you can understand which cloud skills you’ll eventually need to learn.

If you want to learn more about cloud computing, I recommend checking out Educative’s course path, which takes today’s discussion much further: Cloud Computing Fundamentals.

Happy learning!

- Fahim

Subscribe to Fahim.dev - Thoughts on Learning and Growth in Software Development

Don’t miss out on the latest issues. Sign up now to get access to the library of members-only issues.
jamie@example.com
Subscribe