Many universities across the world offer degrees that teach students the basics of computer science theory and the applications of computer programming. Additionally, the prevalence of online resources and courses makes it possible for many people to self-learn the more practical aspects of computer science (such as coding, video game development, and app design).