Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I was wondering what are some really tough books on programming that would make me think. I'm talking about low level languages such as c etc and algorithms, points, functions etc.

Thanks ALot.

share
1  
Most of the Wrox series is pretty chewy. –  Joel Etherton May 3 '11 at 2:29
1  
Why are people downvoting? The OP just wants some books that would present him a challenge... it's not a stupid or OT question. –  Melanie May 3 '11 at 7:06
4  
This is not a very good question. In particular, I think it lacks a clear criteria for judging books. "Tough" and "make me think" are pretty subjective -- we don't know you and what will be tough or easy for you. Or how it would apply to other people, for that matter. It also does nothing to inspire answers to explain why the books are recommended, potentially going against the constructiveness guidelines. Some editing could help, I think. –  Anna Lear May 3 '11 at 13:16
4  
@Melanie - this is a "list of X" type question which will just get people's favourite book posted as an answer. If you check the answers none of them have any explanation of why the book mentioned fulfils the OPs requirements (well one does, but that's out of 10 answers). –  ChrisF May 3 '11 at 13:37
1  
I agree with @Anna and @Chris above, this question lacks key parts, such as explaining why these books are hard or how to grade books against each other. –  Josh K May 3 '11 at 18:18
show 3 more comments

locked by Yannis Rizos Jun 4 '13 at 7:51

This question exists because it has historical significance, but it is not considered a good, on-topic question for this site, so please do not use it as evidence that you can ask similar questions here. This question and its answers are frozen and cannot be changed. More info: help center.

closed as not constructive by Walter, Anna Lear May 3 '11 at 19:52

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

10 Answers

up vote 29 down vote accepted

The Art of Computer Programming. Donald Knuth.

share
3  
Why? What makes it so good? Please expand your answer. –  Walter May 3 '11 at 14:31
2  
You should include that in your answer. I have read it, but anyone who hasn't will get NO sense of why they should even look into your suggestion. –  Walter May 3 '11 at 14:40
3  
@Walter: I don't think I agree. I don't think it needs any expansion. The book is so toweringly important and so central to computing that I don't feel it needs explanation. –  S.Lott May 3 '11 at 14:43
1  
It's the book programmers are mostly likely to plan on reading someday. –  Steven A. Lowe May 3 '11 at 15:27
1  
@RYUZAKI: "i want to be prepared before i jump in to something which seems to be so difficult and so rewarding" Don't bother trying to "prepare". Just jump in. When you find a subject that's beyond you, you'll know what you need to learn. It's a life-long pursuit. You cannot possibly be prepared enough. You'll always need to learn yet more. –  S.Lott May 4 '11 at 12:07
show 4 more comments

Low level of .NET: CLR via C# by J. Richter. Worth reading if you want to know the core of .NET.

share
add comment

Some alternatives to the well-known (and excellent) books already suggested:

  • Database Systems: The Complete Book, 2nd ed. has a second part that actually explains how a DBMS itself is implemented. Has a lot of material on how to efficiently store and index data and how to actually execute queries in the database.
  • An Engineering Approach to Computer Networking discusses the deepest details of actually making networks work. If you ever want to implement a high performance networking application or device, this text will provide a great fundamental background.
  • Approximation Algorithms consists of an extensive overview of combinatorial optimization problems. The author advises to study the problems in-depth before trying to create an approximation, which is very instructive.
  • Types and Programming Languages is 600+ pages of theory and implementation techniques dedicated to types in programming languages. It turns out there is an incredible amount of theory to deal with. If you ever want to create a full-blown programming language, there's a lot to learn here.
share
add comment

I would highly recommend Numerical Recipes: The Art of Scientific computing.

A fantastic book, which details many useful scientific algorithms. Over my career in embedded and industrial computing system, one version or another, in one language or another1, has been my constant companion.

  1. Prior to third edition, there were different books for different for different languages, so there were Numerical recipes in C, Numerical recipes in Fortran and even Numerical recipes in Pascal.
