Hi Ridma,
Thanks for reaching out! First I recommend familiarizing yourself with Bazel: download a released binary (or the source code and then bootstrap it yourself), build some of the example projects -- we have a Getting Started guide [1]. This way you'll learn about Bazel from a user's perspective.
Then I recommend reading about our extensibility language [2], looking at the examples shown in the Cookbook [3], and maybe even looking at some .bzl files, perhaps at protobuf.bzl [4]. This way you'll learn how language-specific rules look like, what they do, how they work. Once you reach this point, the GSOC project description [5] will also appear clearer.
Finally you could try writing a language-specific rule yourself. Let's say for example you pick C#, so maybe a simple cs_binary rule would be a good start. Start simple, improve on it gradually. Also, please observe our contribution guide [6].
Cheers,
Laszlo