Thu 16 Oct 2008 12:00:00 AM PDT
d00d teach me how to hack!!1!!
This is a boilerplate answer to the "help me get started with Linux" mail that I seem to get a lot of.
You need three things to get started with Linux, and only the last one is a computer with Linux on it. So pay attention to the first two.
1. What do you want to do with it? Linux user groups attract a constant stream of new people. Some stick with it and learn Linux, and others don't. The difference? Almost all of the time, the people who get something out of it are the ones who show up with a goal. Start a web site or a mailing list. Learn a programming language. Build a robot. Set up a home file server/jukebox machine to back up your files and play your music in any room of the house.
Yes, nerds do mock the "power of positive thinking," but this is one place where you need an idea of where you're going, just to decide what to focus on. (If your project is to start a podcast, you'll probably want to spend time on setting up your audio applications of choice, not on rebuilding the kernel. If you're building a home surveillance server on a cheap, obsolete single-board computer, you'll want to tweak the low-level stuff to save precious memory.) One working home page or "hello world" program is more progress than a garage full of half-done Linux projects.
If your goal is just not running your old OS, you don't need Linux. Go for a bike ride or play Frisbee. It's easier on your carpal tunnels. This isn't to say that doing the same stuff that you did on your old computer, only without the nasty End-User License Agreement, is a bad goal. Just express it in a positive way.
2. Who are you going to ask when you have questions? If you're not actually paying for Linux support, this is probably going to be either a web board such as LinuxQuestions.org, or a user group mailing list.
If there is an active local Linux User Group in your area, get on that group's list. Sometimes there will be in-person events such as installfests and hackathons where you can bring your Linux projects. Otherwise, the SVLUG Mailing List and the CABAL "conspire" list are both good choices.
Do you like web boards or mailing lists better? Pick a forum that you're comfortable using and can check regularly. Explore your options and find a helpful source of support.
You probably won't get free help by sending individual mail to Linux people. See "How To Ask Questions the Smart Way" for some essential rules on how to get a useful answer from an online forum. (The email addresses in "How to Ask Questions the Smart Way" are not places to send your questions. If you aren't already an experienced user of Linux or technical mailing lists, read the whole thing before you start asking questions.)
3. Computer with Linux on it. This should be the easy part. If possible, get Linux first, then try it on the computers you're intersted in buying. But which Linux? This is why you get the source of support first, then the distribution. This system for picking a distribution is based on some advice from Jesus -- Matthew 7:15-20.
Get a copy of the archives for the mailing list or other forum on which you plan to ask for help.
Select the most helpful posts. Make a list of the people who posted them.
Go through your list of helpful people and figure out what they run.
You don't want the distribution that someone can persuade you to run. You want the distribution that people will help you with.
New person on mailing list: "Hey! I just installed WeirdAss Linux 9.0, which nobody else on this list runs! How do I see what version of PHP is on there?"
Everyone else on list: [silence]
Yes, there's plenty of Linux information available on the net, and it's enough to get you started, but a good intro book can be a real time saver. If your distribution of choice has a Mark G Sobell book about it, save your lunch money and buy the book.
Hardware can be tricky, but Google Is Your Friend(tm). Search for people who already have the hardware you want, and know it works. (Linux on Laptops is a good resource.) Then don't get impatient and buy something that's "almost the same" because the store doesn't have the known working part. (Whatever you do, don't waste time on hardware with "binary-only," "closed-source," or "proprietary" drivers. Long story, but they're a time-suck.) Find a happy Linux user on the web before you buy hardware, and save yourself a lot of grief. Writing drivers for unsupported stuff is a great project idea, but probably not a good first one.
Questions about Linux? Ask your Linux user group. Comments or suggestions on this document? Mail me.