In our modern age, computers are absolutely essential to the day-to-day functions of human society. In the 1970's, pioneers Bill Gates and Steve Jobs recognized the world-altering potential that software programming and computer development held and today we are living in their world. While we hear words like "hardware" and "software" thrown around, only a few people truly understand just what they mean and a better understanding of computing concepts serves to open a lot of opportunities. To understand the relationship of software and hardware, one could see it as analogous to a body/soul dichotomy. Hardware is like the physical body of any organism, as it contains all the tangible working parts, i.e. hardware, while the software contains the programming and instructions to make that hardware function, much like cognition and the mind. That is a very rudimentary idea of what software is, and to go deeper one must look at further subcategories of software.
Software is generally categorized according to its function, so for example, some software only focuses on running the interface of a personal computer and its basic functions like reading discs and presenting the GUI (Graphical User Interface). That kind of software is defined as an "operating system" and common examples are Windows, Apple OS and Linux. Other software provides more specialized uses like accounting programs, word processors and games. That kind of software is usually broadly defined as applications and are usually "third-party" software, as it was not made by the company that produced the computer itself.
More recently, smartphones have redefined the language of software and shortened "applications" to apps, but the same principles remain. If you have an Android phone, Google has developed the operating system software, called Android, while another company like Samsung or Motorola built the phone itself, which is the hardware. An interesting interrelation is that because of the advanced structure of certain software, more advanced hardware is required in order to run it. Teenage boys everywhere have cried in agony when they couldn't play their new video game because their aged personal computer lacked an adequate video card.