AWS (Amazon Web Services) is a cloud computing platform popular with tech companies and engineers. When it comes to working with AWS a question that comes immediately to most people is: “Will I need to code to use AWS?”
Does AWS require coding? No. Getting started with and learning AWS does not require any coding skills, many basic tasks can be performed without coding. However dependent on the job / skills you have (or need) you may still be required to learn some programming skills.
As always, there’s some nuances to the question. Whilst I might not know your exact personal circumstance, we can still look at examples of tasks you can complete in AWS with and without coding skills, and we can also go through and understand the situations that require coding and why.
AWS Services List
In some circumstances working with AWS doesn’t require coding. AWS is mainly interacted with in one of two ways: manually through clicking in the AWS UI, or programmatically via an infrastructure as code tool, which means defining cloud configuration instructions in text files.
It’s common that newcomers don’t create their AWS infrastructure via code, but instead use the UI. And many tutorials usually show the UI approach, as that’s one of the most straight-forward ways to learn AWS.
However, be warned, just because AWS can be used manually though the UI doesn’t mean that approach is recommended for professional situations. In fact, thes topic of manual configuration vs code configuration is so important that I really think we should discuss it before we go further.
Manually creating things within AWS is possible, you can use the UI to create infrastructure, and complicated setups can all be done through the UI. This is also how a handful of companies operate.
However, whilst there are companies that create cloud infrastructure manually, it’s generally not advised and is considered an industry bad practice. Creating resources manually soon becomes hard to track and manage.
There are numerous benefits to storing configurations as code, teams can easily review changes before they are made, track and understand when previous changes were made and why, and also go back in time to past configurations.
Many newcomers to AWS often complain that the UI is missing features and is confusing. But this isn’t an oversight from AWS, it’s because they encourage AWS users to interact via infrastructure as code tools instead of using the UI.
I must say though, that AWS is best when mostly used in scripts, not in the UI. IMO this is a common misconception (the UI is mostly a second class citizen). The UX of the infra as code is a lot more consistent than the UI.
Lou 👨💻🏋️♂️🎸🚴🏻♂️🏍@_AshConnolly @swyx I must say though, that AWS is best when mostly used in scripts, not in the UI. IMO this is a common misconception (the UI is mostly a second class citizen). The UX of the infra as code is a lot more consistent than the UI.11:45 AM - 12 Oct 2020
At this point there’s something important which I must address. We’ve talked mostly about infrastructure as code, but is in fact another type of coding, called application coding.
It’s important we distinguish between these types of coding as it will impact whether or not you’ll need to learn to code. Let’s take a look at the differences and why it matters…
I often encourage newcomers to AWS to learn infrastructure as code as early as possible, if you’d like to know why, check out the article: 5 Important Reasons To Learn Terraform Before Cloud Computing.
Coding comes in all shapes and sizes, but when it comes to AWS specifically, coding can be categorised into two large groups: infrastructure coding, and application coding. Let’s look at the difference between these two types…
First up, application coding is the type of coding that most people think of when they think of coding. It’s the coding which allows us to, for instance, automate a repetitive task or even write a website.
Typically application coding heavily relies on logic, such as if/else statements to “fork” code dependent on some condition, or loops which repeat tasks a number of times. It’s the logic within coding that many find daunting or confusing.
But there is another type of coding…
Infrastructure coding on the other hand, as the name suggests is dedicated to the sole task of writing infrastructure configurations. Infrastructure configurations can be thought of simply as sets of instructions that create infrastructure. And in our context our infrastructure is our cloud setup.
Infrastructure coding, unlike application coding generally doesn’t involve much logic, it’s not very common see things such as if/else statements or looping going on in infrastructure as code. So in some ways infrastructure coding can be considered more straight-forward (but that doesn’t make it “easy”!).
So when it comes to answering the question of whether you’ll need coding for AWS, you’ll also need to consider what types of things you’ll be doing in AWS.
Are you intending just to create infrastructure? Or do you want to also create applications within that infrastructure? We’ll discuss in more detail soon about how you can decide what types of coding you’ll need and why.
Now that we understand that AWS can be used manually to create infrastructure (but it’s not recommended), let’s address the question of whether we need to code from a slightly different angle, and take a look at some different tasks in AWS, and whether or not they would require coding skills, and why.
If you’re interested in cloud engineering, I’ve also written about a similar topic which you should check out: Do Cloud Engineers Code?
To help answer our question, it will be useful for you to see which things you can do in AWS with or without coding. Let’s first take a look at a couple of common tasks that you can perform in AWS which don’t require coding.
Creating websites is a common task that AWS is used for, and the most popular platform on the internet is WordPress. It is possible to create a WordPress website within AWS fairly simply without any coding experience at all.
How? By using an AWS feature called the marketplace where vendors can sell pre-made, ready-to-launch machine images which are simple to provision and can be done without coding. There are many other images in the marketplace too, for launching off-the-shelf blogging, wiki’s, photo storage servers.
Another common task for AWS is to be used as file storage. File storage can then be used by all areas of a business to store video’s, text file, images, etc. These files are then easily distributed on the internet or internally in a company.
Setting up a file storage system on AWS S3 (Simple Storage Service) can be done without coding skills. It’s possibly to interact with the file storage through one of the many clients and GUI’s that exist, such as Cloud Mounter.
Okay, so that covers a couple of tasks that we can complete in AWS that don’t require coding, which might have you thinking: “Okay, so what tasks do require coding?”. Let’s look at that now…
The following tasks within AWS do require coding knowledge:
Building a website is a very common objective for many AWS customers. In order to build a custom website, you’re going to need to know how to code, and at the very least you’ll need to know HTML. Building websites can be done in all different types of programming languages: Node.JS, Python, PHP.
AWS has many services that are provided to help make websites, services such as: S3, CloudFront, ECS, Fargate. The list goes on, there’s lots of options.
If you want to create some custom home automation for instance, such as an Alexa Skill, you’d also need some coding skills to write the technical API’s which power the Alexa skill.
Okay, so that gives us more of an idea of the types of tasks we can complete in AWS, and we now know that some of them require coding, and some of them don’t. But we’re still left with our question of whether we need to code…
We’ve covered a lot of ground today in trying to answer the question of whether AWS requires coding. And I said at the start, the short answer is: no. There are many tasks (as we’ve seen today) that can be done in AWS without coding skills.
However, it really depends on the type of things you want to use AWS for. If you want to become a cloud engineer, or work on the cloud itself then you’ll need to learn infrastructure as code. If you want to build applications, you’re going to need to learn application coding.
There are of course some circumstances where you’ll find yourself working with AWS and not needing coding, but to be honest with you, these situations are the exception rather than the normal (but it doesn’t mean they don’t exist).
So if you’re truly serious and committed to learning AWS, I recommend you at least take a look at learning infrastructure as code. It’s not as involved as regular application coding, it could save you a lot of headaches, and it might just be the edge you need to land the job you want.
However, if you’re just getting started, don’t feel too bad if you’re just using the UI to create infrastructure within AWS, just know that there are better ways to work with AWS and make a plan to look into those ideas in the future.
If you’re looking to start learning AWS, I can highly recommend taking a look at my article: Where (And How) to Start Learning AWS as a Beginner.
The post Does AWS Require Coding? Understanding When You Might Need To Code. appeared first on The Dev Coach.
Lou is the editor of The Cloud Native Software Engineering Newsletter a Newsletter dedicated to making Cloud Software Engineering more accessible and easy to understand. Every month you’ll get a digest of the best content for Cloud Native Software Engineers right in your inbox.