Good is the enemy of great
The difference between good programmers and great ones is that great programmers understand the fundamentals very, very well.  Sure reading Donald Knut is great but the books are so dense they can kill you.

The same insane team of hack programmers that built RDPCrystal EDI Library and RDPScript, have compiled a list of the most important books that should be read in order to stand above the rest in the industry.  These books will not only make you a better programmer but a faster thinker.  The list is in no particular order however the math books should be read first.

It’s important to note that the aim was to find books that took complex topics and made them easy to understand.  It’s extremely difficult to find books like these because they are not heavily publicized.  However these book separate ordinary programmers from super ones.

E-Z Algebra Oh no Algebra!  Well Dougls Downing, Ph.D. pretends are you a child again and teaches you algebra in the fictional land of Carmorra.   It starts at the absolute bottom of math and teaches the fundamental topics of algebra.  The book is really fun to read.  Read every line and do every example.  If you miss a question go back and find out why you got it wrong.  It will give you the foundation you need to approach other mathematical topics.
Discrete Mathematics – An Open Introduction Don’t worry about all those college textbooks that are insanely dense and complicated,  this book will blow your mind when it comes to understanding discrete mathematics.  Ocar Levin PH.D. does an excellent job of presenting complicated topics simply.  Read the whole book and do all the examples.
Writing Efficient Programs (1982) – Jon Louis Bently Like I said, we had to dig around to find the books that separated the good from the great.  This book is probably one of the least known books in computer science but man does it pack a punch.  Bentley optimizes everything!  He removes all code that is not required, saves a ton of memory, unroll loops, removes assignments, etc.  After reading this book you’ll view your own code as a bloated mess.

The Art of Multiprocessor Programming – Herlihy & Shavit

This is one of those books that changes a programmer’s life after reading it.  This book is the experienced friend you never had when it comes to multi-threading.  It shows you how every type of lock works and how to create your own.  We use this knowledge all the time at Crystal Universe Software.  There are locks mechanisms you’ve never heard of and this book will explain everything you need to know about them.

 


 

How To Argue And Win Every Time – Gerry Spence

This is another one of those books that changes a programmer’s life after reading it.  After acquiring knowledge a super programmer needs to defend their ideas and argue their case.  So many great ideas are not implemented because programmers cannot fight for their ideas or do not have courage.  This small book fixes that.


We will add more books recommendations to this blog soon.