March 15, 2023
TL;DR learn Python (recommended) or Go for programming language and Shell (recommended) or PowerShell for shell.
Aspiring DevOps professionals often wonder which language they should learn to pursue their career. While there are many languages to choose from, it's important to focus on languages that are relevant to the DevOps ecosystem. In this article, we will discuss the two categories of programming and shell languages and recommend a few of the most ubiquitous languages for DevOps practitioners.
There are many programming languages available, but not all of them are relevant to DevOps. My personal recommendation would be to pick either Python or Go. Both languages have different advantages and use cases, but they are both widely used in the DevOps community.
Python is a high-level, interpreted language that is popular for a wide range of use cases in the DevOps ecosystem. Python is supported on almost every system and is cross-platform, making it a versatile language to learn. Python can be used to create scripts and to perform both automation and development tasks.
Python is useful for various DevOps tools, such as configuration management and package management tools like Ansible and SaltStack. It is also used to create command-line interfaces like the Azure CLI and AWS CLI. Another advantage of Python is that it is easy to learn compared to other programming languages.
If you want to learn Python, focus on Python 3 since Python 2 is set to be retired at the end of January 2020. A great resource to get started with automating tasks with Python is the book "Automate the Boring Stuff."
Go is an open-source programming language published by Google in 2009. Initially, it was designed with the networking and distributed systems in mind. However, Go quickly became a popular language in the DevOps space, especially for container technology.
Kubernetes, Docker, and other container technologies are all written in Go. When developing and understanding these tools, Go is an essential language to learn. Additionally, Go is concurrent and has garbage collection, making it a popular language for building scalable systems.
Shell languages are crucial for DevOps practitioners since they provide a way to automate tasks and run scripts. My personal recommendation would be to pick either Bash or PowerShell Core. Bash is something you will likely encounter if you are working with Linux servers, while PowerShell Core is a cross-platform language developed by Microsoft.
Bash is a Unix shell language that is used extensively in the Linux ecosystem. If you are working with an employer that primarily uses Linux, then learning bash is recommended. Bash is also prevalent in the DevOps community since many tasks related to DevOps require a Unix-like environment.
PowerShell Core is an open-source cross-platform shell language that was developed by Microsoft. If you are working with Windows servers, learning PowerShell Core is recommended. One of the advantages of using PowerShell Core is that you can easily translate it into Windows PowerShell. Additionally, PowerShell Core can also be installed on Linux.
Python and Go are our recommended programming languages for DevOps practitioners. Both languages are widely used and have different use cases. Python is an easy-to-learn language that can be used for automation and development tasks, while Go is a concurrent language that is popular for building scalable systems.
For shell languages, Bash and PowerShell Core are recommended. Bash is used extensively in the Linux ecosystem, while PowerShell Core is a cross-platform language developed by Microsoft.
Remember, always choose the language that best fits your environment and will bring value to your work. Happy learning!