I just finished the 2nd year of my B. Tech in Electrical & Electronics Engineering. I am, however, more inclined to work in the software industry.
The thing is, that there will be big software companies ( the likes of Microsoft, Amazon, Yahoo) coming to my university to offer summer internships to students and I want to be prepared for that.
I have good knowledge of C++ ( upto Classes ), C ( just finished the Dennis M. Ritchie book), average knowledge of Data Structures and Algorithms.
I have exactly 75 days in front of me (Summer Vacations) and I have planned to do the following things.
1. Learn Java ( Expecting to do upto Multithreading and a little more hopefully- is it enough, or is more required/worth doing in the time period I have?)
2. Study Data Structures once again, hoping to make it to an advanced level.
3. Learn C++ thoroughly (upto Virtual functions I mean)
As far as my programming skills are concerned, I just started solving problems on SPOJ, and I find out that I can tackle problems solved by 35% + users. However, after some better understanding of Graphs and other advanced algorthms, I am confident I can do better.