Thomas Betts' paper on the need for liberal arts to complement STEM education is a great perspective on how to build amazing products and produce great outcomes for everyone.
Come watch Thomas Betts (principal engineer for IHS Markit, editor for infoq.com and educated as a mechanical engineer) talk about this topic while you eat pizza and drink some beer. :-)
The education of most software engineers involves a heavy focus on STEM subjects: science, technology, engineering, and math. Other subjects, especially those under the umbrella of liberal arts, are often thought of as less important, or just an annoying requirement to graduate. However, much of what helps you become a great software engineer, and create outstanding software that people want to use, comes from outside the world of STEM. This might sound like great advice to give to a freshman computer science student, but it's equally helpful for the 20-year software veteran.
Computer science is the study of algorithms, data structures, and operating systems. Programming is the practical implementation of computer science. Software engineering is the use of software to solve problems. The ability to effectively analyze a problem, evaluate different options, and engineer a solution requires the skills taught in the liberal arts.