Frank Schacherer Homepage
home technology bibliography

Coding

AuthorTitleRankedISBN
Jon Bentley Programming pearls ***** 0201103311
A real pearl. This is a pleasure to read! It teaches some basic concepts of coding, like back-of-the-envelope calculations, the use of data structures to get elegant code and some useful algorithmic tricks (heapsort, quicksort, binary search, hashing). It's a bit old already, but the essence of what he is saying is still true in the age of OO programming.
Brian W. Kernighan and Rob Pike The Practice of Programming ***** 020161586X
An excellent introduction to the various aspects of programming, from style and interface design to debugging, testing, porting and little languages. When you only buy one book about an overview on actual programming - buy this one. It's only about 250 pages long, and covers a lot of terrain, with much sound advice, further-leading suggested reading and a lot of example code. Of course you can only learn by doing, so there are exercises.
Steve McConnell Code Complete **** 1556154844
This is the Elder and Big Brother of 'The practice of programming'.
Bruce Eckel Thinking in Java **** 0136597238
It's the best book about Java. Period.
Randal L. Schwartz and Tom Christiansen Learning Perl **** 1565922840
('Llama Book') This is the best introduction into hands-on programming for an absolute beginner I've seen. Amazing.
Scott Guelich and Shishir Gundavaram and Gunther Birznieks CGI Programming with Perl **** 1565924193
This book is a gem on CGI programming and perl. It's hard to believe, but this one is even better than the other perl books from O'Reilly I've read. It covers everything you need to know: CGI proper, CGI.pm, templates, security, database backends, maintaining state, creating graphics, debugging CGI apps and more. It even touches neighboring areas like HTTP, JavaScript, indexing and sending mail. This is the book for tackling the practical, real-world CGI problems you're going to face. Make sure you get the second edition. Five stars.
Jr. Frederic P. Brooks The Mythical Man Month **** 0201835959
This is the classical text about software project management with some annotations and the ``No Silver Bullet'' Essay added twenty years later. There seems to be an unspoken law stating that this must be cited in any other book about software projects or any computer book at all, with the following sentence: ``The programmer at wit's end for lack of space can often do best by disentangeling himself from his code, rearing back, and contemplating his data. Representation is the essence of programming.'' But there is much more practical wisdom in it, and it's half-entertaining to read, too.
Steve Krug Don't Make Me Think **** 0321344758
A blissfully well designed book about web interface design, slim, with a bucketload of useful tips, and entertaining to boot. Covers how to set up a cheap usability testing rig, too.
Harold Abelson and Gerald Jay Sussman and Julie Sussman Structure And Analysis Of Computer Programs **** 0262011530
('Wizard Book') Uses LISP (a functional programming language) to introduce basic concepts of coding. It is not an easy read.
Andreas Heuer Objektorientierte Datenbanken *** 3893193154
William H. Press and Saul A. Teukolsky and William T. Vetterling and Brian P. Flannery Numerical Recipes in C++ : The Art of Scientific Computing *** 0521750334
This is a wonderful book to look up ready-to-use algorithms on a wide range of numerical problems. Also, the mathematical introductions are understandable, to the point and written with style. I really like this book, although I never read it cover to cover. It is a classic, too. There are many versions for different computer languages, but the language is not important actually. They could just as well provide pseudocode.
Grady Booch Object-Oriented Analysis and design *** 0805353402
This is a standard work for Object Oriented Analysis and Design (OOA/OOD), also touching the iterative development process. Too much hype, too many buzzwords, too much object-religious statements - the getting-a-better-prgrammer-per-page-of-text ratio is rather low.
Robert Sedgewick Algorithms in C *** 0201514257
The classic overview on classic algorithms.
Alfred V. Aho and Jeffrey Ullman and Ravi Sethi Compilers: principles, techniques and tools *** 0201100886
('Dragon Book') This is a GREAT introduction to compilers, lexers, parsers etc. Its a bit older, but if you are not Bjarne Stoustroup, it'll probably be all you'll ever need. Even the paper it's printed on smells good!
Andrew S. Tanenbaum Computer Networks *** 0133499456
A thorough and highly entertaining introduction to the basics of the field, from the physical layer up through the network protocols.
Alan Cooper About Face: The essentials of user interface design *** 1568843224
A smattering of smart observations about user interfaces by the father of Visual Basic. If it was only half as big, it would be great. Coopers picture asking for feedback is pretty cool.
Andrew Patzer and others Professional Java Server Programming *** 1861002777
Alex Martelli and David Ascher (eds.) Python Cookbook *** 0596001673
Many people say this is the best Python book. It is the only book I have needed in addition to the online documentation so far, and it is quite good if you want to get a feel for the idioms and idiosyncrasies of that little language. I haven't read it cover to cover, but use it to look up stuff. Still, the recipies are entertaining enough so that you could read it like a normal book.
Jay Yellen and Jonathan L. Gross Graph Theory & Its Applications *** 0849339820
What's nice about this book is that they give you all the term definitions, and a lot of drawings to boot, so you can visually understand what they are talking about. This makes it usually very easy to grasp the point. Much more so, in my opinion at least, than reading page after page of math formulas. There's also the algorithms, even though you can get most of those from an aglorithm book, if you already have one.
William J. Brown and Raphael C. Malveau and Hays W. McCormick III and Thomas J. Mowbray Anti Patterns: Refactoring Software, Architectures and Projects in Crisis *** 0471197130
This is a book about all the awful things you should shun, and giving them entertaining names, too: 'lava code' (old crud that accumulated in your classes), 'The blob' (putting the whole program old-school-style into one big class) etc. - its actually useful.
Edward Yourdon Death March *** 0130146595
A. Kemper and A. Eickler Datenbanksysteme *** 3468250531
Thomas H. Cormen and Charles E. Leiserson and Ronald L. Rivest and Clifford Stein Introduction to Algorithms *** 0262032937
A standard algorithm textbook, covering all the bases. I would have liked Sedgewick's new edition better, but I make a lot of use of graphn algorithms, and they are published in a separate volume that was not out at the time in that edition. This one is solid, although there too many proofs and excercices taking up space for my taste.
Clinton Wong Web Client Programming with Perl *** 156592214X
A nice little book that teaches you how to automate Web-Page retrieval and processing with Perls LWP. Also has a chapter on using pTk. I use a syscall to GNU's wget to do stuff like this, its faster to put together for most small tasks. A bit dated.
Steven Feuerstein and Bill Pribyl Oracle PL/SQL Programming *** 1565923359
Allegedly the best introduction to PL/SQL, this book is a mix of explaining the language features of that stone-age language and programming style 101. Probably PL/SQL is still the best if you want to suck out and work with data from your Oracle db in 2001. It's just such a mess syntactically and there's a bazillion exceptions to when you can use stuff and when you can't. The explanation of the language features is ok, especially hints when to use which feature, but I could have done without the programming style elaborations, which are better and more thoroughly treated in 'The practice of Programming' and 'Code complete'.
Jeffrey E. F. Friedl Regular Exoressions *** 3930673622
A thorough introduction to regular expressions, and the concepts behind them.
George Ploya How to solve it *** 0140124993
A classic book on mathematical problem solving. Reputedly, they hand out a copy to each new progammer at Microsoft Corp. It basically consist of a list of questions to ask yourself, and detailed dictionary that explains each concept and each question. Good tools for problem solving thus are: analogy, generalisation and specialisation. Examining the data, the condition, and the unknown. Decomposing and reconstructing, changing or dropping parts of the condition or data. Looking for symmetry. Examining definitions. Working backwards. Introduction of good notation, and of auxilliary elements. Induction and indirect proof or reductio ad absurdum. Checking the result, trying to derive it differently. And preseverance. What you learn from this is, that you need experience from lots of work, so that you will be able to see analogies to something and remeber similar problems and how they could be attacked. A worthwile book.
Helmut Kopka LaTeX Einf├╝hrung *** 3827315573
Sriram Srinivasan Advanced Perl Programming *** 3897211076
('Panther Book'). Very nicely explaing some advanced topics of perl, like object-orientation and references, and the book to read to learn advanced perl after Learning Perl.
Donald E. Knuth The Art of Computer Programming : Fundamental Algorithms *** 0201896834
Nick Heinle Designing with JavaScript: Creating Dynamic Web Pages ** 1565923006
This book is a mind-numbing pain to read, because Heinle wrote it for the bleeding programming novice. The same source code is repeated as often as three times, and each line is separately commented. Still it is a good book, since it has some usable cookbook-style scripts and explores some quite advanced topics towards the end. And it's a practical book for practical use of JavaScript in a multi-browser, bugridden world, and this makes it good - Heinle knows what is the important stuff and doesn't bother you with 300 pages of DOM documentation for methods you'll never use, like all the other books I've seen.
James Rumbaugh and Ivar Jacobson and Grady Booch The Unified Modeling Language Reference Manual ** 020130998X
Ioannis G. Tollis and Giuseppe Di Battista and Peter Eades (Editor) and Roberto Tamassia Graph Drawing: Algorithms for the Visualization of Graphs ** 0133016153
Sabih H. Gerez Algorithms for VLSI Design Automation ** 0471984892
Rick F. van der Lans Introduction to SQL ** 0201624257
Larry Wall and Tom Christiansen and Randal L. Schwartz Programming Perl ** 3930673487
('Camel Book') This is the standard perl reference. Good for looking things up, but not good for learning. Most of what it says is also found in the perl online documentation, you don't really need it.
Erich Gamma and Richard Helm and Ralph Johnson und John Vlissides Design Patterns: Elements of reusable object-oriented software ** 0201633612
Cited in nearly every other book about object-oriented proramming, this is probably the book that will teach you more about the subject than any other book out there. Unfortunately its boring to read and a touch too academic for my taste. Still a must read.
Rainer Hellmich (eds.) Einf├╝hrung in intelligente Softwaretechniken ** 3827295467
A superficial introduction to finite automata, Petri nets, compilers, compiler-compilers, object-orientation, rule-based systems, expert systems, predicate logic, prolog, fuzzy logic, genetic algorithms, other heurisrtic optimizing methods and neuronal nets. All interesting areas, but the writing is only so-so.
R. G. G. Catell and Douglas K. Barry (eds.) The Object Database Standard: ODMG 2.0 * 1558604634