Definition of Software
Software refers to something intangible. Although often of great value, software can't be picked up or weighed. However, software is required to make hardware do anything. Likewise, software needs hardware to be of any value.
Typical examples of software include the web browser you're using to read this page, the web hosting software used to show you this page, and the operating system (e.g. Windows, Mac) that you interact with whenever you use your computer. Software is also part of many other things you use on a daily basis such as your TV, cellphone, car, and possibly even appliances like your refrigerator. In the future, it's like that anything mechanical will also include some software.
Software can be written in many programming languages. For the most part, these languages contain similar elements like loops and logical statements that determine the output given certain input. Software is also deterministic i.e. for any given set of inputs the output will always be the same.
Those who haven't written software are often unaware of the complexities involved in writing bug-free software. For comparison, a car has tens of thousands of moving parts each of which can fail and cause problems. However, software is typically made of up millions of lines of code and even a tiny flaw in just one line can result in unexpected results. Reviewing and maintaining all of that code is a daunting task which is why there are often spectacular programming bugs found years after a program is released to the public.