Low level infrastructure software (aka system programming) is what makes up the foundation of operating systems and development platforms. This type of software requires machine code that runs directly on the CPU and can effectively communicate directly with the various hardware components. The end users of software built using system programming is mostly technical people and other programmers.
The vast majority of developers working today write applicaiton code. Application programming is the practice of building software that runs on an operating system or runtime platform. Microsoft Windows, Android, iOS and web browsers are examples of platforms that applications are built on. Application code doesn’t interface directly with hardware, instead it relies upon the OS / platform to provide all the required services. Applications are built for end users and business people who may possess little if any technical knowledge.