Learning to Code

When I was in high school, I absolutely loved getting ahold of the computer systems (in my case specifically, the Apple II gs) and spending a lot of time doing programming tasks in Apple BASIC.  I once wrote a program that the high school basketball coach could use to track stats through the season.  I loved solving problems through code.  Fast forward to my university days and I got exposed to many other languages (C, C++, Java, even multiple instances of FORTRAN).  However, I started to less enjoy programming.  It was all about learning specific algorithms and less about real world examples.  I lost interest in programming and ended up spending most of my free time as a student tech for the university IT department.  I augmented consulting-style skills and left the programming skills by the way side.  Upon graduation, I went immediately into technical consulting and did not even both with my coding skills for a very long time (minus an occasional VBScript code block here or there).

This leads us to my days as a VMware administrator for a very large footprint for a health care IT company.  My team got a notice that the local Microsoft office was putting on a PowerShell beginner’s course and wanted to know if anyone was interested in it.  I went, even though I wasn’t expecting much.  I am extremely grateful I did not pass on this.  What started with simple Write-Host lines of code blossomed into full fledged reports using VMware’s PowerCLI.  Then came my really big opportunity.  It took a series of four PowerCLI scripts and over 2000 lines of code, but my employer finally had some sort of resemblance of an automated virtual machine provisioning engine for the Operations team.  This went on to provision over 12,000 virtual machines in the first year of it’s existence.  While I no longer work for that company, I’ve heard from my former teammates that this engine, while having gone through multiple updates, still has most of the original code I put into it.  I still feel like this is some sort of crowning achievement for me, considering how long ago I had almost abandoned coding as part of my day-to-day functions.

Fast forward all the way to today and I spent a vast majority of my time looking at code.  Whether it’s PowerShell code snippets here for Cisco UCS Director tasks or JavaScript snippets for other parts of the ecosystem, I’ve felt like I’ve transitioned back into something that resembles less of a day-to-day admin and more of a developer.  I try to version control code, I do bug checking, I document my code like any good developer would do.  I’m just able to bring forth more know how into WHAT I want my infrastructure to do.  It’s relatively easy to go back to vCenter and look through the tasks I used to perform and decide what part it places in a larger process and getting to work on the code.

What’s my reason for writing about coding in an infrastructure role (or infrastructure as code)?  I’ve been noticing over the last couple of years that not too many others have joined in on this journey.  We are starting to see shifts in job requirements asking for persons at system engineer levels to have a good working knowledge of coding (whether it’s PowerShell or some other scripting language…not to mention using that code to work with APIs of many vendor systems).   DevOps is forcing infrastructure people to have to adapt and learn these skills.  I really am passionate about getting this message out to my fellow vSphere admin brethren.  It’s time to learn.  It’s time to drop that special feeling you have for your vCenters and start shifting your thinking towards turning these components into the commodity components they need to be turned into.  Automate away the things that keep you overburdened!  You’d be amazed exactly how much more efficient you can become doing these things!

Lastly, while I know I had training in programming in my student days, I do feel that it wasn’t until I started getting ahold of PowerShell that I really started to put it all together.  I learned with all the bumps that come with learning any new programming language (your first “HELLO WORLD” lines to trying to figure out what methods/properties were).  I also had to weave learning these new skills while doing my day job.  It’s hard to balance out all of it, but there will come a point when learning these new skills where the lightbulb goes off and you can see just how efficient you can become by setting up a script to perform all that manual labor you were doing.  It can and will be worth it in the end!

Advertisements

About snoopj

vExpert 2014/2015/2016, Cisco Champion 2015/2016. Virtualization and data center enthusiast. Working too long and too hard in the technology field since college graduation in 2000.
This entry was posted in Technical and tagged , , , , . Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s