How to Solve it; Polya
How to Prove It: A Structured Approach by Velleman
Introduction to Logic, 2nd Edition by Harry J. Gensler
Applied Math for Computer Scientists;Vol 1 and 2
Street Fighting Mathematics
Mathematics for Computer Science;MIT Course;http://courses.csail.mit.edu/6.042/fall11/
Applied Math for the Database Professional
Algorithm Design Manual;Steven Skiena;2010
Algorithms, 4th Edition by Robert Sedgewick and Kevin Wayne;algs4.cs.princeton.edu/
Algorithms Unplugged
Data Structures and Algorithms: The Basic Toolbox
Introduction to Programming in Java: An Interdisciplinary Approach;introcs.cs.princeton.edu/
Programming: Principles and Practices;B Stroustrup
Computer Systems: A Programmer’s Perspective, 2nd Edition;Randal R Byrant;2011
Elements of Computer Systems;Technion University, Israel
Introduction to Computing Systems: From bits & gates
Operating Systems Essentials;Silberschatz
Unix in ANSI C;Berkeley Course
Linux Kernel Programming;Robert Love
The Definitive Guide to SQLite Internals
Packet guide to Core Network Protocols
Packet guide to Routing and Switching
Linux Kernel Networking
Others:
———-
What every Programmer needs to know about memory;Ulrich Depper
http://blog.objectmentor.com/articles/2009/02/26/10-papers-every-programmer-should-read-at-least-twice
Structure and Interpretation of Computer Programs
Rationale:
————–
http://matt.might.net/articles/what-cs-majors-should-know/


