No matter how many people learn it, and how many online schools open up for it, working on software is hard. Whether it's a mobile app, or a website, or a spacecraft rocketing across the planet, they all need software to tell it what to do next and to make sure it does it efficiently and safely. That's not always the case however. Sometimes this software tells a satellite to do something wrong, millions of times per second. Sometimes these bugs are just an inconvenience but other times they can cost hundreds of millions of dollars.