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.

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.

1

Most of the Wrox series is pretty chewy.
–
Joel EthertonMay 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 ShebelMay 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 KMay 3 '11 at 18:18

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.
–
WalterMay 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.LottMay 3 '11 at 14:43

1

It's the book programmers are mostly likely to plan on reading someday.
–
Steven A. LoweMay 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.LottMay 4 '11 at 12:07

Why not (“so ‘introductory’”)? This is an introduction, used in CS 101.
–
Konrad RudolphMay 3 '11 at 8:16

1

@konrad: AFAIK, most university only use several chapters of these books for teaching.
–
HeryMay 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 RudolphMay 3 '11 at 14:33

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]
–
WildlingMay 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 ?
–
WildlingMay 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 ThornleyMay 3 '11 at 13:37

+1: And also David Gries' Science of Programming. A companion book that expands on the themes.
–
S.LottMay 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. LoweMay 3 '11 at 15:32

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.

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.

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.