Tell me more ×
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.

If you had to choose only one of those two, which one will you pick?

Please state your reasons.

I'm kind of considering getting one of those books, but I'm uncertain of which should I get.

I'm a Java developer, and what I need is a book that teaches me a bit about software development, as well as writing good, clean code.

I already have "effective Java", so I don't need another book that's just about coding.

share|improve this question
6  
Have you considered Code Complete? – Tom Apr 17 '11 at 16:16
1  
@Tom Yes, and it's too big for me (960 pages). – Mahmoud Hossam Apr 17 '11 at 16:17
5  
The correct answer is: all of the above – nikie Apr 17 '11 at 19:58
3  
no Mahmoud, you should read all. Your question is thus flawed, it should at most ask in which order you should read them (the answer to which would likely be "it doesn't matter"). – jwenting Apr 18 '11 at 6:23
2  
@Tom I totally agree. A good question would be Prag-prog vs Code Complete 2. A good answer would be: buy both and toss a coin to decide which one to read first. – dimitris mistriotis Apr 18 '11 at 10:50
show 2 more comments

7 Answers

up vote 15 down vote accepted

Pragmatic programmer.

After reading that you're gonna throw your Effective Java away, seriously :)

Clean code is mainly about code-style (and it should be your next book), while Pragmatic programmer is about effective programming in general.

share|improve this answer
I think I'll go with the pragmatic programmer, as I want something that's general, and not just limited to coding. – Mahmoud Hossam Apr 17 '11 at 22:58
excellent choice. – Kamil Tomšík Apr 17 '11 at 23:17
5  
Effective Java shows how to do things in Java. Pragmatic programmer doesn't. – user1249 Apr 18 '11 at 8:02
5  
IMHO if, after reading Pragmatic Programmer, you really threw away Effective Java, you probably haven't understood Pragmatic Programmer :-/ – Péter Török Apr 18 '11 at 8:38
1  
@Mahmoud Hossam 1. because book about EFFECTIVE programming (and no, Effective Java is not mainly about effectiveness) is much more valuable. 2. because there are much better Java Books (Hollub on Patterns, Fowler&Beck signature books) – Kamil Tomšík Apr 18 '11 at 20:29
show 3 more comments

The Pragmatic Programmer is the best programming book I have ever read. I was fortunate to pick it up early in my career and I believe I'm a far better developer for having done so. Clean Code is a good book as well. It just wasn't game changing for me. That said, why not read both! You'll eventually have both enough money and enough time. That's how time works ;)

share|improve this answer
@Rein which did you read first? – Mahmoud Hossam Apr 17 '11 at 17:17
I read Pragmatic Programmer first. I didn't read Clean Code until later, after I had already met Uncle Bob and spent a lot of my own time discovering many of the same concepts by piecing together other resources. – Rein Henrichs Apr 17 '11 at 17:19
@Rein I'm guessing Clean Code wasn't a game changer for you because you've already read The Pragmatic Programmer, they both discuss the same topics, more or less. – Mahmoud Hossam Apr 17 '11 at 17:31
2  
Why ask for opinions if you're just going to disagree with them? – Rein Henrichs Apr 17 '11 at 17:44
@Rein I didn't say you were wrong, I'm just saying that's your experience, that's all. I apologize if I offended you, though. – Mahmoud Hossam Apr 17 '11 at 22:47
show 1 more comment

I recently read clean code and I was actually slightly disappointed. Not that it has bad advice, it doesn't, but I didn't see anything I don't already do. In fact I haven't worked with a team who doesn't already do those things in a long time.

In that sense, the pragmatic programmer has "more advanced meat" in it. If you go through the CC index pages and see lots of stuff in it that interests you, forget about PP and go for CC. Then in a year or so read PP.

If you don't see anything that new in the index of CC, then go ahead and read PP now, it will teach you at least a couple of things.

Or in other words, CC is more for beginning programmers, PP is more for advanced programmers.

share|improve this answer
Thanks a lot for your input, I'll certainly take this into condsideration :) – Mahmoud Hossam Apr 18 '11 at 1:45
I'd go further and say that while useful when starting out a lot of the advice gets superseded by other practices. E.g.: The impact of vertical distance diminishes as you start to design better classes; much of the advice will need rethinking in the face of DI; etc. – CurtainDog Aug 28 '12 at 21:22

If you can afford it, then get both.

Note that they don't teach you to write clean Java code though, but give you a better foundation. For better Java code you should learn "Effective Java" by heart.

share|improve this answer
What do you mean by "Foundation"? – Mahmoud Hossam Apr 17 '11 at 16:58
3  
A knowledge base on which you build your programming expertise. – user1249 Apr 17 '11 at 17:05
@Thorbjoern Okay, thanks, but what if I can't afford both, which should I get first? I feel that "code complete" is a better fit for me, since it focuses on Java in some parts. – Mahmoud Hossam Apr 17 '11 at 17:11
"...they don't teach you to write clean Java code..." - can you elaborate... Clean Code is all about that (and a phenomenal book, I agree that he should get both if he can swing it). – Steve Evers Apr 17 '11 at 17:13
1  
@Thorbjoern I said which one would you choose, that eliminates the possibility of both, I think. – Mahmoud Hossam Apr 17 '11 at 17:32
show 3 more comments

I've read quite a lot of Clean Code and I have to say that I think a lot of the coding rules / advice is spot on. On the other hand I thought that the actual coding examples were pretty bad. In fact I thought the refactored code was the initial proof of concept rough draft that was still to be refactored. Having said that, putting large amounts of code on a page never works well. But, definitely worth a read.

share|improve this answer

If you can't swing both... then get Clean Code. Jeff has enough of the high points of Pragmatic Programmer listed here. That should hold you over long enough to get yourself a copy to read 100 times.

edit: Just remember, that for each point in that list, there is a fair bit of discussion, explanation and rationalization behind it written in the book... so take each point to heart.

share|improve this answer

"Clean Code" for me. Though you must have a sound base before you read this book I believe and reading this book will tinker you to become a programmer with improved awareness. I think you do not need to be a Java programmer to read this and the pricipals and patterns for e.g. will apply to virtually every programming language.

Important details the book expresses to the user (and me!) is keeping your code expressive & simple and making sure the code does what you'd expect it to do, and it can be easily and quickly understood by you and anyone else later!

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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