In simple terms, System Administration refers to the management of hardware and software systems. Some of the major tasks performed by a system administrator include adding and removing hardware, installing operating systems, creating, managing and removing users and groups, installing, upgrading and removing software, performing backups and monitoring the system.
A system administrator is also responsible for troubleshooting, documentation and, importantly securing a system. On the other hand, programming is concerned with writing scripts, programs to developing user applications or software.
Does a Linux system administrator need programming skills? In this article, we will elaborate on answer to this question. We will explain why learning programming concepts are significant for Linux system administration.
This article is specifically prepared for Linux users aspiring to become professional sysadmins (from now on referring to system administrators).
From personal experience, ever since I started learning and using Linux operating systems (coming from a Windows background), I have always believed that Linux gives you more control over a computer system compared to other operating systems.
And secondly, it is the most suitable environment for learning computer programming (unfortunately, we will not go into explaining some of the reasons for this).
Technically speaking, the main purpose of programming is to create solutions to real-world problems. From this standpoint, we should understand that knowing the fundamentals of programming can assist sysadmins in coming up with reliable and effective solutions to administration chores.
Professional sysadmins dedicate a lot of time writing scripts, this is one of the cornerstones of administration, primarily to automate routine administrative tasks. And most if not all, Linux jobs require proficiency in at least a scripting language if not two, and scripting is basically programming.
There are a number of scripting languages for Linux, but the popular ones include Bash, Perl, and Python (although many sysadmins prefer Python to Perl). They all come preinstalled on Linux operating systems. Another option is Ruby which is not commonly used as its counterparts.
One of the remarkably important programs in Linux is the shell (for example bash). It is much more than a command interpreter, the shell is a powerful programming language, complete with basic programming constructs such as conditional statements, loops, and functions.
With it, you can create new utilities/tools of varied complexity, from simple scripts with a few lines of commands for retrieving certain information from a system, performing backups, software/system upgrades to large-scale projects for managing system configurations, services, data for an entire site; security auditing and scanning, and more.
This way, sysadmins free from administrative chores and have time to carry out more important tasks. Thus, shell scripting is a fundamental part of the Linux programming environment.
Sometimes, sysadmins may also be required to perform debugging tasks, this consequently calls for the need to be familiar with computer programming concepts.
In addition, programming improves ones overall problem solving and analytical skills. This can be significantly applied in Linux troubleshooting and beyond. It builds effective diagnostics and problem identification skills which are mandatory in modern IT environments.
With that said, if you are new to programming in Linux, consider learning popular scripting languages with the following guides:
Conclusion
Linux sysadmins need some sort of programming knowledge, mainly for automation of administrative chores by means of scripting. You may not be an expert programmer or developer but have skills in at least two of the scripting languages mentioned above, is highly recommended and needed.
With the rapid advancement in computer science and IT, it is also predicated that sysadmins without programming skills necessary to work in modern IT environments or the cloud, will likely be jobless a few years from now (but whether this is true or not, is really debatable).
We would like to hear from you about this topic, especially experienced sysadmins, share your thoughts with those who are aspiring to become like you.
If you do not know programming then you are incapable of being a sysadmin.
I just finished re-reading your article “6 Reasons Why Linux is Better Than Windows”. With the exception of Reason #6 – ToS, all others demand that you know programming.
“1. Free and Open Source”
If you do not know programming, you will not understand the code you are examining.
“2. Stability and Reliability”
If you do not know programming, you will not know know how to modify system configuration.
“3. Security”
See # 2
“4. Flexibility”
If you do not know programming, you will not know how to perform any of the tasks you list under this point.
“5. Hardware Support”
If you do not programming, you will not how to change the hardware config files to properly optimize it.
@dragonmouth
Yes, this is correct. Programming and system administration now go hand in hand. Many thanks for the feedback.
Programming and system administration have ALWAYS gone together going back to the days of the ENIAC. In fact, system programming/administration came before application programming.