At the moment I am trying to decide which book to buy, there are many that I think would be very interesting, but some are most likely beyond me. The books in my list, along with my thoughts on them are:

Concrete Mathematics (I believe this is probably too advanced for me at the moment, however I am revising mathematics and will want to pick this up in a few months)

The art of computer programming volumes 1-4 (I have read many times that one should be familiar with the concepts in Concrete Mathematics before attempting to consume this book, so I imagine its for later life!)

Hacker's Delight (one of the comments on amazon said something about being akin to The art of computer programming volume 0, so I imagine this might be beyond me as well.)

Programming Pearls (This is supposed to be a classic, and I am not too sure what level you would have to be at to understand or gain from it )

The Pragmatic Programmer (this looks like a great book, covering some very important things for someone of my level to understand. Considering it says "from journeyman to master" I imagine this covers content suitable to a wide range of levels)

Introduction to algorithms (this is probably an important book to get. My knowledge of algorithms, algorithm design and asymptotic complexity analysis isnt what it should be...)

Clean Code: A Handbook of Agile Software Craftsmanship (this sounds interesting, but I'm not sure its what I need right now)

Cracking the Coding Interview: 150 Programming Questions and Solutions (although I'm not looking for a job, this could give me a good idea of the kinds of realistic programming problems one might be required to solve. At the moment I'm focussing on web development and improving my mathematics, so I think this should be left for later. This could be interesting accompaniment for when I pick up c++ nearer the new year, along with websites such as project Euler, hackerrank, topcoder, codechef etc. But considering I'm not good at measuring efficiency and designing elegant and clean solutions to problems, I think its for a later date?)

Code: The Hidden Language of Computer Hardware and Software ( This seems like a fun little read, my knowledge of hardware is very basic, and I could probably gain something from this. )

The Annotated Turing: A Guided Tour Through Alan Turing's Historic Paper on Computability and the Turing Machine (this could be very important?)

if I had to say which three are probably msot valuable to me at the moment I would go with The pragmatic programmer, Introduction to algorithms and Programming pearls, in that order.

What would people who have read some of these titles suggest? Advice is appreciated.

p.s sorry if my thoughts on these matters are in some way flawed, if this is indeed the case, please point it out in your answers!

links to the books above on amazon.co.uk:

Concrete Mathematics

The art of computer programming vol 1-4a

Hackers Delight

Programming Pearls

The Pragmatic Programmer

Introcution to Algorithms

Clean Code: A handbook of Agile Software Craftmanship

Cracking the coding interview

CODE: The hidden language of computer hardware and software

The Annotated Turing: A guided Tour

ddanbe commented: Cheer up! Just start to read whatever! +14

Recommended Answers

All 13 Replies

@down-voter - Please could you explain why this post has been downvoted?

Seems to me, you are affraid to dive in.

I'm definitely not afraid, I would just like to get the books in the most appropriate order! I also do not currently have an income, so I would like to make sure I don't buy books that are currently beyond my understanding, which would merely wound my motivation! I am very much looking forward to reading these books, but in complete honesty my maths is not up to standard yet.

It would be very helpful if people would share their thoughts on these books, and in which order they would be best served!

Thank you in advance.

Hav a copy of Programming Pearls, indeed a classic. Very readable and entertaining!
Have Volume I Wirths classic. I find it very mathematical.
Have The annotated Turing and luckily it is annotated or would have made nothing out of the math symbolism of Turing. I guess even some real mathematicians would have a hard time with it.
As all your books, seem to be of an older date, and you are low on budget, why don(t you search the web for legal book copies and math tutorials?

Thank you for your answer! I am already using online resources, but I spend a lot of time at the computer and felt that getting away from the screen every now and then would be healthy! A main reason I'm not going for a subscription to online book services just yet. Do you have any online resources that you find particularly useful,though? As I am always happy to find new resources.

No, for myself I don't like reading e-books. I'm in for the real stuff, call me old aged. I was just giving you a tip. I look at book and math websites from time to time, but if I want to study something, I prefer a real book.

@phorce. Probably because the original amazon links included ref query parameters.

In addition "The Art of ..." is high-level stuff. Since you want to read these books, the real question is: what is your direct goal? Is it just knowledge, or do you want to apply this in your coding? Basically, define what "most valuable" means to you.

If you want practical books, I can also recommend:

I would mention Structure and Interpretation of Computer Programs as a good starting place, but it's a controversial sugestion; on the one hand, it does an admirably job of covering programming in the small, starting from the ground up and moving alll the way through several complex topics. On the other hand, it is based on a very unusual language (which they use a fraction of, at that) and takes an approach that is highly ideosyncratic; many programmers find it too divorced from daily practice to be relevant. On the gripping hand, that sort of more abstract approach is exactly what many programmers are lacking - tunnel vision is rampant among ordinary coders, and the sort of sweeping vision SICP gives is an excellent antidote to that. Your call.

Oops!

Have Volume I Wirths classic.

This must of course be: Have Volume I of Knuth's classic

I've placed an order for Programming pearls and the annotated turing for now! I would, however, like to keep this thread open for a while to see peoples opinions about other books, so I can add more to my wishlist for later reading!
It was hard to decide between programming pearls and the pragmatic programmer, but I found the pragmatic programmer on safari books online, and I had decided to try that out in future, so I will read it then! Perhaps using the trial.

Thank you for all the answers this far, much appreciated!

This is not going to make much of an impact but: I personally don't think books of programming are a good option. (Ok, in terms of software methodologies: Agile, sofware concents such as lifecycles) but in terms of coding I do not.. Here's why:

1) You learn THEIR coding styles, and THEIR coding techniques on how to do something. Sure, as a reference it's great but you tend to pick up their habbits and their habbits might not be the best way to go.

2) Books become out-dated, very, very quickly. You might be reading references to something that has been published 5 years ago and therefore the particular method becomes depciated. This means that you'll get fustrated with code. For example: Let's say I wanted to learn PHP, and, I picked up a copy of Larry Ullmans book.. It has an example that clearly states that mysql_* is the best option to use.. I then learn that mysql_* functions are now depeciated, so, i've written his solution and yet again, I'm on Google, I'm on forums only to learn that PDO/MYSQLI_* are the new standards.. Do I purchase more books?

If you take forum communities, websites and online referencing to many many things out there in terms of physical programming then you get to pick up multiple techniques. Usually you will see a problem and different members also contribute with their own standards. Languages such as C++ have an array of methods in which you can solve particular problems with, so it is good to see what their suggestions are rather than just one author, or, multiple authors.

3) Books are expensive. Studying Signal Processing, I find that books can go into the hundreds of $/£ and sometimes you have to ask yourself, why? I get the point of "I like a physical copy next to me so I can touch it and feel the code" but is this really worth all that money for information you can find out there on the internet?

I think this is the beautiful thing about open source technologies is that members help each other, they guide each other and actually find this stuff interesting so they post blogs about what they have learnt, how they have built particular applications and want to share their experiences.

For me, throughout education, I did not purchase one book.

I think this opinion comes from my lecturer once said:

"Don't listen to me. I know nothing. Go out there and do your own research. You will learn absolutely nothing from me"

Again, my opinion :)

I agree with you, phorce. I personally am under the impression the best way to learn a language is through documentation and recent tutorials!
I would never buy a book like "The c++ langauge" or "Java head first" because of the reasons you mention, but I do believe there is a lot of value in books that teach you how to approach problems, and teach you concepts, methodologies and patterns. I find it hard to find tutorials that approach this in a contiguous way, which personally I find myself longing for, as it tends to click better for me when related information and concepts are presented in a contiguous format.

Thank you for your reply, was very interesting to hear that you went through university without buying a single book!

i would mention you to read Kamasutra :P

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.