I'm a Computer Engineering(Freshman) under University of Pune.
We'll be introduced to "Data Structures using C" next semester. I want to develop Linux & contribute to Ubuntu Development. Luanchpad projects & Google SOC are my priorities right now.I hope to complete atleast one personel project, contribute to Ubuntu or other Launchpad projects, participate in google SOC by the end of my 4 year Degree & other open Source projects.

I want to start small personnel projects right after my next term.

What should i learn along with Data Structures(C) in my next semester??
What Languages are important??
How much will I be able to develop only knowing my University Course for Data Structures?
Where to get E-Books from??
Any other tips??