I'm a cargo cult programmer, help me
I've gotten some flak for saying this other places, but the <i>most</i> helpful thing that I've ever done to learn linux was installing gentoo.  Especially doing it without the official install CD (by using something like knoppix).<p>Start here: <a href="http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=1" rel="nofollow">http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=...</a><p>The thing that is different about installing gentoo vs centos or ubuntu is that instead of something that looks like this:<p><pre><code>     Would you like to format the disk (click yes or no)?
</code></pre>
You get a walkthrough of what fdisk is, then how to use it, then you use it to partition your disks.  Instead of selecting a filesystem from a dropdown, you make one with mke2fs.<p>I don't recall if Ubuntu even tells you what lilo or grub is.<p>The reason I like this is that it forces you to understand what is going on.  What is the /boot partition?  Why is that important?<p>Installing gentoo is going to force you to use tar, and wget.  It's going to force you to get comfortable on the command line.<p>It's also going to force you to understand what a kernel module is.  It's going to force you to understand things like: what chipset does my wireless card use?<p>It's hard.  And it takes forever.  And it probably won't work the first time.<p>To me, it's kindof a rite of passage, like telling a carpenter that he has to build his workbench before he is allowed to start working on anything else.  The workbench he makes might suck...hopefully this causes him to want to keep building new workbenches until he has one that is perfect.