If I were you, I`d try to create a TCP based chat application using asynchronous sockets in C#. After that, I would learn a bit about what packets are, and read up a bit on encryption. After these steps, you`re pretty much ready to create your own first source! Trust me, it will suck horribly, but it will be a great learning experience.