Why You Should Do It Yourself
Bring back the DIY movement and start with your own Linux servers.
It wasn't very long ago that we lived in a society where it was a given that average people would do things themselves. There was a built-in assumption that you would perform basic repairs on household items, do general maintenance and repairs on your car, mow your lawn, cook your food and patch your clothes. The items around you reflected this assumption with visible and easy-to-access screws, spare buttons sewn on the bottom of shirts and user-replaceable parts.
Through the years though, culture has changed toward one more focused on convenience. The microeconomic idea of "opportunity cost" (an idea that you can assign value to each course of action and weigh it against alternative actions you didn't take) has resulted in many people who earn a reasonable wage concluding that they should do almost nothing themselves.
The typical thinking goes like this: if my hourly wage is higher than the hourly cost of a landscaping service, even though that landscaping service costs me money, it's still cheaper than if I mowed my own lawn, because I could somehow be earning my hourly wage doing something else. This same calculation ends up justifying oil-change and landscaping services, microwave TV dinners and replacing items when they break instead of repairing them yourself. The result has been a switch to a service-oriented economy, with the advent of cheaper, more disposable items that hide their screws and vehicles that are all but hermetically sealed under the hood.
This same convenience culture has found its way into technology, with entrepreneurs in Silicon Valley wracking their brains to think of some new service they could invent to do some new task for you. Linux and the Open Source movement overall is one of the few places where you can still find this do-it-yourself ethos in place.
When referring to proprietary software, Linux users used to say "You wouldn't buy a car with the hood welded shut!" With Linux, you can poke under the hood and see exactly how the system is running. The metaphorical screws are exposed, and you can take the software apart and repair it yourself if you are so inclined. Yet to be honest, so many people these days would buy a car with the hood welded shut. They also are fine with buying computers and software that are metaphorically welded shut all justified by convenience and opportunity cost.
Yet there is something missing in most of these opportunity cost calculations—the less tangible benefit you get from increased knowledge and skills when you figure out how things work and how to repair them, and the satisfaction and pride you feel when you see the results of your own efforts. When you do things yourself, the mystique starts to fade away, and you realize that most of the things around you aren't nearly as complex or magical or inaccessible as you once thought they were. The increased confidence you got when repairing your lamp might encourage you to figure out how to replace that faulty light switch in your house.
With the advent of cloud services, it's incredibly easy to have someone else set up Linux and open-source services for you, and when they break, throw them away and start from scratch. However, this convenience comes with a cost of its own, and not just the hourly rate for your servers. These services and abstraction layers make things easier to use but harder to understand. It adds a mystique to technology and makes it seem much more complex than it really is under the hood. It also makes it easy to avoid learning how things actually work and hard to learn how to fix them.
When I started out with Linux on the desktop, I essentially got an education in software development, networking and system administration as part of just making Linux work. Using Linux as a server platform immersed me in computer fundamentals even more. I learned more about Linux by breaking something and then fixing it myself than I ever would have in a certification class or by handing it off to tech support. I learned more about networking fundamentals by physically connecting two Linux servers and trying to get them to talk to each other than I ever would by clicking a few buttons in a cloud dashboard.
These days Linux has become a lot easier to use, but along with that ease, we've lost most of those built-in learning opportunities. How do new junior engineers learn how networking really works these days? How do they learn how to fix a broken Linux server? I want to encourage you to search for these learning opportunities. Learn what's going on under the hood. Get a spare Raspberry Pi and set up your own web, DHCP, DNS and email servers from scratch.
Eventually that server will break, and if you don't give up, with a bit of research and troubleshooting, you'll be able to fix it all yourself. In the process, you'll find this stuff really isn't as complex as you thought it was, and you'll find yourself wondering: what else can I do myself?
You gain something else when you do it yourself—independence, freedom and control. One of the real risks with proprietary software is the fact that control (and freedom) is taken away from you, as you are beholden to the software vendor to patch bugs and add features. There are countless examples of developers who got their start in open-source software because they wanted to add one extra feature to an existing program, fix one annoying bug or get some random piece of hardware working. Because the source code was available, they could freely inspect it, learn how the software worked and figure out how to change it themselves.
So, next time that cloud server is spitting out 500 errors and you have no idea why, resist the temptation to kill it and spawn a new one. Take a minute to poke under the hood and see if you can figure out the problem yourself. The next time you need some new service around the house, resist the urge to buy some shiny IoT gadget. See if you can make it yourself with a Raspberry Pi or Arduino and a little bit of software. After all, that's what most of these IoT devices are underneath their shiny exteriors. Sure it may take a little more time, but when your neighbor's IoT appliance starts DDoS-ing the internet at large, you'll have the skills to help troubleshoot it.
Limited Time Offer
Take Linux Journal for a test drive. Download our September issue for FREE.
Topic of the Week
The cloud has become synonymous with all things data storage. It additionally equates to the many web-centric services accessing that same back-end data storage, but the term also has evolved to mean so much more.