Can Great Programmers Be Taught? Dr. John Ousterhout
https://xeric.webex.com/xeric/j.php?MTID=mb1e59d183d09482aaa0c98f55a8ba0a8
People have been programming computers for more than 80 years, but there is little agreement on how to design software or even what a good design looks like. As a community, we talk a lot about tools and processes, but hardly at all about design. In this talk I will describe my recent work to identify and communicate a set of software design principles, including a new software design course at Stanford that is taught more like an English writing seminar than a traditional programming class, and a book on software design, which is based on the concepts from the class. I will also present a few of the design principles, such as "classes should be deep" and "define errors out of existence." [John Ousterhout](https://web.stanford.edu/~ouster/cgi-bin/home.php) is a professor of computer science at Stanford University. He is the author of [A Philosophy of Software Design](https://www.amazon.com/Philosophy-Software-Design-2nd/dp/173210221X).
