I can't believe how stupid I was for not using a version control software since I started programming, I was always lazy about reading about it, also the SVN Book scared me do death.
First of all you will need to understand what version control really means.
You can find a lot of information about version control, but sometimes they are too extensive or maybe too complicated for beginners, I don't know if when people write about it they want to scare the begginners so they can learn the hard way as I did, but anyway I'll try explain with my own words, how version control works.
Every developer who has written more than "hello world" applications have faced this kind of situation:
You have a software that says that 1 plus 1 is 2, and then you change some stuff and it start saying that 1 plus 1 is -1, well, you changed a lot of stuff and it was working yesterday, but today you can make it work anymore, and also you changed so many things that it is almost impossible to figure out what caused the problem, it would be nice to have something to say what was changed since yesterday so you can quickly get a clue about what went wrong and what modification added the bug.
Well, version control could do that for you...
Now another situation, what if you accidentally deleted a file by mistake? What are you going to do? Search for backups? What if your backup is one week old and you changed a lot of stuff since then, well I guess you will have to do everything again, good luck.
Even people who already use version control sometimes don't know about everything it can do and how it really works.
First of all you need to understand that version control just stores the differences of your files, it creates a database and after you add a file for the first time, from that point on, every time you modify it, it will store only the difference of the current file to the previous state, so you can get the original file any time you want, and also based on this, you can always keep track of every modification and restore a file to any state it once was.
Also, version control never removes anything, so even if you delete a file, you can always restore it from a previous point where it still existed.
Imagine a timeline, with version control you can just go back to a point in time when that file still existed and restore it, nice isn't it?
Most people start using version control after the first time they need to work with someone else in the same source code, because it's practically impossible to work in a team, modifying the same source code without version control.
Did you notice that I didn't talk about any advantages version control has when working in teams, well, Its because that is not the idea behind this post.
For some time now, I've been keeping a local subversion repository for all my personal application, even the useless ones, because every once in a while you need to do something in real life that you already did in some useless test application that you garbaged, if you have that piece of code in subversion, it's just a matter of minutes do find it, instead of losing some hours doing it again.
To learn how to create your own subversion repository, please read: How to use TortoiseSVN to create a local Subversion repository