What are the best skills to develop for a college graduate?? Should one spend hours/days trying to solve problems on codechef or topcoder or contribute code to open source organizations?
My personal experience says solving problems teaches you how to make optimal code and learn new programming techniques (which someone else has researched and made available) to solve problems, whereas contributing to open source teaches you how to organize code (so others can work on it), use coding conventions and make "real" use of what you have learnt so far, blah blah!!
Also another thing to note is that many companies are hiring today based on one's problem solving skills (Is this something I should worry about?)
P.S. I have done little of online problem solving and little of code contribution (via GSoC), but left confused what I should continue doing (as doing both simultaneously isn't easy). I am in final year of my CS degree and I want to make myself good enough before I get employed.