Computers are made up of both hardware and software. The hardware includes electronic components like processors, graphics cards, memory, and drives. Software consists of computer programs which are sequences of instructions that can be understood by the hardware. There are different generations of programming languages from low-level machine code to high-level languages, with each new generation providing a higher level of abstraction. Computer programs are translated from their original code into executable machine code using language translators like assemblers and compilers.