I also wanted to ask if a beginner who only knows the fundamentals of a programming language say C++ and nothing else, can he take part in GSoC or does he need to have some development skills in any domain to take part?
I'd say, you should gain some development skills first by building projects, participating in Hackathons, etc. Some familiarity with Linux/CLI is also recommended!