This chapter lists a few books and articles that should be read by everyone working on Memgraph. Since Memgraph is developed primarily with C++, Python and Common Lisp, books are oriented around those languages. Of course, there are plenty of general books which will help you improve your technical skills (such as “The Pragmatic Programmer”, “The Mythical Man-Month”, etc.), but they are not listed here. This way the list should be kept short and the required part in “Required Reading” more easily honored.

Some of these books you may find in our office, so feel free to pick them up. If any are missing and you would like a physical copy, don’t be afraid to request the book for our office shelves.

Besides reading, don’t get stuck in a rut and be a Blub Programmer.

Essential Reading

Effective C++ by Scott Meyers

Required for C++ developers.

The book is a must-read as it explains most common gotchas of using C++. After reading this book, you are good to write competent C++ which will pass code reviews easily.

Effective Modern C++ by Scott Meyers

Required for C++ developers.

This is a continuation of the previous book, it covers updates to C++ which came with C++11 and later. The book isn’t as imperative as the previous one, but it will make you aware of modern features we are using in our codebase.

Practical Common Lisp by Peter Siebel

Required for Common Lisp developers.

Free: http://www.gigamonkeys.com/book/

We use Common Lisp to generate C++ code and make our lives easier. Unfortunately, not many developers are familiar with the language. This book will make you familiar very quickly as it has tons of very practical exercises. E.g. implementing unit testing library, serialization library and bundling all that to create a mp3 music server.

Effective Python by Brett Slatkin

(Almost) required reading for Python developers.

Why the “almost”? Well, Python is relatively easy to pick up and you will probably learn all the gotchas during code review from someone more experienced. This makes the book less necessary for a newcomer to Memgraph, but the book is not advanced enough to delegate it to Advanced Reading. The book is written in similar vein as the “Effective C++” ones and will make you familiar with nifty Python features that make everyone’s lives easier.

The Missing Semester

Free: https://missing.csail.mit.edu/