As always, opinions in this post are solely those of my own, and not necessarily those of any organization I am currently affiliated with or have been in the past.
First posted 11/22/2020
Learning Python is like learning music. Learning to neatly run cables in a datacenter is like an art class. A Cisco IOS expert can learn JunOS just like an American driver can learn how to drive in the UK. If you’ve spent any time on other tech blogs or tech-focused subreddits, you’ve probably heard a bazillion of these analogies, and sadly this post features way too many of them.
When I was an 18 year old CCNA candidate, I had no desire to try and “think like a computer scientist” because I wasn’t a fan of math homework in High School, and coding was too similar to math in my teenage mind. I just wanted to go home and build on my IT support skillsets that I found more fun, not mess around with math-like code, or waste valuable time solving for x with Algebra homework. “Why bother learning all that hard programming stuff when there’s a fantastic job market for those with CCNA and MCSA skills?” was my MO in the early 2010’s. I even chose the 4-year college I transferred into largely because their Computer Network Technology degree didn’t require any difficult programming or math classes!
Although I was doing fine without any programmatic skills when I first started working full-time in 2012, I don’t think most IT support people (myself included) realized how important learning to code would become due to the rapid adoption of AWS/Azure/GCP and software defined networking. Back then, DevOps was just getting started, Amazon was still migrating to AWS, and Netflix was only beginning to move away from DVD-by-mail towards streaming. Topics you hear about all the time on PacketPushers these days like Infrastructure-as-code, Pets vs. Cattle, and python for network engineers simply weren’t on the radar of many IT shops. Sure, the Linux gurus had their shell scripts, Windows gurus were rapidly adapting Powershell, and network gurus had tools like Solarwinds for mass deploying configs. However, aside from a tiny amount of TCL for my CCNP classes, I never had much desire to learn a more robust language like Python. It simply wasn’t something most early career network admins were doing at the time.
I was stuck in my antiquated ways of not wanting anything to do with learning to code all the way up until 2018 when I was introduced to The Phoenix Project and Hello World. Slowly after reading those, I warmed up to doing more with automation, and now I really wish I had found those resources far earlier in my career. Nowadays I tell pretty much anyone that will listen about how awesome those two books are, and I’m hoping these silly rock music analogies will help others in similar scenarios. I picked up my A+, Security+, CCNA and MCSA certs so easily, why was it so painful for me to learn Python, or any programmatic stuff for that matter? How is it that I could power through the hardest parts of the CCNP Route books, but couldn’t get past the first chapters of any Python book?
Well, there’s no perfect answer to those questions, but I think I now have some good analogies about what I was doing wrong: I was trying to do the programming equivalent of Eddie Van Halen Guitar solos at work without putting in the time to practice simple guitar songs first.
Throughout my career, I’ve been incredibly lucky to work at places surrounded by absolutely brilliant technologists with computer science degrees, very proficient with automating & standardizing the infrastructure. On the other hand, I would personally struggle or procrastinate every time I’d get a task that involved using scripts for automation. Many of my former coworkers were doing the coding equivalent of Eddie Van Halen playing Eruption, and I was getting really frustrated that I couldn’t write or play that kind of music! I’ve even had a former boss who was so good at coding, he started making YouTube videos about learning to code, years before Udemy and Coursera became popular.
It would have been smart of me to watch his videos back then, but instead of jumping out of my CCNA-level comfort zone, I made the big mistake of avoiding any work involving coding. So without further adieu, let’s dive head first into rock music + technology analogies by watching EVH play some Eruption:
Green Day is like CompTIA’s A+ and Security+ certs
I heard about the CompTIA A+ while watching ZDTV sometime in the late 90’s or early 2000’s, and instantly got hooked on studying for it when my parents bought me an A+ study guide sometime around 2002. I was only in junior high back then, but it was so much fun to pick up the Mike Meyers book and start getting the instant gratification of repairing computers! This ability to pick up the A+ book with zero prior knowledge and start learning to fix computers is very similar to someone getting the instant gratification of playing the 5 notes in Green Day’s Brain Stew with zero guitar experience.
By no means am I trying to diss Green Day here; their album featuring Brain Stew is one of my all-time favorites. It’s so much fun to pickup a guitar and play Brain Stew after going very long amounts of time without practice. Better yet, I could probably teach most people to play that song in under a full day’s worth of effort, and I’m not very good at guitar! Eventually, you’re going to get bored of playing Brain Stew, moving onto other Green Day classics. This is very similar to how someone starts with computer repair, then moves on to a bigger certification or degree program. Or like many people do after receiving a guitar, sadly they lose interest in the A+ book and move onto something else.
There’s also nothing wrong about staying with Green Day songs on guitar like some people stay doing Helpdesk type stuff for a long while either. There’s one big thing I should mention about doing Helpdesk for extended periods of time though: the work may become so soul-crushing that you flip out on a support call like Green Day flipped out at the 2012 iHeart Radio show. Shortly after that incident, Billie Joe Armstrong went to rehab, things got better, but I can assure you that after enough time on a helpdesk job, you will likely have a day when you want to do this:
The truth is although there’s an abundance of people that can play some Green Day songs on guitar, there’s also an abundance of helpdesk jobs out there, plus the job security can be a big win. Some of the Green Day songs & helpdesk tasks may be repetitive, but this is how you begin playing guitar or begin a technology career. Green Day’s new music isn’t anywhere close to the popularity of their mid-90’s heyday, but I don’t see their classic albums losing popularity anytime soon. However, much like ITIL, Green Day’s new music is more complicated, and there’s very much a market for that sort of stuff. Unlike network engineering or computer programming, it’s easy for a talented high school kid to do CompTIA A+/Security+ things, much like a talented high school kid can easily play Green Day songs on the guitar.
Green Day and Van Halen are two bands with large mainstream success. This is similar to how helpdesk-level computer repair jobs and expert-level computer science jobs are known worldwide. However, network engineering and Cisco Certification-based career paths definitely do not have that “household name” status, much like a smaller band compared to the superstars. The next part of this analogy is going to involve a much lesser known guitar player on-purpose: let’s listen to Tomas Kalnoky rock out with Streetlight Manifesto below, paying attention to the epic trumpet playing by Matt Stewart!
Streetlight Manifesto is like the Cisco Certifications Tracks
It’s no secret that I’m a gigantic Streetlight Manifesto and Cisco Certifications fan! Odds are a very large percentage of people reading this have not heard of Streetlight, much in the same way a large percentage of people outside of technology have never heard of Cisco certifications. However, once someone starts going down the Cisco certification path, it’s not uncommon for people to become really big Cisco fans, much like Streetlight Manifesto fans tend to get really into attending their shows. I am proud to be one of those nerds who’s really into computer networking, and I’m also one of those fools who has planned multiple business trips around seeing Streetlight when they have a show scheduled. I’m happy to see more High Schools and Community Colleges start to have Cisco Network Academy programs, but you see these far less than you see computer repair or computer science classes. Maybe both Streetlight’s music and Cisco’s classes will become more popular someday, and this part of the analogy will no longer be true, who knows.
As of this writing, there’s over a dozen different Cisco certification tracks, just like there’s over a dozen instruments played in some Streetlight shows. Nobody would expect someone with a CCNP Datacenter cert to be doing all the things someone with a CCNP Security cert does, just like nobody expects Streetlight’s Baritone Sax player to start playing the Trumpet mid-show. Sure, both the CCNP Datacenter and CCNP Security cert holders all know their network fundamentals just like the Streetlight performers all know music fundamentals. It’s much less common to find a high schooler that can play Streetlight’s guitar riffs than it would be finding one capable of playing Green Day, but it’s not impossible. Same holds true for Junior Network Engineers: occasionally someone gets their CCNA before age 18, it’s possible, but not super common. It’s way more difficult to find someone that can play Streetlight’s specialized trumpet solos, very similar to the difficulty finding specialized Senior Network Engineers. There’s not too many people out there who can play the trumpet live like Streetlight’s Matt Stewart, and there’s not many people out there who can do the CCAr level of Cisco knowledge:
Streetlight’s Wikipedia page has more text about the drama over their breakup with Victory Records than any other topic, and some people have only heard of the band due to the attention they got when boycotted themselves. Unfortunately some of these high-drama, very strong opinions about something to the point where a boycott is performed can be common amongst network engineers. This isn’t because network engineers are high-drama people, I think it’s due to the amount of blame the network gets when any outage occurs. Just like Streetlight got burned by Victory Records, I’ve seen many circumstances where network teams get burned by shoddy fiber transceivers, software bugs on critical infrastructure, and terrible internet service providers. But that’s enough about streetlights and networks, let’s get back on track about learning to code and the Mozart of Rock Guitar: Eddie Van Halen
Van Halen is like the traditional Computer Science path
When you think of a classic 70s/80s rock band, chances are you might think of Van Halen. When you think of a traditional computer scientist, chances are you think of someone who codes. Unlike many Green Day or Streetlight Manifesto songs, it may take you many years, perhaps over a decade, to play Eddie Van Halen’s guitar solos. The same holds true for writing really good code as a software engineer: even decades of experience might not be enough to work for a Big Tech company. Sure, every now and then you’ll find an eighth grader nailing a Van Halen solo, but it’s very rare. Much in the same way as finding an eighth grader who can write code at a professional level.
That being said, some of the most successful musicians become really good at a really early age, including Eddie Van Halen himself. We hear about this a lot in the field of computer science too; Bill Gates and Steve Jobs were already getting established in the computer science field at age 13. Musical virtuosos like Eddie Van Halen and code virtuosos like Bill Gates did get started early, but that doesn’t mean you can’t get good at coding if you start later in life. Just keep in mind you’re going to be competing against these folks who have been doing it since junior high, and competition can be brutal when it comes to the best computer science internships and entry-level jobs. It’s not very likely that you’ll rise to the levels of Eddie Van Halen or Bill Gates, but the odds of getting a decently paying job are in your favor!
Many people can play Green Day songs, some can play Streetlight Manifesto, but very few will make it to Eddie Van Halen’s level of mastery. Nowadays, new fields like Site Reliability Engineering are creating many exciting new jobs, allowing those with great experience in IT operations or computer science to add a great deal of value to any organization without necessarily being a coding guru. But if you’re going into Computer Science with your heart set on working on the next Call of Duty game or writing the next big thing at Google, you may be in for a bad time.
After creating one of the best albums of the 1980’s, Van Halen parted ways with their lead singer David Lee Roth. Starting over again with Sammy Hagar, they created another amazing album in what’s widely considered one of the smoothest lead singer transitions in rock music. Computer Scientists need to do well with multiple languages and platforms, much like Van Halen did well with multiple lead singers. Whether it’s rewriting Pearl to Python, Python2 to Python3, or even porting Intel code to work on the new Apple Silicon, things are always transitioning with code.
As with any technology career path, learning is continuous and one must be extremely versatile when it comes to coding for multiple platforms and languages. Eddie Van Halen’s versatility between playing the epic guitar solos of the 70’s, to the epic synthesizer hooks of the 80’s, even working a guitar solo into a Michael Jackson #1 single, is incredible. This versatility is becoming more important nowadays given all the different APIs, public cloud platforms, and of course processor architectures in these crazy 2020 times. Before wrapping things up in the conclusion, take a look at Eddie’s versatility playing the guitar solo on that Michael Jackson song, then watch him get Jump’s synthesizer hook stuck in your head:
Ok, so how does all this relate to learning programming skills again?!?
Now that we’ve beaten this rock music analogy into the ground, I’d like to reiterate that my strategy for learning Python and Powershell was very similar to trying to play an Eddie Van Halen solo before I could play a 5-note Green Day song. Instead of starting with the fantastic simple projects in Hello World, I only focused on doing the work projects I needed to knock out so I could get back into the network engineering stuff I actually enjoyed. This was like trying to have a 3rd grader do a trigonometry problem before knowing anything about Algebra, it’s just not going to work, and everyone’s going to have a bad time. To be fair, I think my learning strategy was only half of the problem when it came to me struggling with coding: the other half likely has to do with impostor syndrome, and Cisco ISE rockstar Katherine McNamara explains this far better than I could. I highly recommend watching her interview below, especially after the 22 minute mark if you’ve had a non-traditional start to a technology career:
Many people (myself included) had poor experiences with coding similar to how some people have poor experiences trying to learn guitar, so we did other things instead. There’s nothing wrong with that, but I feel that not being able to think programmatically is likely to restrict your technology career someday, especially given the way things are going in the cloud. For those of you reading this who are having the same trouble I did initially learning things like Python, shell scripting, Powershell, etc: don’t give up easily! Start with the equivalent of 5-note songs in books like Hello World, and before you know it, the big API-based Network Automation Orchestra will start to make sense. It’s tempting to say things like “I’m just not going to learn Python, plenty to keep me busy studying for CCNA things”. Don’t do it! Tough out the initial pain, and before you know it, you’ll be learning how to live the good life with Netmiko.
Special thanks to my dad, for getting me interested in Van Halen at a very early age.
You’ve reached the end of the post! Click here to go back to the list of all CCNA candidate toobox posts.
You should also know I may earn commissions on qualifying Amazon purchases made via kd9cpb.com links to defray the cost of otherwise ad-free web hosting.