Just pick a popular distro, download and install on your home PC. Make it work with the internet, your printer, digital camera, home network, and anything else you can throw at it. Make your distro function better than your windows box and you will have a good start. Once you figure out what sed and awk do then dig into the man pages. on programing I only know about interpreted languages like perl and php. Some one else might chime in on using C for driver programing.