In a computer context, 'memory' refers to physical devices used to store data and programs either temporarily or permanently so they can be retrieved and used when required. Every application, program and document takes up space in memory so a programmer must always be aware of memory management or else risk bugs, poor performance and vulnerabilities to malicious software and viruses.
There are a many different kinds of memory. First, it can be divided into primary and secondary memory. Primary memory is faster to access so information that is needed often for common processes is stored there. Secondary memory is the physical memory that has a higher capacity for storage but this comes with the trade-off of being slower. Primary memory stores on the secondary memory system is called virtual memory. Primary memory and CPU cache memory, which is another type of fast-access memory, are examples of what we call 'volatile memory'. Volatile memory is itself a type of semiconductor memory. Examples of non-volatile memory includes flash memory and ROM/PROM/EPROM/EEPROM memory. Volatile and non-volatile memories are the main types of semiconductor memory which operate on a system of memory cells or bistable flip-flops, each of which stores a single bit.
The size-to-storage capabilities of memory has taken some drastic leaps since the first implementation of a computer. 1940s technology could barely handle more than a few bytes at a time. The ENIAC needed thousands of octal-base radio vacuum tubes to do simple calculations of 20 numbers - truly laughable in today's world where it a memory card holding every photo you've ever taken in your life is small enough to be swallowed.