A hashcode is the result of a computation, based on input. A simple hash might be to add up the ascii values of the characters in a
string. The idea is that you want different inputs to give you different hashcodes - or at least most of them to, since you have to have a finite number of possible results.
You use this to quickly find stuff, or to check if something has already been stored. The wikipedia has a good article on
hash_codes.
There are only two hard things in computer science: cache invalidation, naming things, and off-by-one errors