- locate is dumb, but quick and fuss free
- find is cleverer, can do tricks that locate couldn't even think of, but has a, err, learning curve, and can be more fussy; is also slow if you are using it on a big disk volume
The other basic point that I'd make, that isn't covered in the article, is that locate often turns up all sorts of unanticipated results, and, if you are unhappy with that, the solution is often to pipe the output through grep, to try to narrow it down on just what you want.
so, as an example, imagine you were searching for a file whose name you knew contained the string 'xyz'. You might try 'locate xyz', but if that turned up too much, you might think 'I know that it is under my username, so I'll try 'locate xyz | grep -i username', where 'username' is the name of the top level directory for all you user files (the '-i' for 'ignore case' is probably not necessary, in this particular case, but it gets to be a habit).
Find can do stuff with file metadata, which locate can't. So, for example, you can't get it to look at only files created within a certain date range, and similar clever tricks. You'll spend a little time with the man page to do it, though (or search for a tutorial, with your favourite search engine).