Recommended reading

If you want to contribute to the code effort then get the latest version of the code from Subversion. You'll discover that LyX is written in C++. We would expect, therefore, that you have some skill with C++ and Object Oriented programming.

Since LyX version 1.1 the Standard Template Library (STL) is being used for most data structures. See some online references recommended by our developers. We also have some simple coding rules that we try and adhere to.

We also recommend that you read some of these books:

Author(s)TitleReview
On STL
David Musser
bookpool
STL Tutorial & Reference GuideComprehensive tutorial and reference on STL
Matthew H. Austern
bookpoolamazon
Generic programming and the STLFor advanced STL users. It covers the STL in much more detail and depth.
On Object Oriented Design
Erich Gamma et al.
bookpool
Design Patterns, Elements of reusable OO softwarePatterns play the same role in OO Design as in architecture and engineering; helping to build complex systems.
Ivar Jacobson et al.
bookpoolamazon
The Unified Software Development ProcessIt goes beyond mere object oriented analysis & design to techniques that support the complete software development life cycle.
Grady Booch et al.
bookpool
The Unified Modeling Language User GuideSuitable for developers unfamiliar with the UML and useful to experienced developers who wish to learn how to apply the UML to advanced problems.
James Rumbaugh et al.
bookpool
The Unified Modeling Language Reference ManualThe definitive reference to the UML from the original designers.
On C++
Scott Meyers
bookpool
More Effective C++Introduces a number of tricks, like smart pointers and ways of handling multiple dispatch etc.
Jeff Alger
amazon
Secrets of the C++ MastersThis book is almost entirely dedicated to smart pointers and the wonderful things you can do with them. He also talks about homomorphic class hierarchies.
Bjarne Stroustrup
bookpool
The C++ Programming Language, Third EditionProvides comprehensive coverage of C++ language features and standard library components. A basic reference.
Herb Sutter
bookpool
Exceptional C++: 47 Engineering Puzzles, Programming Problems, and Exception-Safety SolutionsExcellent book gives lots of insight.

Online references

On C++

The C++ annotations book recommended for those that know some C programming, and want to learn C++ without spending a fortune on a book: http://www.icce.rug.nl/documents/cplusplus/

More C++ courses and tutorials online:
http://www.desy.de/user/projects/C++/Learning.html
http://www.cs.wustl.edu/~schmidt/C++/.

Some interesting C++ related articles: http://pobox.com/~oleg/ftp/c++-digest/

On STL

The SGI STL documentation (very good for STL): http://www.sgi.com/tech/stl/

A site by David Musser: http://www.cs.rpi.edu/~musser/stl-book/