• C++ Programming for Financial Engineering
    Highly recommended by thousands of MFE students. Covers essential C++ topics with applications to financial engineering. Learn more Join!
    Python for Finance with Intro to Data Science
    Gain practical understanding of Python to read, understand, and write professional Python code for your first day on the job. Learn more Join!
    An Intuition-Based Options Primer for FE
    Ideal for entry level positions interviews and graduate studies, specializing in options trading arbitrage and options valuation models. Learn more Join!

What book to study from after Absolute C++

Joined
10/28/09
Messages
12
Points
11
Hi, I'm learning C++ on my own and at the moment I'm going through Absolute C++ written by Walter Savitch (one of the C++ books recommended on the Master Reading List). I've done some Java before, so I'd say around half of the book looks pretty familiar and I am assuming with some persistence I can get through the rest of the book pretty soon.

What would be a natural progression after Absolute C++?

The table of contents for Absolute C++:

Chapter 1: C++ Basics
Introduction to C++
Variables, Expressions, and Assignment Statements
Console Input/Output
Program Style
Libraries and Namespaces

Chapter 2: Flow of Control
Boolean Expressions
Branching Mechanisms
Loops

Chapter 3: Function Basics
Predefined Functions
Programmer-Defined Functions
Scope Rules

Chapter 4: Parameters and Overloading
Parameters
Overloading and Default Arguments
Testing and Debugging Functions

Chapter 5: Arrays
Introduction to Arrays
Arrays in Functions
Programming with Arrays
Multidimensional Arrays

Chapter 6: Structures and Classes
Structures
Classes

Chapter 7: Constructors and Other Tools
Constructors
More Tools
Vectors–A Preview of the Standard Template Library

Chapter 8: Operator Overloading, Friends, and References
Basic Operator Overloading
Friend Functions and Automatic Type Conversion
References and More Overloaded Operators

Chapter 9: Strings
An Array Type for Strings
Character Manipulation Tools
The Standard Class string

Chapter 10: Pointers and Dynamic Arrays
Pointers
Dynamic Arrays
Classes, Pointers, and Dynamic Arrays

Chapter 11: Separate Compilation and Namespaces
Separate Compilation
Namespaces

Chapter 12: Streams and File I/O
I/O Streams
Tools for Stream I/O
Stream Hierarchies: A Preview of Inheritance
Random Access to Files

Chapter 13: Recursion
Recursive void Functions
Recursive Functions that Return a Value
Thinking Recursively

Chapter 14: Inheritance
Inheritance Basics
Programming with Inheritance

Chapter 15: Polymorphism and Virtual Functions
Virtual Function Basics
Pointers and Virtual Functions

Chapter 16: Templates
Function Templates
Class Templates
Templates and Inheritance

Chapter 17: Linked Data Structures
Nodes and Linked Lists
Linked List Applications
Iterators
Trees

Chapter 18: Exception Handling
Exception Handling Basics
Programming Techniques for Exception Handling

Chapter 19: Standard Template Library
Iterators
Containers
Generic Algorithms

Chapter 20: Patterns and UML
Patterns
UML
 
If you have a good grasp of all the concepts you listed and can implement them, then I would recommend going to books discussing implementing financial concepts in C++, for example: Introduction to C++ for Financial Engineers, Financial Instrument Pricing Using C++, or Problems Solving with C++.
 
Heh, I've actually started reading Absolute C++ too (and doing all of the exercises) - I'm on chapter 8. It's a pretty useful book.
 
Hi,
I have a related question here. Do I need to learn C++ or C is good enough? My impression is they don't need a lot of OO programming in financial math. Is that right?
 
No, you definitely need C++ All new code is OO and you have to know how to understand it and write correctly. The other thing is that some groups might use VBA only for their day to day job. But even in this case you most likely will be asked C++ questions at the interview.
 
do you think Absolute C++ is better than " C++ How to Program" ?
 
roni: I'm not sure about 'C++ How to Program', but I've read Walter Savitch's Problem Solving with Java I believe and he's pretty straightforward, hence I'm sticking to the same author.

Connor: You mentioned trying to implement financial applications after going through Absolute C++ to practice; how will I know if my implementation is good/efficient enough?
 
Read Eckel Thinking in C++ vol. 2, Sutter, Joshi's book is good too,
read Meyers books, they are thin and you can read them quickly.
These are all very good books.
 
"C++ How to Program" is a pretty good book in my opinion. But it's long and some of its problems are quite hard. "Absolute C++" is a better option for a novice.
 
I'm complete beginner in programming. What books/sources should I start to learn C++ for preparing MSFE study?
 
@miigaa @ExSan Same as always: The Definitive C++ Book Guide and List

@Andy Nguyen I'm wondering, perhaps a pinned topic entitled "The Definitive C++ Book Guide and List" redirecting to the aforementioned link wouldn't be a bad idea? It's maintained, reviewed, and up-to-date -- whereas many of the existing forum topics (that can be found via search) are not (and some of the C++ books in the "Master" list are absolutely atrocious). It's also categorized (from beginners with no programming experience to advanced), which is another advantage as a study guide. It's also worth noting that each book recommendation is listed with a short description / reasons why it's recommended (including target audience) -- making it more useful -- whereas many recommendations here basically boil down to "it worked for me" or lack any comment altogether (like the aforementioned "Master" list).
 
Last edited:
I need to say something about Policy-Based Design (PBD):

The definitive overview of Policy-Based Design needs to be written. Alexandrescu's idea 2001 needs to be elaborated. The only nice 2-page article that I can find is this:

Policy-based design - Wikipedia, the free encyclopedia

But then PBD is just an idea that is being used in many areas (as you move in Java, C# and Structured Analysis (the bespoke Hatley-Pirbhi book!)). AFAIK the term PBD is not used outside the C++ community; the idea has been in use in industry for donkey's years under another name.


When will C++ support "first-class interfaces" (and I don't mean pure abstract classes :D)

IMO
C++ is a programming language (bricks and mortar) but you need some top-down approach or methodology (architectural drawing) like Structured Analysis for that ooh sooh important initial system decomposition.
 
Last edited:
Back
Top