Personal tools
User menu

Reading List

From Thalesians

Revision as of 19:45, 26 April 2015 by Saeed (Talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

A Thalesian Read

Reading List

I use this page to list the relevant books and periodicals. (Research papers and Internet resources are listed in Resources.) Also be sure to see our new book Trading Thalesians: What the ancient world can teach us about trading today (Palgrave Macmillan) as well!

I promise that I will never list a book that I haven't read myself. If you can recommend a good book, I will probably list it here (and mention you in acknowledgements), but I will list it only after I have read it.

The order in which I list the books is important. I list them in the order of (1) increasing specialisation, (2) increasing difficulty, then (3) decreasing relevance/significance. Thus you should know when to stop reading the list (it may no longer be relevant to your interests and tasks at hand after a certain point).

If you hover over a particular link, you will see a description of the item and a quote from Amazon.

Popular Literature

Risk and Uncertainty

  • Nassim Nicolas Taleb. The Black Swan: The Impact of Highly Improbable. Penguin Books, 2007.
    • Abstract
    What have the invention of the wheel, Pompeii, the Wall Street Crash, Harry Potter and the internet got in common?
    Why should you never run for a train or read a newspaper?
    What can Catherine the Great's lovers tell us about probability?
    Why are almost all forecasters con-artists?
    This book is all about Black Swans: the random events that underlie our lives, from bestsellers to world disasters. Their impact is huge; they're nearly impossible to predict; yet after they happen we always try to rationalize them. A rallying cry to ignore the "experts", The Black Swan shows us how to stop trying to predict everything and take advantage of uncertainty.
  • Nassim Nicolas Taleb. Fooled by Randomness: The Hidden Role of Chance in Life and in the Markets. Penguin Books, 2004.
    • Abstract
    Everyone wants to succeed in life. But what causes some of us to be more successful than others? Is it really down to skill and strategy — or something altogether more unpredictable?
    This book is the word-of-mouth sensation that will change the way you think about business and the world. It is all about luck: more precisely, how we perceive luck in our personal and professional experiences. Nowhere is this more obvious than in the markets — we hear an entrepreneur has "vision" or a trader is "talented", but all too often their performance is down to chance rather than skill. It is only because we fail to understand probability that we continue to believe events are non-random, finding reasons where none exist.
    This irreverent bestseller has been translated into eighteen languages and has shattered the illusions of people around the world by teaching them to recognize randomness. Now it can do the same for you.


This popular book will be of great interest to all practicing and aspiring quants.

By the time Emanuel Derman joined Goldman Sachs as a quant, he was an accomplished theoretical particle physicist, having worked and studied at the University of Cape Town, Columbia, Pennsylvania, Oxford, Rockefeller and the University of Colorado at Boulder. He also worked as a software developer at AT&T. His groundbreaking achievements in finance include the Black-Derman-Toy interest-rate model and his pioneering work on local volatility models and the volatility smile.

This book compares the worlds of science and finance. It is well-written, highly entertaining, and full of practical knowledge. Among other things, it describes what it's like to be a quant and how a quant thinks.

This is a short article by Mark Joshi, formerly Head of QuaRC at the Royal Bank of Scotland. I would recommend it to all aspiring quants. What does a quant do? What sorts of quant are there? What does a quant need to know? This article addresses these and many other practical questions.



If you are new to finance, these books will give you a general idea of the subject. It may be useful to browse through them before you progress to the more technical ones.


Hull is considered by many to be the "Bible" of mathematical finance. If you were to read a single book on the subject, this would be the one. It covers, among other things, the mechanics of futures and options markets; hedging strategies; swaps; interest rates; trading strategies; numerical procedures; binomial trees; Wiener processes and Itô's lemma; the Black-Scholes-Merton model; the Greek letters; volatility smiles; basic numerical procedures; VaR; credit risk; credit derivatives; exotic options; weather, energy, and insurance derivatives; martingales and measures; interest rate derivatives. The book is fairly balanced, offering both mathematical rigour and business knowledge. The numerous "business snapshots" are particularly entertaining.

The exercises in Hull's texts are straighforward and well worth attempting. You can use this solutions manual to check your answers.

As the authors put in the Preface, "notoriously, works of mathematical finance can be precise, and they can be comprehensible. Sadly, as Dr. Johnson might have put it, the ones which are precise are not necessarily comprehensible, and those comprehensible are not necessarily precise. But both are needed."

This book is both precise and comprehensible, if perhaps somewhat theoretical. Moreover, it's only about 200 pages long. The emphasis is on the martingale approach. The book proceeds from discrete (Chapter 2) to continuous processes (Chapter 3), to introduce the methods of pricing market securities (Chapter 4). It then looks at the interest rates (Chapter 5) and some bigger models (Chapter 6). There are few exercises. Appendix 3 contains detailed answers to all of them.

  • Steven E. Shreve. Stochastic Calculus for Finance: The Binomial Asset Pricing Model: v. 1 (Springer Finance). Springer Science + Business Media, 2005.
  • Steven E. Shreve. Stochastic Calculus for Finance: Continuous-time Models: v. 2 (Springer Finance): Continuous-time Models: v. 2 (Springer Finance). Springer Finance. Springer Science + Business Media, 2004.
    • Abstract
    Stochastic Calculus for Finance evolved from the first ten years of the Carnegie Mellon Professional Master's program in Computational Finance. The content of this book has been used successfully with students whose mathematics background consists of calculus and calculus-based probability. The text gives both precise statements of results, plausibility arguments, and even some proofs, but more importantly intuitive explanations developed and refined through classroom experience with this material provided. The book includes a self-contained treatment of the probability theory needed for stochastic calculus, including Brownian motion and its properties. Advanced topics include foreign exchange models, forward measures, and jump-diffusion processes.
    This book is being published in two volumes. The first volume presents the binomial asset pricing model primarily as a vehicle for introducing in a simple setting the concepts needed for the continuous-time theory in the second volume.
    Chapter summaries and detailed illustrations are included. Classroom-tested exercises conclude every chapter. Some of these extend the theory, and others are drawn from practical problems in quantitative finance.
    Advanced undergraduates and Master's-level students in mathematical finance and financial engineering will find this book useful.
    Steven E. Shreve is Co-Founder of the Carnegie Mellon MS Program in Computational Finance and winner of the Carnegie Mellon Doherty Prize for sustained contributions to education.
    • Review by Peter Carr (Head of Quantitative Research, Bloomberg LP, and Director of the NYU Master's Program in Mathematical Finance)
    Steve Shreve is well known in the quant community as an extraordinary researcher and a brilliant communicator. I have often referred to his infamous lecture notes as the definitive treatment on derivative security pricing and hedging. I am delighted that these notes have now graduated like so many of his students. Providing a review on the resulting book is a little like being asked to critique the Bible. It suffices to say that I think this is the first book that anyone should read as an entrée into this fascinating field.

High-Frequency Finance

  • Books Dacorogna.jpg
    Michael M. Dacorogna, Ramazan Gençay, Ulrich Müller, Richard B. Olsen, Olivier V. Pictet. An Introduction to High-Frequency Finance. Academic Press, 2001.
    • Abstract
    An Introduction to High-Frequency Finance is the first and only source of unified information about high-frequency data. It provides a framework for the analysis, modeling, and inference of high-frequency financial time series. With particular emphasis on foreign exchange markets, as well as currency, interest rate, and bond futures markets, this unified view of high-frequency time series methods investigates the price formation process and concludes by reviewing techniques for constructing systematic trading models for financial assets.
    • Review by Benoit B. Mandelbrot (Sterling Professor of Mathematical Sciences, Yale University)
    At long last, the study of financial prices is moving beyond convenient oversimplifications. For providing much of the best data and an indispensable bridge between the financial and academic communities, this flowering is deeply indebted to the group led by Dr. Richard Olsen.
    This group and its alumni have also analyzed their own data. That work, which I often quote, has now been collected and extended in a book. I shall wear it out by constant use and it is a delight to recommend it to the emerging rational finance community.
  • Ramazan Gençay, Faruk Selçuk, Brandon Whitcher. An Introduction to Wavelets and Other Filtering Methods in Finance and Economics. Academic Press, 2002.
    • Abstract
    What can wavelet analysis tell us about time series? Filled with empirical applications from economics and finance, this book presents a unified view of filtering techniques. It provides easy access to a wide spectrum of parametric and nonparametric filtering methods, moving from older, well-known methods to newer ones, including neural networks. Avoiding proofs as much as possible and emphasizing explanations and underlying theories, the authors ensure that both those who are familiar with wavelets and those who ought to be have a definitive book that reveals the capabilities, advantages, and disadvantages of each method.
  • Andrew C. Harvey. Forecasting, Structural Time Series Models and the Kalman Filter. Cambridge University Press; Reprint Edition (12 Jan 2008).
    • Abstract
    In this book, Andrew Harvey sets out to provide a unified and comprehensive theory of structural time series models. Unlike the traditional ARIMA models, structural time series models consist explicitly of unobserved components, such as trends and seasonals, which have a direct interpretation. As a result the model selection methodology associated with stuctural models is much closer to econometric methodology. The link with econometrics is made even closer by the natural way in which the models can be extended to include explanatory variables and to cope with multivariate time series.
    From the technical point of view, state space models and the Kalman filter play a key role in the statistical treatment of structural time series models. The book includes a detailed treatment of the Kalman filter. This technique was originally developed in control engineering but is becoming increasingly important in fields such as economics and operations research.
    This book is concerned primarily with modelling economic and social time series and with addressing the special problems which the treatment of such series poses. The properties of the models and the methodological techniques used to select them are illustrated with various applications. These range from the modelling of trends and cycles in US macroeconomic time series to an evaluation of the effects of seat belt legislation in the UK.

Foreign Exchange

  • Shani Beverly Shamah. A Foreign Exchange Primer (The Wiley Finance Series). John Wiley & Sons, 2003.
    • Abstract
    The foreign exchange market is the largest market in the world, with an esitmated $1.6 trillion average daily turnover. This book sets out to introduce the novice to the practical skills necessary to understand the foreign exchange market today. Foreign Exchange Primer provides a clear understanding of how this market functions, from the main products through to the techniques used, coverage of the main participants, details of the various "players" and an understanding of the "jargon" used in everyday dealings. This concise and highly accessible primer is ideal for anyone new to or wanting to become involved in the foreign exchange market, from a dealing room or sales perspective through to the novice investor.
  • Shani Beverly Shamah. A Currency Options Primer (The Wiley Finance Series). John Wiley & Sons, 2004.
    • Abstract
    This is a quick and concise guide to currency options. An understanding of currency options is essential for those working in investment and foreign exchange. A Currency Options Primer sets out to give readers a clear guide to how the currency option market functions, offering practical advice on mastering the necessary components and concepts for fully understanding the workings of this market.

This book, published in 1998, is a comprehensive collection of empirical studies on currency options and their implications on issues of exchange rate economics, such as exchange risk premiums, volatility, market expectations and credibility of exchange rate regimes. It contains presentations of some of the original classic works. It opens with a relatively gentle introduction to option pricing theory, an introduction to currency options markets, then proceeds to consider their applications in Part II. One may wish to read Hull's book first to get a clearer idea of the fundamental concepts.


This book has been around for quite a few years. The author changed its title several times to reflect the changing perspectives on VaR. (The previous edition was subtitled "...The New Benchmark for Managing Financial Risk".) It covers the mathematics of VaR, but the emphasis is on the business (very much in the style of Hull's "business snapshots"), providing the motivation for risk management. This book has become a bible of VaR.

Holton's book is more recent than Jorion's. It is more expensive (currently 58.90 pounds on Amazon - 2007-06-11). Holton focusses on the maths. The book is written in a style similar to Salih Neftci's, covering the fundamental mathematics behinds VaR (including calculus, some basic probability theory, etc.) and then (towards the second half of the book!) goes into practical details.


  • Lars Kestner. Quantitative Trading Strategies: Harnessing the Power of Quantitative Techniques to Create a Winning Trading Program. The Irwin Trader's Edge Series. McGraw Hill, 2003.
    • Abstract
    By combining historical market performance with modern-day technology, technical traders often exhibit uncanny, seemingly intuitive abilities to control money-draining losses while letting profits run. Quantitative Trading Strategies reviews today's most popular and effective methods, and explains how to incorporate their quantitative strengths into your own trading system to dramatically improve both your entry and exit timing and risk management.
    Exploring a wide range of systematic trading techniques and strategies for risk and money management, Quantitative Trading Strategies examines every vital aspect of today's technical trading arena to provide you with (1) All new money management approaches based on optimal leverage; (2) Performance summaries of specific trading strategies; (3) Step-by-step directions for creating a system built around your own trading style.
    For decades, millions of successful traders have relied on technical analysis to not only improve the timing of their entries and exits but also to see and avoid dangerous trades and situations. Let Quantitative Trading Strategies introduce you to the best-of-the-best, and provide you with the knowledge and tools you need to create and implement a trading methodology designed to fit your trading strengths — and improve your performance in virtually any market environment.



Although quants are naturally concerned with quantitative finance, they are generally expected to be aware of the various macroeconomic factors. To stay up-to-date, read

  • The Economist, either its online version (you have to subscribe to access most of the articles), or the paper version available from most newsagents.


Some areas of mathematics are heavily used in finance, e.g. probability theory, stochastic calculus, and partial differential equations. Here I list some books that I personally find useful.

Mathematics is not a spectator sport, and practice is just as important as theory (if not more important). In general, where available, I use the Schaum's Outlines to excercise my undergraduate mathematics. Not all of these books are equally good, but some are excellent.


Differential Equations

  • Stanley J. Farlow. Partial Differential Equations for Scientists and Engineers (Dover Books on Advanced Mathematics). Dover Publications, Inc., 1993.
    • Abstract
    Most physical phenomena, whether in the domain of fluid dynamics, electricity, magnetism, mechanics, optics or heat flow, can be described in general by partial differential equations. Indeed, such equations are cricial to mathematical physics. Although simplifications can be made that reduce these equations to ordinary differential equations, nevertheless the complete description of physical systems resides in the general area of partial differential equations.
    This highly useful text shows the reader how to formulate a partial differential equation from the physical problem (along with initial and boundary conditions). Written for advanced undergraduate and graduate students, as well as professionals working in the applied sciences, this clearly written book offers realistic, practical coverage of diffusion-type problems, hyperbolic-type problems, elliptic-type problems and numerical and approximate methods. Each chapter contains a selection of relevant problems (answers are provided) and suggestions for further reading.

Probability, Statistics, and Random Processes

  • David Ruppert. Statistics and Finance: An Introduction (Springer Texts in Statistics). Springer Texts in Statistics. Springer, 2004.
    • Abstract
    This textbook emphasises the applications of statistics and probability to finance. Students are assumed to have had a prior course in statistics, but no background in finance or economics. The basics of probability and statistics are reviewed and more advanced topics in statistics, such as regression, ARMA and GARCH models, the bootstrap, and nonparametric regression using splines, are introduced as needed. The book covers the classical methods of finance such as portfolio theory, CAPM, and the Black-Scholes formula, and it introduces the somewhat newer area of behavioural finance. Applications and use of MATLAB and SAS software are stressed.
    The book will serve as a text in courses aimed at advanced undergraduates and masters students in statistics, engineering, and applied mathematics as well as quantitatively oriented MBA students. Those in the finance industry wishing to know more statistics could also use it for self-study.
  • Marek Capinski, Peter E. Kopp. Measure, Integral and Probability (Springer Undergraduate Mathematics). 2Rev Ed. Springer, 2004.
    • Abstract
    Measure, Integral and Probability is a gentle introduction that makes measure and integration theory accessible to the average third-year undergraduate student. The ideas are developed at an easy pace in a form that is suitable for self-study, with an emphasis on clear explanations and concrete examples rather than abstract theory.
    For this second edition, the text has been thoroughly revised an expanded. New features include: (1) a substantial new chapter, featuring a constructive proof of the Radon-Nykodym theorem, an analysis of the structure of Lebesgue-Stieltjes measures, the Hahn-Jordan decomposition, and a brief introduction to martingales; (2) key aspects of financial modelling, including the Black-Scholes formula, discussed briefly from a measure-theoretical perspective to help the reader understand the underlying mathematical framework.
    In addition, further exercises and examples are provided to encourag the reader to become directly involved with the material.

A very readable introduction to stochastic calculus.

Numerical Analysis

The following is a reference, not a textbook:

This is a bible of scientific computing. The Numerical Recipes cover linear algebra, interpolation, special functions, random numbers, nonlinear sets of equations, optimisation, eigensystems, Fourier methods and wavelets, statistical tests, ODEs and PDEs, integral equations and inverse theory. They cover the theory, outline the algorithms, and provide their implementations in C++.

Signal Processing

  • Alan V. Oppenheim, Ronald W. Schafer. Discrete-Time Signal Processing (International Edition). Second Edition. Pearson Education, 1999.
    • Abstract
    For senior/graduate-level courses in Discrete-Time Signal Processing. THE definitive, authoritative text on DSP — ideal for those with an introductory-level knowledge of signals and systems. Written by prominent, DSP pioneers, it provides thorough treatment of the fundamental theorems and properties of discrete-time linear systems, filtering, sampling, and discrete-time Fourier Analysis. By focusing on the general and universal concepts in discrete-time signal processing, it remains vital and relevant to the new challenges arising in the field — without limiting itself to specific technologies with relatively short life spans.


Quants spend much (most?) of their time writing code, so programming is an extremely important activity. In fact, it is so important that some of them have written songs about it! Unfortunately, while many people can program, few can program well. It is the latter that counts. The purpose of the following books is to teach one to be a good programmer.

Software Engineering

Known in the trade as the "Gang of Four" book, this is arguably one of the most useful texts in software engineering. A design pattern is a general repeatable solution to a commonly occurring problem in software design. Usually it is a description or template that can be applied in many different situations. This book catalogues and documents the 23 classic design patterns that most software engineers will be aware of.

Written by a senior quant (who also wrote The Concepts and Practice of Mathematical Finance), this concise text demonstrates how a subset of the classic 23 design patterns can be used to build a simple but complete exotics pricing engine. In particular, it explains the Factory Method, Abstract Factory, Singleton, Monostate, Adapter, Bridge, Decorator, Strategy, Template, and Iterator. It also goes through a number of general object-oriented programming issues (code reuse, encapsulation, etc.) and C++ programming techniques, such as functors, virtual constructors, virtual copy constructors, wrapper classes, and templates. These concepts are used to apply Monte Carlo, pricing on a binary tree, random number generators (including anti-thetic sampling), Newton-Raphson solvers, etc. However, the emphasis is on programming, not mathematics. This book will be particularly useful to mathematicians seeking to improve their programming skills, not the other way around.

  • Arthur J. Riel. Object-oriented Design Heuristics. Addison Wesley, 1996.
    • Abstract
    Upon completion of an object-oriented design you are faced with a troubling question: "Is it good, bad, or somewhere in between?" Seasoned experts often answer this question by subjecting the design to a subconscious list of guidelines based on their years of experience. Experienced developer Arthur J. Riel has captured this elusive, subconscious list, and in doing so, has provided a set of metrics that help determine the quality of object-oriented models.
    Object-Oriented Design Heuristics offers insight into object-oriented design improvement. The more than sixty guidelines presented in this book are language-independent and allow you to rate the integrity of a software design. The heuristics are not written as hard and fast rules; they are meant to serve as warning mechanisms which allow the flexibility of ignoring the heuristic as necessary. This tutorial-based approach, born out of the author's extensive experience developing software, teaching thousands of students, and critiquing designs in a variety of domains, allows you to apply the guidelines in a personalized manner.
    The heuristics cover important topics ranging from classes and objects (with emphasis on their relationships including association, uses, containment, and both single and multiple inheritance) to physical object-oriented design. You will gain an understanding of the synergy that exists between design heuristics and the popular concept of design patterns; heuristics can highlight a problem in one facet of a design while patterns can provide the solution.
    Programmers of all levels will find value in this book. The newcomer will discover a fast track to understanding the concepts of object-oriented programming. At the same time, experienced programmers seeking to strengthen their object-oriented development efforts will appreciate the insightful analysis. In short, with Object-Oriented Design Heuristics as your guide, you have the tools to become a better software developer.

A classic book by Arthur J. Riel discusses the good practices of software engineering in the form of easy to learn heuristics, demonstrates them by means of examples, and introduces much of the useful terminology.

I often use UML in my work, but I never use more than a small subset. This book by Martin Fowler goes beyond that subset. Yet it does present a very pragmatic, user-friendly view of UML.

  • Andy Oram, Greg Wilson (editors). Beautiful Code. O'Reilly Media, Inc., 2007.
    • Abstract
    This unique and insightful book is a collection of master classes in software design. In each chapter, today's leading programmers walk through elegant solutions to hard problems, and explain what makes those solutions so appealing.
    This is not simply another patterns book, or another software engineering treatise on the right and wrong ways to do things. Instead, it gives you the chance to look over the shoulder of some superb software designers and see the world through their eyes.
    Thirty-eight master coders think aloud as they work through a project's architecture, the tradeoffs made in its construction, and those moments when it was important to break rules.

To convince the reader that the aforementioned thirty-eight master coders are indeed master coders, here is a list of authors: Brian Kernighan, Karl Fogel, Jon Bentley, Tim Bray, Elliotte Rusty Harold, Michael Feathers, Alberto Savoia, Charles Petzold, Douglas Crockford, Henry S. Warren, Jr., Ashsh Gulhati, Lincoln Stein, Jim Kent, Jack Dongarra and Piotr Luszczek, Adam Kolawa, Greg Kroah-Hartman, Diomidis Spinellis, Andrew Kuchling, Travis E. Oliphant, Ronald Mak, Rogerio Atem de Carvalho and Rafael Monnerat, Bryan Cantrill, Jeff Dean and Sanjay Ghemawat, Simon Peyton Jones, R. Kent Dybvig, William R. Otte and Douglas C. Schmidt, Andrew Patzer, Andreas Zeller, Yukihiro Matsumoto, Arun Mehta, T. V. Raman, Laura Wingerd and Christopher Seiwald, Brian Hayes.


  • Books Stroustrup.jpg
    Bjarne Stroustrup. The C++ Programming Language, Special Edition. Special Edition. Addison Wesley.
    • Abstract
    Written by Bjarne Stroustrup, the creator of C++, this is the world's most trusted and widely read book on C++.
    For this special hardcover edition, two new appendixes on locales and standard library exception safety (also available at have been added. The result is complete, authoritative coverage of the C++ language, its standard library, and key design techniques. Based on the ANSI/ISO C++ standard, The C++ Programming Language provides current and comprehensive coverage of all C++ language features and standard library components.
    For example: abstract classes as interfaces; class hierarchies for object-oriented programming; templates as the basis for type-safe generic software; exceptions for regular error handling; namespaces for modularity in large-scale software; run-time type identification for loosely coupled systems; the C subset of C++ for C compatibility and system-level work; standard containers and algorithms; standard strings, I/O streams, and numerics; C compatibility, internationalization, and exception safety.
    Bjarne Stroustrup makes C++ even more accessible to those new to the language, while adding advanced information and techniques that even expert C++ programmers will find invaluable.
    A Web page to support the book can be found at

This is a thorough review of the C++ programming language written by its creator.

  • Nicolai M. Josuttis. The C++ Standard Library: A Tutorial and Reference. Addison Wesley, 1999.
    • Abstract
    The C++ standard library provides a set of common classes and interfaces that greatly extend the core C++ language. The library, however, is not self-explanatory. To make full use of its components — and to benefit from their power — you need a resource that does far more than list the classes and their functions.
    The C++ Standard Library not only provides comprehensive documentation of each library component, it also offers clearly written explanations of complex concepts, describes the practical programming details needed for effective use, and gives example after example of working code.
    This thoroughly up-to-date book reflects the newest elements of the C++ standard library incorporated into the full ANSI/ISO C++ language standard. In particular, the text focuses on the Standard Template Library (STL), examining containers, iterators, function objects, and STL algorithms. You will also find detailed coverage of special containers, strings, numerical classes, internationalization, and the IOStream library. Each component is presented in depth, with an introduction to its purpose and design, examples, a detailed description, traps and pitfalls, and the exact signature and definition of its classes and their functions. An insightful introduction to fundamental concepts and an overview of the library will help bring newcomers quickly up to speed.
    Comprehensive, detailed, readable, and practical, The C++ Standard Library is the C++ resource you will turn to again and again. An accompanying Web site, including source code, can be found at

Scott Meyers' books are superb. They distil the practical programming knowledge that would take many years to acquire under normal conditions. Between knowing the grammar of a programming language and being able to use it fluently there is an abyss. These books have improved my fluency in C++.

Scott Meyers: "This could well be the first book ever written for people who are already familiar with C++ - all of C++. From language features to components of the standard library to programming techniques, this book skips from topic to topic, always keeping you slightly off balance, always making sure you're paying attention. Just like real C++ programs." Written in a pragmatic problem/solution style, this book does a great job at teaching the subtleties of C++. It emphasises exception safety (hence the name).

  • Andrei Alexandrescu. Modern C++ Design: Applied Generic and Design Patterns (C++ in Depth). C++ In-Depth Series. Addison-Wesley, 2001.
    • Abstract
    In Modern C++ Design, Andrei Alexandrescu opens new vistas for C++ programmers. Displaying extraordinary creativity and programming virtuosity, Alexandrescu offers a cutting-edge approach to design that unites design patterns, generic programming, and C++, enabling programmers to achieve expressive, flexible, and highly reusable code.
    This book introduces the concept of generic components — reusable design templates that produce boilerplate code for compiler consumption — all within C++. Generic components enable an easier and more seamless transition from design to application code, generate code that better expresses the original design intention, and support the reuse of design structures with minimal recoding.
    The author describes the specific C++ rechniques and features that are used in building generic components and goes on to implement industrial strength generic components for real-world applications. Recurring issues that C++ developers face in their day-to-day activity are discussed in depth and implemented in a generic way. These include: Policy-based design for flexibility; Partial template specialization; Typelists — powerful type manipulation structures; Patterns such as Visitor, Singleton, Command, and Factories; Multi-method engines.
    For each generic component, the book presents the fundamental problems and design options, and finally implements a generic solution.
    In addition, an accompanying Web site,, makes the code implementations available for the generic components in the book and provides a free, downloadable C++ library, called Loki, created by the author. Loki provides out-of-the-box funcitonality for virtually any C++ project.

An extremely useful book that demonstrates how to combine inheritance, templates, and design patterns. According to Herb Sutter, "Modern C++ Design is an important book. Fundamentally, it demonstrates "generic patterns" or "pattern templates" as a powerful new way of creating extensible designs in C++ — a new way to combine templates and patterns that you may never have dreamt was possible, but is. If your work involves C++ design and coding, you should read this book. Highly recommended..." Enough said.

  • David Abrahams, Alexsey Gurtovoy. C++ Template Metaporgramming: Concepts, Tools, and Techniques from Boost and Beyond. C++ In-Depth Series. Addison-Wesley, 2005.
    • Abstract
    C++ Template Metaprogramming sheds light on the most powerful idioms of today's C++, at long last delivering practical metaprogramming tools and techniques into the hands of the everyday programmer.
    A metaprogram is a program that generates or manipulates program code. Ever since generic programming was introduced to C++, programmers have discovered myriad "template tricks" for manipulating programs as they are compiled, effectively eliminating the barrier between program and metaprogram. While excitement among C++ experts about these capabilities has reached the community at large, their practical application remains out of reach for most programmers. This book explains what metaprogramming is and how it is best used. It provides the foundation you'll need to use the template metaprogramming effectively in your own work.
    This book is aimed at any programmer who is comfortable with idioms of the Standard Template Library (STL). C++ power-users will gain a new insight into their existing work and a new fluency in the domain of metaprogramming. Intermediate-level programmers who have learned a few advanced template techniques will see where these tricks fit in the big picture and will gain the conceptual foundation to use them with discipline. Programmers who have caught the scent of metaprogramming, but for whom it is still mysterious, will finally gain a clear understanding of how, when, and why it works. All readers will leave with a new tool of unprecedented power at their disposal — the Boost Metaprogramming Library.


If you are a Java programmer seeking to learn C# quickly and relatively painlessly, this book is for you.

STOP PRESS! The next book in this series, More Effective C#: Specific Ways to Improve Your C# 2.0 is available for pre-order for 31 March 2008 (to be confirmed).

Yet another Effective... book, following Scott Meyers' lead (see Effective C++ and Effective Java above). I am still reading it. So far it looks good.


As the title suggests, this is the official specification of the Java programming language. Although it's hardly the best text for learning Java, it is an indispensable reference.

I would recommend this book to every Java programmer. It follows the pattern of Scott Meyers' Effective... series, distilling the practical wisdom of the programming process.

STOP PRESS! The second edition of this excellent book is now available. The book has been expanded significantly. In addition it now covers Java 6.

Doug Lea is a professor of computer science at State Unviersity of New York at Oswego where he specialises in concurrent programming. He is on the Executive Committee of the Java Community Process and chaired JSR 166, which added concurrency utilities to Java. This is his definitive text on concurrent programming in Java.


MATLAB is a numerical computing environment and programming language. It is extremely popular among quants. Note that MATLAB is an acronym for "matrix laboratory", not "mathematical laboratory".

VBA and Excel

This is an excellent book on VBA, although it is not exactly introductory. What's the best way to learn VBA from scratch? I wouldn't be able to recommend a book as I learned it by doing and consulting various resources on the Web.

<script type="text/javascript" src=""> </script> <noscript>

   <img src="" alt="" />