12 Hot Programming Languages For Infrastructure Pros

  • Programming languages aren't just for programmers. If you're a network engineer, systems administrator, storage manager or other infrastructure professional, knowing a programming language (or two or three) can come in handy.

    Software-defined infrastructure is making headway into data centers, and in order to manage that infrastructure, it can be very helpful to know the language that your software-defined networking (SDN) or software-defined storage (SDS) software was written in.

    In addition, as more enterprises are adopting DevOps approaches to IT, many shops are seeking to increase their use of automation. While automation tools available can handle some of this work for you, it's always a good idea for administrators to be able to write their own scripts. And in fact, some employers will expect that any good sysadmin or other infrastructure pro will have that ability.

    But which programming language or languages should you learn?

    This slideshow takes a look at 12 languages that experts frequently recommend for people who are -- or who would like to be -- infrastructure professionals. Obviously, you probably won't be able to learn all 12, but having at least one -- and preferably two or three -- in your skills list can help you become more efficient and more hirable.

    (Image: maciek905/iStockphoto)

  • Python

    Any time you ask experts for advice on which programming languages infrastructure pros should learn, it's a good bet that Python will be one of the first two or three languages they mention. Why?

    First of all, Python is really easy to learn. In fact, if you take an introduction to programming class at a college or university, Python is the language you are most likely to learn. In addition, it doesn't have to be compiled, which makes debugging really fast and easy. It's a general-purpose language, so you can use it for almost anything, including writing scripts and stitching together other pieces of code. And Python is also the language used by several popular SDN controllers, including POX and Ryu.

  • Java

    According to the Tiobe Index of Programming Language Popularity, Java is the most popular programming language in the world by a long shot. In the most recent update to the index, Java's rating was nearly double that of C, the No. 2 language on the list.

    Why is Java so popular? It runs just about anywhere, including Android and a lot of Internet of Things (IoT) devices. Java is easier to learn than many languages (although not as easy as Python), and because it's been around a long time, lots of help and resources are available. Thanks to features like garbage collection and exceptions, Java can be pretty forgiving of mistakes. In addition, a huge number of programming tools support Java, so writing Java code tends to be fairly easy.

    It's worth noting that IT job boards tend to have a lot of listings that require Java knowledge, so if you learn this language, you'll not only have a skill that can help with infrastructure management, it might also help you get another job later in your career.

  • PowerShell

    If you're an infrastructure pro working in a Windows environment, many experts say you should put PowerShell near the top of the list of languages you should consider learning. PowerShell is Microsoft's homegrown scripting language and configuration management framework for working with Windows servers. It's built into Microsoft's server products, and using it can reveal information and do things that you can't find or do with the standard admin tools.

    Earlier this year, Microsoft open sourced PowerShell and made it available for MacOS and Linux. That means if you write scripts to automate tasks for Windows servers using PowerShell, you can also now use the same tool for MacOS and Linux servers.

  • Bash

    What PowerShell is to Windows, Bash is for Linux. It's the default shell-scripting language for most Linux distributions. As such, it can be incredibly useful for automating sysadmin tasks on UNIX-based systems. In fact, some experts say that Linux admins can't really do their jobs well unless they know Bash. However, others argue that because everything you can do with Bash you also can do with Python, that Bash is no longer necessary. On the other hand, Bash is sometimes the fastest way to write automation scripts, and it is fairly easy to learn.

  • TCL

    TCL (pronounced "tickle") has particular benefits for networking professionals because it runs on many Cisco routers and other networking hardware. It's an open source scripting language that can be very useful for automating network management and security tasks. It also integrates well with C.

    In addition to embedded applications, TCL is also frequently used to create user interfaces, particularly for Unix systems. It also can run in Windows and Linux, but it isn't as popular as it once was.

  • C

    Like Java, C is a general-purpose programming language, and like Java, is incredibly popular. For several years, C was actually more popular than Java on the Tiobe Index, although it has recently fallen to a distant second place. It has been around since the 1970s, so it is very easy to find help and resources related to the language.

    Many computer scientists say that learning C teaches students how computer programming really works, and some argue that it should be the first language computer science students learn. It's not as easy to learn or maintain as languages like Python and Java, but it gives you a lot of direct control over the system. It provides the foundation for several other programming languages, and several software-defined infrastructure tools are written in C.

    In short, if you really want to dig deep into the nitty-gritty aspects of coding, consider learning C. If you're just looking for a fast way to write automation scripts, one of the other choices might be a better option.

  • C++

    As you might guess from the name, C++ is very closely related to C. It also shares many of C's strengths and weaknesses.

    On the Tiobe chart, C++ is the third most popular programming language, and as one of the more mature languages, it has a lot of resources available. C++ programs run very fast, but again, like C, the language is complex and difficult to master. Some software-defined infrastructure tools are written in C++, and it can teach you about the fundamentals of programming. It offers good value in terms of your IT career, but experts say it probably shouldn't be your first choice if you just need to write some scripts quickly.

  • JavaScript

    Although it's known primarily as a language for front-end Web development, JavaScript can also be useful for back-end development (through Node.js) and for writing automation scripts. It's also one of the most popular programming languages in the world, ranking sixth on the Tiobe Index and fifth on the competing PYPL Popularity of Programming Languages list. In addition, it seems to be becoming more popular, and you can find tons of JavaScript jobs on any IT job board. It's fairly easy to learn although it can be difficult to master.

  • Perl

    Perl is often mentioned alongside Python as one of the best choices for a scripting language. Many older Linux or Unix systems run Perl scripts, so if you're an infrastructure pro who will be maintaining one of those older systems, it's a good idea to have some experience with the language. Perl is also frequently used for networking and security prototyping, as well as for some older websites.

    On the latest Tiobe chart, Perl was ranked ninth, so it's still a tremendously popular programming language, but some people argue that it's on its way out as languages like Python become more popular.