Computer programming involves writing code using programming languages to provide digital instructions for computers to complete tasks. There are two main categories of programs: application programs which perform direct functions for users like email and games, and system programs which run operating systems and servers. Computer systems have both hardware components like CPUs and memory as well as software programs and data. Basic programming concepts include algorithms, variables to store data, and control structures to direct program flow.