= Writing good programs = Here's the actual presentation: [[attachment:how_to_program.ppt]] Here's some notes: == Think! == * Learning to think about your own process The three chief virtues of a programmer are: Laziness, Impatience and Hubris - Larry Wall - http://www.netropolis.org/hash/perl/virtue.html == Owning your code == * Fixing broken windows * Signing it * Deliberate coding and coding by coincidence * Documentation == Orthogonality == * Breaking code into parts and making them separable one from the other == Learning your tools == * Your text editor * Your language * Learning several languages * Differences between languages (high-level, low level) == Assume you will make mistakes == * Make code tests * Use code repositories == Talk to the duck == * Describe the problem to someone or something to aid thinking