====== Collective Wisdom from the Experts ====== 97 Things Every Programmer Should Know http://shop.oreilly.com/product/9780596809492.do\\ https://www.gitbook.com/book/97-things-every-x-should-know/97-things-every-programmer-should-know/details 128 Feel the Flow 130 Distance_In_Nautical_Miles class 132 Prevent Errors DD/MM/YYYY 134 Professional Programmer Responsibility 136 Version Control (vs commented-out code) 138 Step Away from Keyboard (rethinking problem) 140 Read Code (oposite to write code) 142 read Wittgenstein, Heidegger W: Grenzen der sprachlichen Mitteilungsmöglichkeit H: Def. des Werkzeugs über seine Verwendung Aristoteles - Kategorien/Eigenschaften geeignet zur Modellierung (Ungenau) besser: Beispiele, Fallstudien, Prototypen 144 Reinvent the Wheel 152 SRP - Single Responsibility Principle (separate things that change for different reasons) 154 Start from Yes - edam/ame epiphany 160 testing - whitebox is neadless 162 testing - precise postconditions required 174 Ubuntu - Umuntu ngumuntu ngabantu 176 UNIX Tools 178 Right Agorithm & Data Structure for (i=0; i < strlen(s); i++); Reusing In Paramount Abominible 180 Verbose Logging err level log != info level log 182 Don't Repeat Yourself Write Everytime