Saturday, June 27, 2009

But, should I learn programming?

On thing I have found over the years as a senior systems administrator is that my programming abilities have always come in handy. Many times these two skills seem to be very different..and they are. Programming is taking a problem, find out how to solve it and telling a computer how to do the task. Systems administration is taking an existing working system and implementing it, tuning it and making it run and finally upgrading and decommissioning the system.

Two very different skill sets.

But, should I learn programming? The simple answer is yes. Maybe being a "code jock" is in your cards, but having it in the Swiss Amy Knife set of tools will make you a better systems administrator and a more valuable employee.

Another good skill is database work. Why? Well, what is Active Directory? It's a database built on the Jet database engine from the boys in Redmond.

Some good examples from work. Account creation. Who likes account creation, especially when you have a hundred or more to create in a short time. You have to reconcile and figure out what needs to be created, and then do the work. Not fun.

Ah, write a program to solve the problem. Taking my database skills I was able to interrogate our Administrative Computing system (CARS, or CX from Jenzabar) to come up with a list of students. I then interrogated Active Directory to see who has accounts. A little reconciliation and *poof* I have a valid list of accounts to be created. Now, how to create those accounts? I've been programming in PHP as of late because it's simple, robust and effective. But PHP can't interface with PowerShell directly. So, my PHP programs generates a .ps1 script that I then execute on the Exchange 2007 server to create the accounts. Oh, but wait there's more. We hand out a sheet for all of the students to have with their account information. Being an old Adobe PostScript developer I then generate a .PDF file with the information sheets. Print that out and the work is done.

Now, generating accounts is a five step process that takes about 5-10 minutes to build out 100+ accounts that are accurate, mailbox enabled with hand outs. Not too bad.

If I didn't have programming and database skills this task would be far more complicated then it needs to be. So, be a good sysadmin and learn some coding skills.

Did I mention that coding helps monitor the network? No? Well, we use Nagios to monitor the network. When something fails and we were not monitoring for it, you guessed it, I write a script to do so. Sometimes it's C, C++, PERL, PHP, Bash, whatever it takes to get the job done. Now we are able to more quickly identify problems on the network before our customers notice.

Be a good sysadmin and learn some coding skills, it will pay off for both you and your customers.

No comments:

Post a Comment