Advance Your IT Career By Building Your Own Utilities
Career-focused IT pros often wonder what it takes to stand out from their peers as someone worthy of advancing into positions of greater responsibility and correspondingly higher pay. One possibility is to demonstrate that your vision is greater than your position — perhaps by programming simple utilities to solve big problems.
It might not seem intuitive that programming could be a path to demonstrate deep understanding of your IT systems. Programming and IT administration are, after all, separate disciplines. Indeed, many IT pros never make this connection, possibly delaying their career advancement. There is, however, a non-trivial link between programming and systems engineering that can advance your career more quickly than you may have thought possible.
Programming Demonstrates Depth of Knowledge
Writing software to automate mundane tasks demonstrates understanding that goes beyond the administrative or support interfaces you work with on a daily basis. This type of understanding represents the difference between an entry-level position and a supervisory or administrative position. The ability to program IT utilities, or in larger shops, develop specifications for IT projects that are passed onto the development team, requires an understanding of the underpinnings of IT.
For instance, a netadmin may begin by developing a sorely needed network management utility, thereby demonstrating an understanding of the topology layers, as well as the command line environment of their equipment, such as Cisco IOS.
Sysadmins, on the other hand, often have a need to build utilities that require understanding of the OS's command line interface, storage management, user accounts, and their organization's load balancing and redundancy configuration. Systems utilities can be especially useful in a multiOS environment, where lack of integration can create excessive hoops to jump through to accomplish simple tasks such as user account management.
Techs and help desk associates can get in on the act, too. Many IT departments are desperate for someone who can dive into the details of client management. Too often, IT struggles to tame unwieldy desktops and integrate them successfully with BYOD, so that employees can accomplish their work on any device without the need for frequent help desk tickets. Solving these hurdles requires expertise with diverse areas such as user profiles, policy management, VPN's, and remote desktop support.
A Story: From Lab Assistant to Sysadmin
One university computing lab assistant who advanced his career by solving a printer management nightmare. During his first few days of work, he noticed something strange. Frequently, right at the end of a class, a student would run into the lab assistant's office and one of the techs would run out of the office with them, usually carrying a stack of paper.
He learned that the department had a huge problem managing the printers in the classroom labs. Professors would want students to print their work at the end of class, and after a few prints there would either be a jam or a printer would run out of paper. This created the chaotic situation of students having to choose whether to be late for their next class or not turn in their work.
During moments when the computing labs were tranquil, the new lab assistant would sit at a workstation and contemplate coding a solution to the printer quagmire. The result was a custom utility that ran as a background task on the lab assistant workstation, receiving notifications from all printers for such events as low paper, low toner, or paper jams. By generating both an audible and visual alert before the problem descended into crisis, the technicians could now respond in time to get everyone printed and on their way without being late to class.
The lab assistant who solved this problem received a rapid promotion, moving up to become the supervisor to the lab assistants and, a few months later (after curing a few more department headaches), to a systems administrator.
To solve problems like these, we need to start by building programming expertise. Then we add IT training to deepen our knowledge of how our systems operate under the hood. With these two links, we can build a chain that's able to programmatically manipulate data and configurations that normally require tedious manual intervention.
Pick Your Language: Python, JS, Bash, PowerShell
If you're a newcomer to programming, or haven't studied it in many years, Python is probably the best place to start. It has high applicability to IT, and core programming concepts are easy to learn. Python is best used for creating simple graphical management utilities, as well as for scripting and configuration within Azure. Open source Python libraries already exist for nearly any IT application you can think of, just waiting for you to customize and deploy for your own needs.
It also makes sense for sysadmins to become proficient with scripting tools such as the Bash shell for Linux or PowerShell for Windows. Using shell scripts, custom utilities can be created without the need for dependencies because these scripting environments are built directly into the OS.
When it comes to developing network utilities, network techs and admins have a tremendous developer resource at their fingertips. Cisco DevNet training focuses specifically on network-based programming, even offering certification that qualifies your expertise as a network applications developer. DevNet is decidedly Python-focused but also explores general API use, understanding of the Cisco platforms such as IOS and DNA, network security, and DevOps.
Go Deep: Ditch the GUI
Programming is of no help to us if we only know how to execute our job through a GUI interface. We need to train deeper and certify deeper than our current position. The two main CompTIA certifications, A+ and Network+, serve as a great start by extending our IT knowledge far beyond simply operating a piece of software. Training for these certs can help us delve into the details of how our systems work.
From there, it makes sense to go platform-specific in order to understand exactly how to interact with these systems. In the Microsoft world, this begins with gaining your MCP, then MCSA, and finally your MCSE. There are many exam paths you can follow to earn the MCSE depending on your particular career goals.
If your shop is Linux-centric, you would probably opt instead for the Linux Foundation Certified SysAdmin, while those who are primarily involved in networking would go with the Certified Cisco Network Professional.
Network pros might instead choose to train for a Cisco cert such as CCNA Data Center. Perhaps better still, Cisco DevNet allows us to train for development and network depth simultaneously, earning our Cisco Certified DevNet Associate credential.
With a thorough understanding of how our systems work under the hood, we can conceptualize better solutions to the problems our departments struggle with on a daily basis. By applying some programming skills to this, we can rapidly take our career from zero to hero.
Apply Your New Skills with Desktop Management
Only you know your department's pain points, therefore you have to execute some judgement and creativity when it comes to solving your most relevant IT debacles. We can, however, list some of today's most common areas for improvement in typical IT departments.
Desktop management. Desktop management ranks as one of the most common areas of difficulty in most businesses. Users often move or delete icons, or inadvertently modify critical software. Modern operating systems have mechanisms such as user profiles that attempt to solve some of these problems, but too often, more intervention is required than the operating system supports by default.
Simple utilities can be created that tie into user profiles, accomplishing such feats as standardizing the desktop environment based on an employee's position and write-protecting critical files and settings. A little programming or scripting can ensure that users receive a consistent environment, whatever machine they log into and whatever settings they may inadvertently try to change. You may notice that this sounds a lot like VDI. Essentially, with some programming, we can tap into the benefits of VDI without the need for a massive centralized infrastructure.
Device management. As businesses embrace BYOD, new administrative and support hurdles have emerged. While software vendors have attempted to gain control of this tangle of device configurations, permissions, user interfaces and security issues, the reality is that there are too many possible configurations for a vendor to address all needs without making huge compromises in the process. This usually manifests itself at the help desk, where excessive requests abound for relatively simple problems.
A proactive admin could tie into one of the MDM systems out there, such as Microsoft Intune or VmWare Airwatch, creating scripts that can automatically and securely configure a user's device for work messaging, intranet, and VPNs.
There are also many areas for improvement among emerging hybrid cloud technologies, where some custom utilities can easily facilitate automatic failover, capacity upgrades, reconfiguration, and data backups.
Most IT professionals would rather not work the help desk or as an entry-level technician indefinitely. To move up, IT pros can either play the waiting game — or stand out among their peers. We propose that all it takes is some initiative, knowledge of underlying processes, and programming ability to take your career to the next level.