writing software book idea software = solving a problem => marketing => writing programming language => writing clarity is key