Programming and Development For The Infrastructure Pro
Tags: devops, terraform, infrastructureascoode, cloud
Published: 2022-01-26 12:12:16

In a YouTube playlist that I created at the end of 2020, which you can find [here](https://www.youtube.com/watch?v=u-0T-JN0GZc&list=PL8iDDHqmj1oWbbqlVwdZT9dElTyd9JRb4) (**it’s still very relevant, don’t worry**), I went over automation, programming, and development for infrastructure pros.

An infrastructure pro can be:

- A systems administrator
- An infrastructure engineer
- A network admin/engineer
- A cloud engineer

and really anyone that focuses on the core systems.

The reason why I created the playlist is that I think one of the most important skills that an infrastructure/network pro should learn is programming, but there’s a catch.

In this blog post, I can explain why it’s crucial for infrastructure/network pros to learn programming and automation in today’s world

## Everyone Is A Developer

I’ve gotten a lot of heat and negative energy when I say this, but that doesn’t make it any less true.

Everyone is a developer

Yes, that’s not a typo. Let me say it again.

***Everyone is a developer***

Let me explain why:

- Everyone is writing code now
- To be a developer doesn’t mean you have to write the next Twitter or some other app
- Because you’re probably already writing some code, you’re using development practices (source control in GitHub anyone?)

In today’s world, whether you’re writing Terraform code, automation code, shell scripts, etc., you’re writing code. There are several different types of developers, but it’s someone who writes computer software. By definition, computer software is:

*A collection of instructions that tell a computer how to work*

And by definition, that’s exactly what you’re doing. When you write Terraform code, you’re telling a system what it should look like and instructing it. When you’re writing a shell script, PowerShell code, or some other automation code, you’re instructing a computer on what to do.

There’s a big negative notion that goes behind the title developer. A lot of people think that you have to build some fancy app or not care about infrastructure, and that’s simply not the case. In fact, the best developers out there care about the software, the automation code, and the systems. We call them **Site Reliability Engineers** (SRE).

In short; you have to write code nowadays. It’s not even a question anymore.

## Don’t Worry, You Don’t Have To Build Apps

I briefly touched on this in the previous section, but I want to go into a little more depth here; you don’t have to write huge apps or build the next software company to write code.

When you’re writing code, it should be for what YOU need it to do. Do you need it to send emails? Do you need it to automate the creation of a system? Do you need it to configure a system? Regardless of what you need to write code for, it’s for a task that you need to get done.

That doesn’t mean you need to write a huge new app. If you want to, there’s nothing wrong with that, but a lot of infrastructure/network pros probably won’t need to do that.

Instead, they’ll want to write automation code to help make day-to-day tasks repeatable.

## Where To Start

If you’re still reading this, you may (hopefully) be convinced at this point that you need to write code. Not just from what I’m saying in this blog post, but from what we all see in any environment. Almost every manager, director, VP, and C-level person has said *how can we go faster* or *how can we automate this*.

It’s not just an engineer slogan anymore, it’s the reality of how organizations now think.

So, how can you get started? I recommend three languages, but don’t try to learn all three at once.

- If you’re in the Windows/Azure world, PowerShell and Python are great.
- If you’re in the Linux/AWS world, you can’t go wrong with Python.
- If you want to learn a semi-new language that’s sort of “taking over” the DevOps arena, learn Go (you can do everything in Go that you can do in PowerShell, Python, etc.)

If you want to dive into Go, you can check out my free Go course on YouTube, which you can find [here](https://www.youtube.com/watch?v=P8Jx3f01igA&list=PL8iDDHqmj1oUHd2g0iYWHmNLSZPVdigC_).

If you want to learn PowerShell, I recommend [PowerShell In A Month Of Lunches](https://www.amazon.com/Learn-Windows-PowerShell-Month-Lunches-ebook/dp/B09782BQ6R/ref=sr_1_1?keywords=powershell+in+a+month+of+lunches&qid=1642424032&sprefix=powershell+in+a+%2Caps%2C53&sr=8-1).

For Python, I highly recommend [Jose’s course over on Udemy](https://www.udemy.com/course-dashboard-redirect/?
course_id=567828)

==== FOLLOW ME ON SOCIAL MEDIA ====
Twitter: @TheNJDevOpsGuy
Youtube: youtube.com/clouddev.engineering
LinkedIn: Michael Levan