programming literature topic home

Though most programming resources are now online, it still makes sense to read books and magazines about it. Editors assemble related topics into an information-packed special magazine issue, authors help you digest complex matters by slicing and building up chapter after chapter. But maybe it's just because you experience a regular read in a quite, comfortable place differently from a quick, directed web search.

I've kept up with the rapid progress through these works:

Steve Freeman, Nat Pryce, Growing Object-Oriented Software, Guided by Tests; developing a demo application TDD-style with Hamcrest matchers from the authors of the jMock framework; explains the importance of clean, expressive tests and shows how to actually achieve this (and with it, good software design); Pearson Education, 2010

c't Linux: Raspberry Pi and other ARM boards, installation on modern hardware, esp. current notebooks, DBUS; Verlag Heinz Heise, 2014

Neil Bradley, The XML companion; Third Edition; a full description of XML, DTDs vs. Schema, and how to model various documents, including hyperlinks and surrounding standards like XInclude, XLink, XPointer, XPath, XSLT; parsing via SAX and DOM, historical background (with SGML) and comparison with HTML and CSS; Addison-Wesley, 2002

iX Developer JavaScript heute; asm.js, TypeScript, CoffeeScript, Dart - alternatives?; MVVM with Knockout.js, Backbone,js, AngularJS, or Ember.js, Meteor and jQuery Mobile; Node.js, Grunt, Mocha; HTML 5 frontend development; Verlag Heinz Heise, 1/2014

Simson Garfinkel, PGP: Pretty Good Privacy; Though dated, the motivation for public key encryption is particularly relevant in times of Snowden's NSA leak; PGP's history also provides a great story about patents and export restrictions, plus all the technical details of key management, the web of trust, and encrypting and signing email messages; O'Reilly, 1995

C. Michael Pilato, Ben Collins-Sussman, Brian W. Fitzpatrick, Version Control with Subversion (Second Edition, Subversion 1.5); A comprehensive reference of the Subversion commands and specialties like branches, properties, locking, peg revisions; O'Reilly, 2008

Sonatype, Maven: The Definitive Guide; advantages of the project-centric, declarative Maven POM over predecessor build systems like Ant, examples introducing Maven followed by a comprehensive reference, rounded off with the advanced topics repository management and writing plugins; O'Reilly, 2008

c't Hardware Hacks: Arduino vs. Android (TV sticks) vs. Raspberry microcontroller boards; hacker spaces and open source; various small electronics projects; Verlag Heinz Heise, 2/2013

c't Linux: UEFI and new hardware, Ubuntu tips, Gaming on Linux; Verlag Heinz Heise, 2/2013

c't Android: high-end smart phones vs. tablets; Android security, backup, LTE; Verlag Heinz Heise, 1/2013

c't kompakt Programmieren: new web technologies Canvas, web workers, CSS animations; mobile apps; D vs. Smalltalk vs. Haskell; Verlag Heinz Heise, 3/2012

c't kompakt Linux: SSDs and other hardware; Linux Mint 13 as an alternative to Ubuntu; OwnCloud and AWS, UEFI book and Btrfs; Verlag Heinz Heise, 2/2012

Gerard Meszaros, xUnit Test Patterns Refactoring Test Code; Goals, Patterns and Smells for test automation with xUnit and mock frameworks; this tome gives names to and acknowledges the many good practices in test automation in design pattern form; Pearson Education, 2007

c't kompakt Linux: Ubuntu 11.10 and the new Unity desktop, server hardening, management and DIY-cloud; Verlag Heinz Heise, 1/2012

Miŝko Hevery, Guide: Writing Testable Code; Guide and set of lectures about designing for testability, split object creation from logic, avoid work in the constructor and global state, solve almost all problems via dependency injection; Google, 2011

c't kompakt Programmieren: Comparison of C#, C++, ObjC, Java, Scala, Perl, Python, Python 3, JavaScript and PHP; development tutorials for iOS, Windows Phone 7 and Android; Verlag Heinz Heise, 2/2011

