Mike Levin SEO

Future-proof your technology-skills with Linux, Python, vim & git... and me!

Why Learn Linux?

by Mike Levin SEO & Datamaster, 07/27/2010

You learn Linux to become a more capable individual, employee, and citizen. Linux is similar enough to Unix—a computer operating system that dates back 40 years, and which today is inside virtually every electronic device that has a processor inside it—oh, except for Windows. But that’s precisely the point. Windows goes obsolete every 5 to 10 years, and we’re going through another phase now with Windows 8 (I’ve updated the article).

This article is to protect you from that vicious cycle of obsolescence that not only outdates a windowing OS, but also your skills—forcing painful cycles of retraining and rebuying the latest and greatest. That’s no way to become an uber-tech. So, learn Linux. It’s close enough to Unix, that you will understand what underlies almost everything in infotech these days—from wristwatches to Macintoshes to cellphones to supercomputers.

In case you haven’t noticed, I’m not one of those elite techno dweebs that derives their identity from putting down people who don’t know these things. I’ve gotten to where I am by going toe-to-toe with draconian sysadmin put-down experts, and wrestled the keys to the kingdom out of their death-grip hands—to great effect I might add—correcting the course of million-dollar companies in the process.

I believe in (and take great joy in) the “indoctrination” process of getting newbies over that ineffable hump that keeps the inner-circle in, and outsiders out.

Unlike point-and-click operating systems, like Windows, OS X, and even Linux with KDE or Gnome slapped on it, the underlying text-based world of Unix-like operating systems is somewhat intimidating and has a steep learning curve. There are lots of difficult-to-master, and even more difficult-to-describe steps that need to be overcome. But this typing interface is the beating heart behind Macs, iPhones, Android, and just about everything but PCs.

Everything old is new again. For example, there is value in learning the 40-year-old vi text editor, because it is installed by default on EVERY Unix-like operating system, including the incredibly stripped down Debian installation we just made. And as obsolete and archaic as Unix-like operating systems may feel, they have achieved technological ubiquity, built into ever more devices, and satisfy the 80/20 rule. It may not be the best operating system environment ever, but it solves 80% of what people need to do with 20% of the effort. As a result, Unix-like OSes have become the pee in the pool. It’s never coming out. Therefore, it is now easy to know where to invest your precious learning time, if you want some capabilities in your back pocket that are likely to be relevant, well, perhaps for the rest of your life.

Mastering this typing interface only comes with lots of trial-and-error practice, that only comes with putting in a lot of time, and following the right clues. I do this independently and aggressively, surfing the net, consuming O’Reilly Media tech books, and putting what I learn into use in my day-job.

Having recently identified the shift that is taking place towards Unix-like operating systems, I had to re-educate and re-position myself. I was what you would call a hard-core Microsoft amateur programmer, mastering VBScript, IIS and SQL Server. It was ridiculously hard to map out a career-shift path at the same time as being gainfully employed in a job that didn’t call for programming, and recently getting married. My first step was buying a tiny low-power Fit-PC, which I could install and run Linux on and keep running like a server out of my home, and have root privileges. I also bought an iMac as my primary home computer, and permanently turned off my PC for the last time, forcing myself to go cold-turkey.

Well, I went into hot sweats, thinking there was no way I could give up all the Microsoft-specific power I had acquired through my mastery of VBScript. But after an unsuccessful attempt to switch over to ASP.NET, right as Ajax was hitting and as-yet unsupported by .NET, I realized I had to become a career-type programmer of the type I had always thought of C++ and Java programmers, even just to stay on the Microsoft platform, which wasn’t even doing what I needed from a web-development standpoint anyway. It was bitter medicine, but Microsoft had left me behind, so I reaffirmed my resolve to leave it behind.

My Fit-PC and iMac experience has served me well. But since then, I have been shifting my attention from $200 Intel-based FitPCs to $100 ARM-based plug computers. All my Linux experience, and Debian in particular, seamlessly transferred over to ARM, to my surprise and delight. But I realized that the process I had gone through was not tied so much to the hardware, even though control over the hardware is the ultimate prize for me. I came to realize the very virtualization software that I had come to hate so much due to their use as a weapon against me in embittered power struggles over resources, was also the best learning platform, and way to “bottle” the Linux indoctrination process, and equip others like me to fight the good fight. When your sysadmin tries to crush you under his thumb, take satisfaction in pulling a shank server out of your pocket, plug it in, get an IP issued through DHCP, and log into root. Develop your application, and move it over to Rackspace or the Amazon computing cloud. If you programmed your app well, it will readily scale out to many thousands of times the capacity of what your local sysadmin could have ever provided you anyway.

So here I am, breaking it down blog-post by blog-post. I will have to add more organization, illustrations, videos and the like as this site develops, but for now, I’m using the free-flowing narrative style to take you step-by-step in a way that gives you some idea of the inner workings of Linux–and not just the downloading and running of a ready-made Linux appliance, like a JeOS box (just enough operating system). I am essentially teaching you how to create a JeOS box.

There’s something almost spiritual about this process. No mater what operating system you’re starting out on, you can create a piece of virtual hardware that can live on it and travel with you on a thumb drive to live under other host operating systems, without so much as an install. It’s almost like a Noah’s Arc.

Better still, in mastering the skill of making this piece of virtual hardware, you are also mastering many of the skills it takes to set up real hardware, or cloud instances. This makes you able to sit down at any computer-like hardware, old or new, and make it do your bidding, from old junk PCs to WiFi routers to billion-dollar data centers. It’s like having the power to animate inanimate objects.

And even better still, because of the nearly worldwide adoption of Unix-like operating systems as the generic plumbing of information technology, you’re skills will be very relevant for a very long time. They’ve been around for the past 40 years and are likely to be around for the next 40. It’s like being passed on the secret knowledge of how everything works (well, at least a lot of things).

And finally, old-school knowledge and know-how is becoming new again as a generation of Unix people retire, and a the new generation of Facebook’ers and iPhone’ers never have the impetus to look under the hood and figure out how everything works. They are growing up with pre-packaged experience-delivering consumer electronic computer devices the way my generation grew up with TVs. Why would you ever open up a TV and change how it works? You wouldn’t, because there’s not much opportunity for world-changing creative expression. But with computers, there is, and you can! You can become the next Segey Brin and Larry Page. You can become the next Mark Zuckerberg. All these empires were really just built on creatively figuring out how to make boxes you directly control do important new things in a way that minimizes dependencies.