Top 5 programming languages systems admins should learn

Depending on the organization, systems admins may find themselves as participants in other IT tasks. A little automation may help to free up valuable time to get it all done. These languages can help.

Top 5 programming languages for systems admins to learn

Full disclosure: I am not a programmer. I just began my 24th year in the IT industry, and let it be known that I am not a fan of programming. It's not because I don't see the utility of it or how awesome it is to develop your own solutions and applications. It's far simpler than that—it just does not come naturally to me and takes significant effort to really piece it together to create solutions and such that help make my job easier.

SEE: Top 5 programming languages for systems admins to learn (free PDF) (TechRepublic)

You may be asking yourself, why write an article about something you don't like? There's a simple answer for that, too. It makes the systems admin portion of my job responsibilities significantly easier. That's the main reason I work so hard at figuring it out, making sense of it, taking courses, and ultimately putting it to good use. There aren't enough hours in the day to give everything that personal touch or to repeat the same task over and over across tens of thousands of clients, servers, and mobile devices on- and off-site.

As a hands-on IT professional, I can be found working on many jobs at once, attending meetings, and providing support to colleagues at any given time. So, that's why learning at least one programming language is so important: The flexibility of automating tasks (particularly the repetitive ones) frees up time that is better spent addressing matters that require the personal touch.

SEE: 11 DevOps trends that will matter most in 2020 (TechRepublic)

The languages listed below were specifically chosen for not only the benefit that they provide to admins in their current roles but allow for them to pivot into any number of other roles across departments, such as security and penetration testing, DevOps, and web development. 

Python

The top of the list among many different IT platforms is Python. Some of the language's strengths are that it's open source, supported across most operating systems, easy to use due to its relatively low learning curve, and interoperable with any number of industries, like social media, web, administration, automation, and security.

SEE: Learn Python: Online training courses for beginning developers and coding experts (TechRepublic) 

In fact, many of the tools commonly used by penetration testers often include plug-ins to import Python scripts into their workflow when assessing the security posture of systems on networks specifically due to its agnostic approach to hardware and software and the facility by which the scripts can be modified on the fly, as needed. Also, it is extensively supported by a large community and offers a breadth of libraries to shorten code development time.

Roles best suited for Python programmers include penetration testing, web developers, automation, and DevOps.

BASH

Bourne Again Shell, or BASH for short, is the shell native to Unix/Linux-based systems by default. It is known for combining its use of commands and applications on systems to construct scripts used to automate just about anything on a system, including the retrieval of output data, or manipulating said output and channeling (known as piping) data from one command to another to execute multiple commands against one set of data for added efficiency.

SEE: The best programming languages to learn in 2020 (TechRepublic)

One of the common cons about BASH is that it isn't supported natively across all OSes. Particularly Windows systems, though Microsoft has made strides to incorporate a BASH interpreter, which is available as an optional install on Windows-based systems. Pros for BASH include its speed and efficiency, as well its unified support across *nix-based platforms and will serve as a great skillset for sysadmins that wish to remain in their roles but expand their knowledge base further.

Roles best suited for BASH programmers include Linux-based systems administrators, automation, and application development.

PowerShell

Microsoft's PowerShell (PWSH) has undergone a change in recent years, including limited support for Unix-based systems, becoming open source, and most recently adding more support for a large swath of OSes, including popular Linux distributions and macOS, among others. PWSH was originally developed as a successor to the CLI interface found in Windows systems with support for systems management and role-based services on servers. 

SEE: How to use PowerShell to manage Microsoft updates on Windows (TechRepublic)

While the crux of that hasn't changed, it has developed into a programming language in itself, used by admins to support and manage devices (one to many) with the flexibility to manipulate data in any number of ways, including automating virtually all aspects of a system. And through the use of modules, similar to libraries, additional functionality may be introduced to expand its capabilities for both first- and third-party services, including the Azure platform, which allows for typically locally run services like Active Directory, Exchange, and Intune to migrate to the cloud.

Roles best suited for PowerShell programmers include Windows and Linux-based systems administrators, automation, and cloud engineer.

Ruby

Compared with most of the items on this list, Ruby (and Ruby on Rails by extension) is among the newer programming languages and arguably the least popular. But that doesn't mean that Ruby should be discounted by any means, given its strengths as being easy to learn and ideally suited for web-based development and e-commerce, due in no small part to its focus on clean code and security.

SEE: 16 most in-demand coding languages worldwide (TechRepublic)

Ruby has a substantial following among the security community given its facility in aiding infosec pros to fuzz code, reverse engineer files and applications, and perform a whole host of other popular penetration testing tasks. For anyone who may doubt Ruby's security prowess, Metasploit, the powerful framework used to develop and execute exploits on systems worldwide, was written in Ruby.

Roles best suited for Ruby programmers include web development, pentesting, application development, and e-commerce.

JavaScript

Unlike the relative newness of Ruby, JavaScript is among the older of the programming languages listed here, and there's a reason it has stood the test of time. JS was developed almost 25 years ago and has on its side speed, compatibility, versatility, and simplicity. It can be found almost everywhere to some degree, but most often on a website when communicating between clients and servers.

SEE: JavaScript: The #1 programming language skill hiring managers want in job candidates (TechRepublic)

JS is updated frequently, with many of these updates bringing new functions that allow for greater usage of resources for web-based applications, mobile development (like smartwatches, for example), and games. Though it's superior in many ways to other languages, it isn't without its share of limitations. There are dependencies based on the browser installed, because not all browsers support the same functions and could "break" apps. Also, it's not very well-suited for managing systems and is plagued by a number of commonly exploited vulnerabilities due to the way in which JavaScript conceals (or rather, does not conceal) code.

Roles best suited for JavaScript programmers include web development, application development, mobile device development, and games development.

Also see

Programmer working with program code

Image: RossHelen, Getty Images/iStockphoto

By Jesus Vigo

Jesus Vigo is a Network Administrator by day and owner of Mac|Jesus, LLC, specializing in Mac and Windows integration and providing solutions to small- and medium-size businesses. He brings 19 years of experience and multiple certifications from seve...