"Hash" is really a broad term with different formal meanings in different contexts, so there's not a single perfect answer to your question. But I'll try. You'll get more familiar with it throughout your career as you see more examples.
Generally "hash" in CS refers to a function $f$, such as a "hash function", that takes as input objects and outputs a string or number. The input objects are usually structured things we know and love such as strings, integers, or bigger "objects". The output is usually some useful, small, but relatively unique string or number for that input. The noun "hash" often refers to this output. The verb "hash" often means "apply a hash function".
Generally this hash function $f$ has some common properties. One is a sort of randomness or "spreading-out". If I want to hash objects down into 100 buckets (so the output of my hash function is a number from 0-99), then I am usually hoping that about 1/100 objects land in bucket 0, about 1/100 land in bucket 1, and so on. Sometimes this is taken even farther, for instance, in cryptography I may want it to be computationally difficult to find two different inputs that map to the same output. Another is compression. I often want to hash arbitrarily-large inputs down into a constant-size output or fixed number of buckets. A final one is determinism. If you use the same hash function on the same object twice, you want to get the same answer. This may seem to conflict with randomness above, but the solution is to sometimes choose your hash function randomly, but then re-use it over and over.
One common application is in data structures such as a hash table, which are a way to implement dictionaries. Here, you allocate some memory, say, 100 "buckets"; then, when asked to store an (key, value) pair in the dictionary, you hash the key into a number 0-99, and store the pair in the corresponding bucket in memory. The, when you are asked to look up a key, you hash the key into a number 0-99 with the same hash function and check that bucket to see if that key is in there. If so, you return its value.
Note that you could also implement dictionaries in other ways, such as with a binary search tree (if your objects are comparable).
Another practical application is checksums, which are ways to check that two files are the same (for example, the file was not corrupted from its previous version). Because hash functions are very unlikely to map two inputs to the same output, you compute and store a hash of the first file, usually represented as a string. This hash is very small, maybe only a few dozen ascii characters. Then, when you get the second file, you hash that and check that the output is the same. If so, almost certainly it is the exact same file byte-for-byte.