c't praxis Android: Hardware, Tablets, a base set of useful apps, rooting and alternative firmware, Android architecture and app development; Verlag Heinz Heise, 1/2011

c't kompakt Linux Server-Praxis: RHEL 6; NFS, VPN and NAS, Virtualization with KVM vs. Xen, system management; Verlag Heinz Heise, 1/2011

iX Developer Programmieren heute: Mobile App-Entwicklung mit iOS, Android und Windows Phone; Visual Studio 2010 vs. Eclipse 4.0; moderne Sprachen (Clojure, Scala, Go, Groovy) und Trends (parallel computing, NoSQL, Saas, BPM); Verlag Heinz Heise, 12/2010

c't kompakt Linux: Ubuntu 10.04 LTS; system start and booting with Grub, Kernel vs. user mode and libc; proprietary drivers; Verlag Heinz Heise, 1/2010

c't kompakt Security; anti-virus, cybercrime; securing Windows, web, online payment, email and privacy; Verlag Heinz Heise, 2/2009

Web on Rails iX magazine special; comparison of web frameworks for ASP.Net, Java, PHP, Perl, Python, Ruby and Smalltalk; Ruby on Rails, Groovy on Grails and Adobe Flex vs. Silverlight tutorials; Verlag Heinz Heise, 2/2009

c't kompakt Linux Ubuntu 9.04; booting; special Linuxes; Verlag Heinz Heise, 4/2009

Andrew Oram and Greg Wilson (editors), Beautiful Code (Theory in Practice) - Leading programmers explain how they think and what they deem beautiful; O'Reilly, 2007

Michael Howard, David LeBlanc, John Viega, 19 Deadly Sins of Software Security - Programming flaws and how to fix them; McGraw-Hill, 2005

Mark Jason Dominus, Higher Order Perl - Transforming programs with programs: caching, memoization, recursion, iterators, streams, higher-order functions and currying, functional programming in conjunction with OO; Morgan Kaufmann, 2007

Programmieren mit .Net 2.0 iX magazine special, Verlag Heinz Heise, 1/2006

Bruce Eckel, Chuck Allison, Thinking in C++ Volume Two: Practical Programming, Prentice Hall, 2004

Douglas R. Hofstadter, Gödel, Escher, Bach; ein Endloses Geflochtenes Band: investigating a recurring theme of recursion, self-reference, contradiction and paradox, and how it applies to logic and programming; dtv, 1991

Dov Bulka, Java Performance and Scalability Volume 1, Addison-Wesley, 2000

Bruce Eckel, Thinking in Java Second Edition: The definitive introduction to object-oriented programming, Prentice Hall, 2000

Bruce Eckel, Thinking in C++ Second Edition: Volume One: Introduction to Standard C++, Prentice Hall, 2000

Andrew Koenig, Barbara Moo; Ruminations on C++: a decade of programming insight and experience, AT&T, 1997

Teach Yourself C Programming in 21 Days, SAMS Publishing
Teach Yourself C++ Programming in 21 Days, SAMS Publishing
Teach Yourself Visual C++ 6 Programming in 21 Days, SAMS Publishing

Aho, Kernighan, Weinberger, The AWK Programming Language, Addison-Wesley, 1988
Randal L. Schwartz, Learning Perl (4.0), O'Reilly

Roger Penrose, Computerdenken: Die Debatte um Künstliche Intelligenz, Bewußtsein und die Gesetze der Physik; Exploring algorithms, fractal geometry, Turing machines, quantum physics and neuronal networks to evaluate the future of AI; Spektrum der Wissenschaft, 1991

Hilger Kruse, Roland Mangold, Bernhard Mechler, Oliver Penger, Programmierung Neuronaler Netze, eine Turbo Pascal Toolbox; Learning different neuronal network models (interactive, perceptron, backpropagation, Kohonen, Hopfield, Boltzmann) based on libraries and sample applications; Addison-Wesley, 1991

Das große Buch zu Turbo Pascal 6.0: Pascal class libraries, BGI graphics programming, object-oriented GUI programming with TurboVision, DATA Becker, 1991