Search

Learning IT Fundamentals

Where do IT fundamentals fit in our modern, cloud- and abstraction-driven
engineering culture?

I was recently discussing the Sysadmin/DevOps/IT industry with a colleague,
and we started marveling at just how few of the skills we learned when we
were starting out are actually needed today. It seems like every year a
tool, abstraction layer or service makes it so you no longer need to know
how this or that technology works. Why compile from source when all of the
software you could want is prepackaged, tested and ready to install? Why
figure out how a database works when you can just point to a pre-configured
database service? Why troubleshoot a malfunctioning Linux server when you
can nuke it from orbit and spawn a new one and hope the problem goes away?

This is not to say that automation is bad or that abstractions are bad. When
you automate repetitive tasks and make complex tasks easier, you end up
being able to accomplish more with a smaller and more junior team. I'm
perfectly happy to take a tested and validated upstream kernel from my
distribution instead of spending hours making the same thing and hoping I
remembered to include all of the right modules. Have you ever compiled a
modern web browser? It's not fun. It's handy being able to automate myself
out of jobs using centralized configuration management tools.

As my colleague and I were discussing the good old days, what worried us
wasn't that modern technology made things easier or that past methods
obsolete—learning new things is what drew us to this career in the first
place—but that in many ways, modern technology has obscured so much of
what's going on under the hood, we found ourselves struggling to think
of how we'd advise someone new to the industry to approach a modern
career in IT. The kind of opportunities for on-the-job training that taught
us the fundamentals of how computers, networks and Linux worked are
becoming rarer and rarer, if they exist at all.

My story into IT mirrors many of my colleagues who started their careers
somewhere between the mid-1990s and early 2000s. I started out in a kind of
hybrid IT and sysadmin jack-of-all-trades position for a small business. I
did everything from installing and troubleshooting Windows desktops to
setting up
Linux file and web servers to running and crimping network wires. I also ran a
Linux desktop, and in those days, it hid very little of the underpinnings from
you, so you were instantly exposed to networking, software and hardware
fundamentals whether you wanted them or not.

Being exposed to and responsible for all of that technology as "the computer
guy", you learn pretty quickly that you just have to dive in and figure out
how things work to fix them. It was that experience that cemented the Linux
sysadmin and networking skills I continued to develop as I transitioned away
from the help desk into a full-time Linux sysadmin. Yet these days, small
businesses are more likely to farm out most of their IT functions to the cloud,
and sysadmins truly may not need to know almost anything about how Linux or
networking works to manage Linux servers (and might even manage them from a
Mac). So how do they learn what's going on under the hood?

This phenomenon isn't limited to IT. Modern artists, writers and musicians
also are often unschooled in the history and unskilled in the fundamentals
of their craft. While careers in science still seem to stress a deep
understanding of everything that has come before, in so many other fields, it
seems we are content to skip that part of the lesson and just focus on
what's new. The problem when it comes to IT, however, isn't that you need to
understand the fundamentals to get a good job—you don't—but when something
goes wrong, without understanding what's happening behind the scenes at
least to some degree, it's almost impossible to troubleshoot. When you can't
fix the problem yourself, you are left rebooting, respawning or calling your
vendor's support line. Without knowing about the technologies of the past
and their features and failings, you are more likely to repeat their
mistakes when someone new to the industry convinces you they just invented
them.

Fortunately the openness of Linux still provides us with one way out of this
problem. Although you can use modern Linux desktops and servers without knowing
almost anything about how computers, networks or Linux itself works, unlike
with other systems, Linux still will show you everything that's going on
behind the scenes if you are willing to look. You can set up complex
networks of Linux servers running the same services that power the
internet—all for free (and with the power of virtualization, all from a
single machine). For the budding engineer who is willing to dive deep into
Linux, you will have superior knowledge and an edge over all of your peers.

Kyle Rankin is a Tech Editor and columnist at Linux Journal and the Chief Security Officer at Purism. He is the author of Linux Hardening in Hostile Networks, DevOps Troubleshooting, The Official Ubuntu Server Book, Knoppix Hacks, Knoppix Pocket Reference, Linux Multimedia
Hacks and Ubuntu Hacks, and also a contributor to a number of other O'Reilly books. Rankin speaks frequently on security and open-source software including at
BsidesLV, O'Reilly Security Conference, OSCON, SCALE, CactusCon, Linux World Expo and Penguicon. You can follow him at @kylerankin.