Originally Published: Friday, 7 July 2000 Author: Rob Bos
Published to: featured_articles/Featured Articles Page: 1/1 - [Printable]

Getting Stuff Done Now

In the process of learning Linux, you are occasionally thrust into the position of needing to know how to do something right this minute. You haven't the luxury of time to read documentation, poke about man pages, and find out a way of hacking together a solution to a very real problem that exists right this moment.

   Page 1 of 1  

In the process of learning Linux, you are occasionally thrust into the position of needing to know how to do something right this minute. You haven't the luxury of time to read documentation, poke about man pages, and find out a way of hacking together a solution to a very real problem that exists right this moment. If you are put in the position of having to set up a Web server, and haven't a clue as to how Apache or Linux works, for instance, or put in the position of fixing a Linux system that simply will not boot, when you have no experience with the subject, certainly Linux and its programs will be frustrating. An ready, solid working knowledge of the operating system and its structure is a required element to getting things done.

As a general rule, Windows has a large number of programs that work right out of the box. They are trivial to set up for someone who really doesn't care about the details of that program. They may not work particularly well, and require constant attention, but they work with a very minimum of initial effort.

Unix programs, on the other hand, typically require at least a token effort at configuring them properly, customising them for your particular situation. This makes them, in general, a good deal more powerful and robust, but it doesn't help the poor person crunched for time, setting up a Web server at the last moment.

The general attitude toward this problem is "tough beans." If you haven't got the skills to set something up from experience in the past, or if you haven't got someone with those skills to do it for you, use something else. It either gets set up properly, or it doesn't get set up at all. Short-term ease-of-use is not a problem that gets much sympathy in the Unix world; instead, it concentrates on long-term ease-of-use. The basic skill set required is large, but once that first hill is overcome, the sheer power of the Unix architecture pays off rewards orders of magnitude greater than the original effort expended learning it.

So my advice given to the person struggling, at the last moment, to set up a firewall, a Web server, or a mail server is simple, if a little heartless: learn to use Linux first. Once you have the basic, essential understanding of how Linux works, doing these things is not only trivial, but somewhat self-obvious and can be done right, and done easily. This is simply an essential fact. Without an essential understanding of Windows' structure, the odds are good you wouldn't be able to install a Web server, or set up a network infrastructure, or a mail server with it, either. The learning curves are simply of a slightly different order of magnitude.

The situation, however, is not entirely hopeless.

Linux has a very large, very powerful support network in place. A hundred different potential sources for help exist: documentation, users, companies, FAQs, IRC -- provided you know where to look and what to ask. All these things exist to get past the initial learning curve, to get things set up now, and set up as quickly and smoothly as possible, and set up correctly. All that is required is patience, an ability to comprehend, and the will to experiment and generalise ideas.

Learning Unix is like learning any specific Unix program; an initial effort pays off in the long term with simple, robust, powerful software. Expecting results, and expecting them immediately, can only happen if you understand the process that leads to those results. Once you have that basic understanding, the results come fast. The first time will always be the hardest.

This basic idea extends far beyond Linux; when you set out to build an office building, you have to first learn drafting. When you set out to make a desk, you must learn carpentry. When you set out to design an electronic circuit, you first learn electronics. Sitting down at a desk with a pen and a piece of paper and complaining because the skills for mathematics, or sketching, or electronic design aren't immediately there to draw on is a self-centered, impetuously impatient thing to do and a sign that something is fundamentally wrong with the approach one is taking. Learning is required to do anything worthwhile, and a fundamental building block of a person's life. Enjoy it -- the ability to learn is a wonder.

Rob Bos, rbos@linux.com, is going on vacation in California soon! Yay!





   Page 1 of 1