There are many reasons to be a programmer, but system administrators have unique reasons for having programming skills. Programming is not just useful when cobbling together shell scripts or Perl scripts, but in many other areas as well.
Consider the case of an application that stores a default directory somewhere, and changes it automatically. What happens when that saved directory becomes a removable disk, and is not changed again? The problem exhibits itself as a long wait for the system to recognize that there is no disk there before presenting a list of directories to choose from when saving a new file. The solution is to make the program choose a new default by recognizing the conditions where the program switches its defaults.
There are many reasons for a system administrator to pick up programming skills:
Programming skills translate into better scripting and further automation of system administration duties. A programmer can put together powerful scripts in Korn Shell, Perl, Ruby, or other languages – and can put them together in novel and powerful ways.
Understanding programming helps administrators to understand program failures. Like above, a program failure can be understood and thus solved easier when the troubleshooter can think like the programmer who designed the program.
With the advent of open source, it is possible to solve particularly intractable problems through source modification. A program can be modified to add new logging capabilities, breakpoints, selections, and other details. Debugging problems can happen at the source level.
Programs can be adapted or enhanced for local needs. If there are special requirements, an open source program can be modified and changed to adapt. This leads to enhanced environments that fulfill the needs of the customer.
Programming is a refreshing change from standard administration work. Putting time in on a personal programming project can refresh your spirits and recharge your batteries. If it is on an open source project much the better.