I would like to know how would ideally prepare for participating in GSoc. I do understand that having a hand on experience in contributing to open source projects will definitely help a lot. But before I even start contributing,how would I know if I have enough fair workable amount of knowledge to start. Is knowledge up to the level of object orientation enough?? Do I need to know about very advanced data structures and algorithms to be able to write the code for the project?? Do I need to know about design patterns??
Please tell me all these as I don't know personally anyone who could able to guide me and I would be very grateful to anyone who'd let me know clearly in terms of how much knowledge of computer science I should have ,and in addition to that.what're the skills do I need.
Many thanks & looking forward to get your awesome suggestions :)