I have been programming for about 4-5 years, and I don't understand VCS(version control systems) Can someone explain to me what it is. Also it would help to explain the popular types(mercurial, git, cvs, rvs) and how they work. Also what is a CI(continous integration) server, and how could they help me collaborate?
4-5 years and you haven't touched a VCS yet? :O You need to get on that, like right now! I'm a huge advocate of git, but I've only used that and svn. Git is pretty popular and powerful, though it feels more *nix oriented. It is available on Windows, though. There's even some nice GUIs for it.
As to what a VCS is, well it's just what it sounds like. It controls versions of your source code. I'm not entirely sure how to explain it any more than that. It's just something you need to use and you'll immediately see the advantage of it. Once you start, you won't ever write code again without it.
Continuous integration is the practice of having all collaborators integrate their work into a central server frequently. There is then some automated build and testing process which will make sure the code remains stable, and if something does break, the developers will know immediately. This basically lets developers integrate small bits of changes at a time, which is much simpler than a bunch of developers trying to integrate a bunch of a major changes all at once.
I've been programming since I was 13 and only touched VCS once or twice.
Had to check my stats. I joined github November 2011 and in that time I added one project placeholder for a competition June 2012 and updated the README file for it. Not touched it since. I just haven't found any reason to put it to use.