The way I do it is I create backups locally and then copy them to my NAS over ftp(with a password), instead of samba. Hopefully, that way any ransomeware would not be able to encrypt my nas as well, as it does not have any publicly accessible folders on the network.
The problem is that ransomware doesn't have to activate immediately, so you can end up with multiple copies throughout your backups before it takes effect. Hence, restoring from backups may not solve an infection.
Obviously you back up changes, but not to the same place as the old file. Backups should be append only. So that if you at some point you realize you've started to back up encrypted data you can just roll back to the point where the data wasn't encrypted.
My exact feelings, I did c++ in high school with some ancient borland c++ compiler. I always felt I don't know enough of c++ whenever I happen to go through some modern c++ source code. I just realized that is just the STL.
Well, the STL (actually, that term has fallen out of favour , its now The C++ Standard Library) is a core part of the language to the extent that I've often heard it said that if you don't use it, its not really C++ at all. For example, if you use char* for strings (instead of std::string), then you're not actually using STL. If you use arrays instead of containers (std::array, std::vector etc) then its not really C++. Stuff like loops (except I guess the C++11 foreach loops), conditionals, functions etc is all basically just C. The C++ is more than just adding classes - its also adding templates, new semantics (eg move semantics, initializers etc) and the Standard Library.
Having said that, you probably DO know more C++ than you realised :-)