Tips for Independent Learning?
Austin asks: "As an undergraduate seeking a degree in Computer Science, I am very interested in expanding my programming skills and tools. Much of the platform specific knowledge, such as the usage of unique languages and APIs such as .NET and Cocoa, are rarely taught on an academic level, and independent projects are looking very appealing as a way to broaden my abilities. I find it difficult to maintain motivation developing software that there are already excellent alternatives to, and contributing to mainstream open source projects is an intimidating endeavor due to their size and complexity. What have many Slashdot readers done to gain experience with tools not taught inside the classroom?"
There are thousands of them. Find one that uses the APIs/Languages/etc. that you are interested in and then get it source code. Spend time perusing that for a while. Next, look at the open bug list for the project and see if you can delve in an sumbit a patch.
You will increase your skills and you will be contributing to a project that other will benefit from. Every one wins.
magazines, not books
Although it is worth noting that books can be an excellent initial source of information when learning many technologies, particularly the larger technologies.
Books tend to give broader coverage of the area you are interested in.
Once you have gained some generally knowledge and understanding in an area, magazines are great for drilling into specialised areas.