HXA7241 (logo)

a library reading-room

BIBLIOGRAPHY

a select bibliography of recommended reads

software

Backing up all the specific language manuals etc. should be a deeper and more general foundation, such as these.

cover Guide to the Software Engineering Body of Knowledge – IEEE Computer Society
What are the things to know in software engineering? This gives a summarising enumeration of all the areas and subjects.
cover The Unified Software Development Process – Jacobson
The benchmark for software development processes. One need not follow it, but one cannot but gain a good grounding from this refined structuring of high-level development knowledge.
cover Extreme Programming Explained – Beck
Gives a rationale for agile development, and a coherent process and set of practices for doing it. And not in conflict with the Unified Process.
cover Rapid Development – McConnell
A collection of practical guides for running software projects, without specifying a process.
cover Object Oriented Software Construction – Meyer
Should be the cornerstone of OO software education. The closest thing to a theoretical foundation, and much practical guidance too.
cover Object Oriented Design Heuristics – Riel
Describes a set of good properties for OO software structure. Not as well known as Refactoring, but could be a basis for it.
cover Design Patterns – Gamma, Helm, Johnson, Vlissides
Adds a higher level expression of design to OO, by explaining its meaning and describing many examples.
cover Refactoring – Fowler
Formalises software maintenance by defining its sub-process and describing a set of low-level activities.
cover UML Distilled – Fowler
Perhaps UML has diminished in importance, but this book is still a neat, short exposition of the essentials.
cover Programming Pearls – Bentley
Through the clever consideration of a set of small problems, it brings you closer to the heart of programming. In today's world of 'enterprise development frameworks', it seems almost like a lost art.
cover Code Complete – McConnell
Everything you need to know about actually writing the code.

maths

To do graphics, some particular maths is needed. All with a practical, numerical leaning.

cover Engineering Mathematics – Croft, Davison, Hargreaves
Straightforward comprehensive introduction or refresher on basic practical maths. Preferable to others because it covers some useful extra material like vector calculus and discrete signals.
cover Mathematical Techniques – Jordan, Smith
Alternative to 'Engineering Mathematics', covering a very similar range of material. And having a second view is probably a good thing.
cover Numerical Recipes In C – Press, Teukolsky, Vetterling, Flannery
A good broad education on numerical maths, partly because everything is backed by code. Any particular algorithm is not always the best however.
cover Linear Algebra Through Geometry – Banchoff, Wermer
Linear algebra is the core maths for graphics, so a basic to moderate guide like this is needed. All the useful stuff is made clear.
cover Computational Geometry In C – O'Rourke
Not so central to graphics, but a well-written exposition of an interesting field. Algorithmically oriented with plenty of code.
cover Ripples In Mathematics – Jensen
Fourier transform? —that's old, awkward stuff: Wavelets are the real tool. This is the best practical information on them, while engineering maths books don't yet include them.
cover Wavelets For Computer Graphics – Stollnitz, DeRose, Salesin
More wavelets, for a particular domain application. Not entirely as clear as possible though.

graphics

For writing high-end renderers, mainly.

cover Principles Of Digital Image Synthesis – Glassner
Broad theoretical education on graphics. Builds the subject from three parts: perception, physics, and signal processing. There is much to learn from this magnum opus.
cover Physically Based Rendering – Pharr, Humphreys
Righteously focussed on real code for a whole renderer.
cover Realistic Image Synthesis Using Photon Mapping – Jensen
Concise practical and theoretical exposition of the foremost global illumination simulation technique. Begins with a quick, more general introduction.
cover Computer Graphics, Principles And Practice – Foley, Van Dam, Feiner, Hughes
The relevant parts contain some of the best, most solid explanations of the subject. But about half the book is out-dated or irrelevant.
logo Siggraph Conference Proceedings – ACM Siggraph
Most interesting new articles are published here.
cover Jim Blinns Corner: A Trip Down The Graphics Pipeline – Blinn
A collection of practitioner's techniques, observations and diversions.
cover Jim Blinns Corner: Dirty Pixels – Blinn
A collection of practitioner's techniques, observations and diversions.

nature

Living things are natural digital systems. But how do they work?

cover The Triumph Of The Embryo – Wolpert
Short semi-technical introduction to developmental biology. Better than more advanced texts because its purview is the better understood abstractions, without the undigested mass of details of current research.
cover Principles Of Development – Wolpert
More extensive detailed coverage. But it consequently becomes more obscure.
cover Genomes – Brown
Undergrad level genetics. Suitable for the software geek wanting lots of info at the 'machine-code' level.
cover On Growth And Form – Thompson
A detailed consideration of the physical substrate and its rich contribution to the development of living things.
cover The Self Made Tapestry – Ball
An introductory visual and textual survey of structures formed by natural physical processes.

thinking

cover Serious Creativity – De Bono
A collection of De Bono's techniques for deliberate productive thinking.
cover How To Solve It – Polya
Some ways to think-through problems.