The sync system and the revision control system are two different things addressing different needs.
As a programmer you want to have version control over your code. If you do not need to sync anything else, don't bother with syncing, as it will obviously not provide version control (which itself can be used to sync). In that case, you can simply go for version control. And if you need to sync other things too, you will want version control anyway. So I would strongly suggest that you set up some code versioning first, and then think about the sync. Code without version control is... quite wrong.
Now, if you use centralized version control, you'll have to choose a server. Then, you'll have to backup that server, because you'll only have the current version of the code on your other computer. That's why I would suggest that you look for a distributed version control. Git or Hg (Mercurial) will do. That way, you have the full code version history on both computers. If one dies, you lose nothing (of the code at least!).
BUT, if you want to sync ANYWAY, using a centralized version control system is not that bad since you can simply sync its files to your other computer. That way you have centralized + automatic backup. Still distributed will have more flexibility when you change your mind.
It's your call. My suggestion is a distributed system (Git or Hg... they're quite similar, and they have hashing systems which make their code bases harder to get corrupted), and then see what you do with the syncing if you really need it.