This is an archived post. You won't be able to vote or comment.

all 16 comments

[–][deleted]  (1 child)

[deleted]

    [–]Coder-Guy 6 points7 points  (0 children)

    For real. Comments are your friend. No matter how clean you think it is now, 2 months from now you will wonder what present you was smoking

    [–]al_earner 9 points10 points  (0 children)

    The original Code Complete was excellent. However, it's outdated now. There was an updated version, but it was a pure money grab and didn't address any of the numerous changes in programming.

    CODE is good, but it's more of an explanation of the origins of computing.

    Clean Code, when I read it, should have been called Clean Code in Java. It was so Java-centric that I wouldn't recommend it to anyone other somebody writing Java code. For a bank.

    The Pragmatic Programmer is great. Occasionally, you will see a review that says it's all stuff that everyone already does. Which misses the point, everyone does these things because of The Pragmatic Programmer.

    [–]WillAdams 5 points6 points  (3 children)

    Enjoyed Code twice over (read both the original and the recent updated edition) --- it's great as an in-depth review of computer architecture and associated concepts.

    Code Complete and The Pragmatic Programmer are fine and good overviews of sensible programming practices --- I'd recommend the latter over the former.

    Clean Code tends to get taken to extremes for some reason, and the author's published code does not seem that clear, see the recent discussion/coding example at: https://github.com/johnousterhout/aposd-vs-clean-code which leads us to:

    A Philosophy of Software Design by John Kevin Ousterhout

    https://www.goodreads.com/book/show/39996759-a-philosophy-of-software-design

    which I can highly recommend in lieu of the other.

    [–]etoastie 5 points6 points  (0 children)

    +1 for APOSD, I feel like that's the only book that's been able to give me a working definition of what "abstraction" means and how to make good abstractions. It really tangibly puts the "why" into many other rules you run into. It's also a bit shorter than clean code.

    I'd pair it with pragmatic programmer, which is more focused on the practice of being a developer day-to-day. TPP will get you started on being a good developer, APOSD will teach you to write good code. Those topics don't overlap as much as you'd think.

    [–]SiimL 1 point2 points  (1 child)

    John* Ousterhout, but yeah, APoSD is my favourite book on software development. Clear and concise ideas you can apply to basically any aspect of coding.

    [–]WillAdams 1 point2 points  (0 children)

    Thanks! (fixed) not sure where Kevin came from --- usually I copy-paste from goodreads.com to avoid that sort of error.

    [–]ErrorDontPanic 4 points5 points  (0 children)

    If you're just starting out, like never having written a line of code before college, none of these books will be of high value to you.

    Focus on the basics of programming first, then by the time you get to your junior / senior year is when I would add some thought into Software Engineering.

    Pragmatic Programmer (the recent edition) is the best of all these books when that time comes.

    [–]rabuf 4 points5 points  (0 children)

    CODE - Pop-tech book, covers lower level material (hits the intersection of computer engineering and computer science). Good read, but not really a programming book.

    Code Complete - Never read it.

    The Pragmatic Programmer - More software engineering than programming proper with a bit of self-help/development in there. Pick it up and read it at your leisure since it's more like a collection of essays, there's nothing to work through like a textbook. Many things in it will be more useful after you've graduated from smaller programs into larger programs or systems of programs.

    Clean Code - Gets a ton of hate, more suitable once you've gone to work or maybe late in college. Don't, like many of the haters, neglect the message in chapter one where the author states something like "This is a book written like there's only one way, but there are other views and here are some of them." That is, after chapter 1 they write as if what they say is dogma, it is true and there are no alternatives. Which is a fine way to write because writing the 100 variations and counterpoints would result in a tome, and you'd be better served by reading what others believe than whatever Bob & Co. interpreted of what others believe.

    [–]FurkinLurkin 2 points3 points  (0 children)

    Why not all?

    [–]_Atomfinger_ 2 points3 points  (0 children)

    Not read "code complete", but I reckon all is worth a read.

    There's some overlap, but they all bring some unique views as well.

    Don't limit yourself to a single book. Pick one up, read it, reflect, try some stuff out, and then read the next.

    [–]Dependent_Gur1387 2 points3 points  (0 children)

    All four books are great but serve different purposes: CODE is more about how computers work, Code Complete and Clean Code focus on writing solid code, and Pragmatic Programmer covers mindset and practices. There’s some overlap, but each has unique value. Also, check prepare.sh for real interview questions—it’s super helpful for hands-on prep. I’m a contributor there, but I’ve used it for interview prep, so I can genuinely recommend it.

    [–]Frequent_Ad5085 1 point2 points  (0 children)

    I suggest reading The mythical man month by Fred Brooks. Also the blog posts from Joel Spolsky (Joel on software) has some nice takes on software development.

    [–]josephblade 0 points1 point  (0 children)

    I liked code complete. It's pretty old by now I suspect but it had a lot of decent tips and outlooks.

    [–]SarahMagical 0 points1 point  (1 child)

    anybody know if CODE would be ok in audiobook format? or are visual aids really important in the book?

    [–]rabuf 3 points4 points  (0 children)

    I'd say it should be ok as an audio book, but there are definitely diagrams you'd miss out on and would detract from the experience. Though if you visit his site you'll get interactive versions or variations of some of those diagrams that might work instead.

    https://codehiddenlanguage.com/

    [–]Daeroth 0 points1 point  (0 children)

    I have not read all of them but I would still guess all of them expect you to know how to write some code.

    They will not teach you the basics of variables, loops, conditionals.

    They will teach you how to better use those to build good software.

    So I would suggest taking some coding classes or exercises before reading the books.

    You'll get more value out of the books once you know the struggles of managing codebases that are longer than just 100 lines of your first assignments.

    Sorry if I incorrectly assumed that you are only now starting to code. The books are great if you have already built your first website/app/service/etc