share
    
Wow, I haven't even thought about hat book in about 15 years –  Zachary K May 3 '11 at 8:50
    
Yeah, I bought a first edition at university and have managed to find a use for the algorithms in those books in every job I've worked at since. –  Mark Booth May 3 '11 at 10:26
add comment

You can start to learn Lisp langs. That will sure be tough ! Plus its a happy breakk from regular programming

share
add comment

The dragon book will certainly help you to understand low level concepts.

share
    
good one. i had to study it as part of my CS syllabus and found it very interesting , challenging as well as enriching experience –  Ritwik G May 3 '11 at 7:53
add comment

Seven Languages in Seven weeks will give you a lot to play with. When All else fails read "Structure and interpretation of Computer programs" One of the best books ever on programming.

share
2  
"Seven Languages in Seven Weeks" is extremely cool but not really a tough programming book. –  Chiron May 3 '11 at 10:36
    
If your goal is for a book to be hard for the sake of being hard you are right, on the other hand it is a book that has a lot of good information in it –  Zachary K Nov 4 '12 at 7:20
add comment

I recently started reading Hacker's Delight (http://www.amazon.com/Hackers-Delight-Henry-S-Warren/dp/0201914654). It might not score very high on the tough aspect. But I would give it high scores on thoroughness, low level and clever problem solving, true to the spirit of it's name.

share
add comment

Introduction to Algorithms

Not so "introductory" ;)

share
1  
Why not (“so ‘introductory’”)? This is an introduction, used in CS 101. –  Konrad Rudolph May 3 '11 at 8:16
1  
@konrad: AFAIK, most university only use several chapters of these books for teaching. –  Hery May 3 '11 at 12:06
    
Now I had to look it up, demolishing my laptop stand in the process (I use the Cormen as support for my laptop …). And you’re right. I forgot the latter parts of the book; these are indeed subject of later lectures (some in master courses). –  Konrad Rudolph May 3 '11 at 14:33
    
@konrad: hery nailed it. –  Demian Brecht May 3 '11 at 14:37
    
@konrad: sounds like an eventful process ;) –  Demian Brecht May 3 '11 at 14:41
add comment

A Discipline of Programming, by Edgar W. Dijkstra

How to write provably-correct code

This it not a book to read, it's a book to study

share
    
steven i havent really looked into this book ; but it makes me ask a very critical question : is it of any use for say, a WEB developer or a C++ coder [device drivers,etc] or an Android developer ? I am asking you if it is worth my time ? [cont in next comment] –  Ritwik G May 3 '11 at 8:09
    
[cont from previous comment] i am new but i learn Wickedly fast. I read tonnes of blogs , Open Source code, etc. So is reading the above book (and others of its kind) really going to help me ? And friend; the only reason i have such pessimistic attitude is that i had read Design and Analysis of Computer Algorithms by Aho et. all and to tell you the truth i have been hardly using that knowledge ..... but again i only have been programming seriously for less than 6 months. so what would you say ? –  Ritwik G May 3 '11 at 8:09
1  
@RYUZAKI: So you've been programming seriously less than six months, and you found the Aho et al. algorithms book not immediately useful? Then you're not looking for the books mentioned in this question. You might want to take some time and get more comfortable in the field and then come back to these. The books in these answers (the ones I know, anyway), will teach you things and greatly expand your understanding. They won't make you a better C# developer immediately, if that's what you're looking for now. –  David Thornley May 3 '11 at 13:37
    
+1: And also David Gries' Science of Programming. A companion book that expands on the themes. –  S.Lott May 3 '11 at 14:50
2  
@RYUZAKI like most deeper CS texts, you get out of it what you put into it. I got a new appreciation for the mathematical beauty of programming, along with direct experience designing and proving the correctness of very small programs. It took the better part of a year to work my way through the book. –  Steven A. Lowe May 3 '11 at 15:32
show 1 more comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.