Having damn near 20 years of IT experience under my belt (damn I’m getting old for this job), I think I can say a few things about what it takes to be good in this field. I’ve always been an “Infrastructure Guy”, so I’m not a full-fledged developer or a “BI Guy” who can make data look sexy for management. I’ve always done the ugly stuff that no one outside of the field really gives a crap about, and that’s perfectly fine with me.
Looking back at my career thus far, I think there are three major things I would tell anyone looking to get into my kind of work to learn. All three are really general, not specific to any applications on the market, and look completely unsexy on a resume. None of the three will really catch the eye of most IT recruiters. The thing is, they are all foundational for what you need to be able to do right now, and are general enough that you can apply them to damn near every 3rd-party product on the market.
Two of these apply only to Windows or Linux. Why would they be so important, then? Regardless of the shop, you will run across both Windows and Linux in your environment. If you’re in a Windows shop, but have VMware as your hypervisor solution, you’ll be doing Linux work to keep it up-to-date. If you’re in a Linux shop, you can almost guarantee there will be Active Directory running somewhere in your office for the PCs that users have on their desks. When/if you get a SAN or a NAS device, you can bet that it’s running a variant of Linux underneath, and unless you’re wanting to spend a ton of money on help, you’ll be logging into it eventually. Knowing something about both is unavoidable.
Here are my three, starting with the most general thing to learn of all, which has nothing to do with Linux or Windows.
Structured Query Language (SQL). This is the one it took me the longest to decide to learn. I always had 3rd party applications that I’d work on, and if someone needed a report, I would depend on whatever built-in reports the system had to get me through. SCOM, SCCM, Footprints, Citrix, and more, all had built-in reporting that I could generate to answer questions to my managers. The thing is, every one of these systems has a database behind it, and if you know basic SQL, you can get all this information without their damn reporting tools. You can connect to the DB with whatever you darn well want and get the info you need. On top of this, you can use similar language for all kinds of other stuff. In Windows, for instance, Windows Management Instrumentation (WMI) allows you to remotely pull computer information from other computers, such as the amount of memory in use, the software installed, and so on, and querying it uses a format very similar to SQL statements. I learned what I know of SQL from a 2-day SQL class from New Horizons, where the instructor showed us how to do basic stuff, like SELECT, INSERT, and DELETE, and then got into GROUP BY at the end. Nothing major, but enough that I can do so much more than before. TOTALLY WORTH THE EFFORT.
PowerShell. I say this as a Windows guy; if you are in a Windows shop, there is no technology you should start learning TODAY more than PowerShell. It is foundational in all versions of Windows Server since Server 2012, and it’s been passed down for everything even back to Windows 2003. I would venture to say that there is nothing you need to do anymore on Windows Server that you cannot accomplish with PowerShell. Even other parts of Microsoft (AD team, Exchange team, etc.,) build PowerShell add-ons for their tools, and 3rd parties do the same, such as the VMware PowerCLI. On top of this, once you do something with it, you can save your commands as a .PS1 file (a “script”) and repeat the same thing forever. The work you put into figuring out how to do something is saved forever, and, as long as you keep a repository of your scripts and remember what does what, you will never have to figure it out again. From a team perspective, if you have a script called “NewUserScript.PS1”, you can basically point new IT employees there to say, “Hey, you can run this script and create new users the right way,” or whatever else you have in this script. You can save not only yourself time, but everyone else in your team. If you have the freedom to, you can even share your scripts out in Github for others to use and enjoy. How cool is that? Speaking of, with scripts already out there in Github or Bitbucket or whatever, you can now apply the work of others to your own tasks, saving you time and your company money. It takes a village…
Bash. This is where I’m less skilled than many of my counterparts, but it’s something I need to really delve deeper into. Bash is the Linux shell. This is what you can use to accomplish basically everything within a Linux environment, and much like PowerShell, you can save your scripts to repeat later. (Maybe I should’ve said PowerShell is much like Bash in this respect, but, eh.) As mentioned earlier, I’m to the level of “dangerous” only with this tool, as I’ve used it for personal work and only when needed for my job, but it’s still something that I’m comfortable enough to not sweat over if I’m asked to do it.
More on “How to Get There” next time.