Looking for books to read

I'm compiling a general list of comp sci related books to read and I'm looking for suggestions.

So far I have:

Structure and Interpretation of Computer Programs
(http://www.amazon.com/Structure-Interpretation-Computer-Programs-Engineering/dp/0262011530)
Compilers: Principles, Techniques, and Tools
(http://www.amazon.com/Compilers-Principles-Techniques-Tools-Edition/dp/0321486811)
Refactoring: Improving the Design of Existing Code
(http://www.amazon.com/Refactoring-Improving-Design-Existing-Code/dp/0201485672)


I'm looking for anything and everything I can read to improve my technique and skill set.
Petzold's "Code".
closed account (z05DSL3A)
~~~~~~~~~~~~~~~~~~~
The Art of Computer Programming: Volumes 1-4a
Donald E. Knuth
http://www.amazon.com/Computer-Programming-Volumes-1-4A-Boxed/dp/0321751043
~~~~~~~~~~~~~~~~~~~
Parsing Techniques: A Practical Guide
Dick Grune and Ceriel Jacobs
http://www.amazon.com/Parsing-Techniques-Practical-Monographs-Computer/dp/1441919015
~~~~~~~~~~~~~~~~~~~
The Pragmatic Programmer: From Journeyman to Master
Andrew Hunt and David Thomas
http://www.amazon.com/The-Pragmatic-Programmer-Journeyman-Master/dp/020161622X
~~~~~~~~~~~~~~~~~~~
Applied Cryptography: Protocols, Algorithms, and Source Code in C, Second Edition
Bruce Schneier
~~~~~~~~~~~~~~~~~~~
Concrete Mathematics: A Foundation for Computer Science (2nd Edition)
Ronald L. Graham, Donald E. Knuth, Oren Patashnik
~~~~~~~~~~~~~~~~~~~
NB: These books are presented in no particular order (and may not be 100% on topic, just good books on various subjects relating to Computer Science)

Edited as and when I remember what books I like.
Last edited on
You can read Structure and Interpretation of Computer Programs (SICP) online for free (legally) via MIT Press if you want: http://mitpress.mit.edu/sicp/
There's also MIT OpenCourseWare (OCW) where they upload videos of lectures (of a large number of topics, including computer science) on YouTube: www.youtube.com/user/MIT

I like The C Programming Language (K&R) a lot, too.
closed account (z05DSL3A)
Names of Authors that keep coming to mind:
Donald E. Knuth
Andrew S. Tanenbaum
The object oriented thought process
http://www.amazon.com/Object-Oriented-Thought-Process-The-Edition/dp/0672330164?tag=duckduckgo-d-20

Life changer. Code changer.
Last edited on
Code Complete: A Practical Handbook of Software Construction (Second Edition)
By: Steve McConnell

Introduction to Algorithms
By: Thomas H. Cormen
I would think anything wrote by Bjarne Stroustrup would be a beneficial addition to any book collection.
closed account (iw0XoG1T)
BHXSpecter wrote:
I would think anything wrote by Bjarne Stroustrup would be a beneficial addition to any book collection.


Mr. Stroustrup wrote the book "Programming Principles and Practice Using C++", and it is not a good book (it might be ok if it was used in a classroom).

When I first read it I was just learning to program so I did not have anything to compare it to other than a book I had read written by Herbert Schildt.

Stroustrup book tries to teach both how to program and the syntax of C++ at the same time. Outside classroom it is not a good book because Stroustrup hides some of the more difficult aspects of C++. Now if you do not have a professor to ask questions of, you wind up using online forums when you do not understand. And, this works against you because you are taught things that Stroustrup is purposefully avoiding.

I read some reviews of this book and I think readers go easy on him out of respect. I sure he is a great teacher, but I suspect he is not a great teacher for beginners. I wouldn't advise anyone to read this book--it is difficult for beginners and it is not a good reference.

I actually feel bad because there was I time when I did advise people to read this book. Which is another problem about asking for advise in a forum--the advise might becoming from a total novice.


edit: I would delete this post--but this forum looks down on that.
Last edited on
Also this thread isn't about C++ but the bigger picture. (Am I right, xander337?)

That said, I can't contribute any new suggestions.

When I first read it I was just learning to program so I did not have anything to compare it to other than a book I had read written by Herbert Schildt.

Isn't that the guy with the half eaten muffin on the cover?
Last edited on
edit: I would delete this post--but this forum looks down on that.

I don't know, I'd personally look downer on striking out your entire post seemingly for no good reason. Are you too shy to have an opinion, or what?
If it is who I think it is, Herbert Schildt is actually considered one of the authors you should avoid in many programming circles (think he wrote the Complete C++ Reference book). Never said his book was for beginners, but this was a thread about wanting books to read and his books are the best for learning considering he is the creator of the language. I've found little things that he mentions that I have never seen in another book or tutorial. I always say to learn the beginner things from the cplusplus.com tutorials and then pick up The C++ Programming Language Special Edition (just due to the corrections and added appendices) to go more in-depth with the language (plus he recommends tons of other books while covering topics that you can get to extend you understanding on).
Catfish2 wrote:
Also this thread isn't about C++ but the bigger picture. (Am I right, xander337?)

No, but C++ is one of the most used in Comp Sci with Java, C, C#, ASM, etc so getting an in-depth book on each language would be worthwhile.
Last edited on by closed account z6A9GNh0
BHXSpecter wrote:
(think he wrote the Complete C++ Reference book)

He did, and that is actually the book I used to initially learn C++. It's what my parent's got me when I asked for a book to learn C++ from so it's what I used.

Catfish2 wrote:
this thread isn't about C++ but the bigger picture. (Am I right, xander337?)


You are correct. Generally I'm looking for books that I can use to gain better insight and grant a more in-depth understanding of software development, algorithm design, optimization, design patters, and basically anything that will help me improve my programming in general (that is to say, not in any particular language)

I'm also looking to expand my knowledge in the field. So books directly targeting a specific field in comp sci (cryptography, AI implementation, compiler design, OS design, etc..) or books on computer science theory would also be a key.


So far, I've appended the entirety of Grey Wolf's suggestions to my list, as well as both of ascii's (they are pretty much exactly what I'm looking for ^^;;)


Thank you all for the wonderful suggestions! As of right now I'm reading SICP via the link chrisname shared.
closed account (z05DSL3A)
There is a book that, back in the day, I found very useful. I don't know if it is still available or if it has been superseded.

Data Communications, Computer Networks and Open Systems
F. Halsall
He did, and that is actually the book I used to initially learn C++. It's what my parent's got me when I asked for a book to learn C++ from so it's what I used.

From what I understand his books have tons of errors and bad practices taught in his books. I found this by googling:

http://www.lysator.liu.se/c/schildt.html

Lists errors for just one of his C books. I bought the complete C++ reference and once I read that about him and his books I never even opened the book. I even avoid his books now due to him seeming to have that kind of reputation in his books.
Last edited on by closed account z6A9GNh0
closed account (ypfz3TCk)
There are endless books to read. i think the best way to learn is to start a small project that will push yo to learn more and you will see / understand context of c++ in use.
In fact Stroustup recommended that you should use the language to learn more ...books can only take you so far
Teach them INTERCAL then. sigh, deleted post.

I'm terrible at names. In no particular order:
Computational Geometry in C O'Rourke
Data Structures and Netword Algorithms Tarjan
Design Patterns GoF
There was a good one by Skiena that can't recall.
Last edited on
Programming Windows Fifth Edition
by Charles Petzold
http://www.amazon.com/Programming-Windows%C2%AE-Edition-Microsoft-Series/dp/157231995X/ref=sr_1_3?s=books&ie=UTF8&qid=1340938290&sr=1-3&keywords=charles+Petzold

Programming Windows Fifth Edition AKA The Win32 API Bible.
Neil wrote:
There are endless books to read. i think the best way to learn is to start a small project that will push yo to learn more and you will see / understand context of c++ in use.
In fact Stroustup recommended that you should use the language to learn more ...books can only take you so far


That's fine because I've got 5 years or so of amateur C++ projects under my belt including several unfinished physics engines and an unfinished chat bot that was meant to crawl forums like this for it's data. :P Oh and I was looking for general books to improve my knowledge and skill of comp sci as a whole, there's only so much dicking around with a compiler can do, you know.

Don't take that in a harsh tone, meant to be spoken with a grin.

edit: Just added the more recent suggestions to my list. Gonna start weeding things out soon cause right now I'm looking at a potential start at a personal library :P
Last edited on
I have 2 C++ books that are very much outdated. So for now, I am relying upon the internet. I guess I will buy new books when I want to direct my knowledge of C++ into specific areas. Cryptology and Computer Science sounds interesting.
Topic archived. No new replies allowed.