Live data from Hacker News

Ask HN: What language-agnostic programming books should I read?

news.ycombinator.com

171–180 of 344 posts

Re: Ask HN: What language-agnostic programming books should I read?

#171

Any good book on statistics would be a huge asset, as well as a book about debugging strategies.

'The Cartoon Guide to Statistics', Gonick and Smith, is surprisingly substantial for its style and target, an easy way to get started.

Think stats (http://shop.oreilly.com/product/0636920020745.do) is very enjoyable and very practical. You can read it online for free.

Re: Ask HN: What language-agnostic programming books should I read?

#172
post #90

Working Effectively with Legacy Code by Michael Feathers. It's a bit hard to wrap your brain around the Java and C++ examples unless you have experience with them, but the techniques are timeless. You may need to practice them extensively before you understand how important they are, though. In a recent book club we did at work, a common complaint was, "This just looks like common sense". Indeed it does... though the…

I just finished reading this book yesterday. I am not an expert in refactoring but the book seems too old, although most advises could be still useful. Anyway, today I found a new book by the author: Brutal Refactoring: More Working Effectively with Legacy Code. Unfortunately, I couldn't find a good review of the book on the Internet. But I think it could be more useful.

Me and a friend continually send IM's to each other, "LEAN ON THE COMPILER!".

That statement alone, one of the sections of the book, recommending you to allow the compiler to find your errors for you, is an example of the "age" of the book.

At the time I read it, when it first came out, I loved it. I still love Michael's work and advice to this day, but this book was written for another time.

Re: Ask HN: What language-agnostic programming books should I read?

#173
post #102
post #93

Earlier quoted context omitted.

What were your main takeaways from SICP? While it certainly espouses a functional style, I found the greatest lesssons to be higher level, focusing on abstraction. Though I have limited knowledge of C and Java so would be keen to hear your elaborated thoughts on this.

when you start to get to the parts about abstracting a circut, and making it streamy/lazy, you'd find that the impl details of a non-lazy language can make it more difficult than it needs to be. Also, as a beginner, you don't want both the difficulties of contepts _and_ the difficulties of language to combine to stop you from learning as effectively.

But Scheme isn't a lazy language - granted, you'll need a language that supports first class functions to lift their implementation of a stream though.

>Also, as a beginner, you don't want both the difficulties of contepts _and_ the difficulties of language to combine to stop you from learning as effectively.

Are you referring to the need to learn Scheme to work through SICP? While the asker specifically requested language-agnostic books, Scheme was chosen as a language for SICP for being a "syntax-free" language...

Re: Ask HN: What language-agnostic programming books should I read?

#175

I would recommend "Sorting and Searching" Volume 3 from Donald Knuth's "The Art of Computer Programming". Fantastic, in-depth read.

I also emphatically suggest D.Knuth's "The Art of Computer Programming". Super dense, not like a sit down and read from cover to cover, but really good set to have around.

I also heavily recommend this. It was gifted to me from a professor at my university while leaving, and I left it alone for a few years.

But when I finally opened it up, wow. You can appreciate just how dense the information is. It really reads as if no sentence was written without some purpose of conveying information. Definitely go slow reading this series so you can properly ingest what's written.

Re: Ask HN: What language-agnostic programming books should I read?

#176
post #157

Purely functional data structures by Chris Okasaki Let Over Lambda forgot by whom https://www.youtube.com/watch?v=0nbkaYsR94c Not technically a book, but watch it anyway.

> Purely functional data structures by Chris Okasaki Is that really language agnostic? I don't know how you could follow along with it without knowing some ML or Haskell.

Yeah, I had a hard time getting into that book the first time around due to a lack of ML knowledge. Once you have some ML or Haskell I'd say it's worth a read.

Re: Ask HN: What language-agnostic programming books should I read?

#177
post #153
post #90

Earlier quoted context omitted.

I just finished reading this book yesterday. I am not an expert in refactoring but the book seems too old, although most advises could be still useful. Anyway, today I found a new book by the author: Brutal Refactoring: More Working Effectively with Legacy Code. Unfortunately, I couldn't find a good review of the book on the Internet. But I think it could be more useful.

"the book seems too old" 2004 is old now? Really? Honestly, good books don't age as long as their core domain stays valid. Structurally C++ is pretty much the same as when the book came out.

Modern IDEs can deliver many of the recommendations of the book. Our productivity has increased a great deal. Back then there was no intellisense, code navigation through clicking on method names/classes etc. highlighted syntax errors, built-in unit test frameworks etc.

It was written for a different type of developer and a different type of development environment and a specific language, C++.

You haven't looked at C++ lately if you think it's the same as it was in 2004. The ISO has released new versions of the language in 2011, 2014 and ratified a new standard here in 2017. If you're writing C++ code that is consistent with 2004 C++ then you're writing a really bad version of "C with classes", not C++.

Edit:

Modern C++ contains native support for the filesystem, threads, lambda expressions, variants, upcoming networking library, coroutines (at least in Visual Studio), no more new/delete memory management, parallel algorithms and a ton more. This is a completely different language now and the code you write looks nothing like 2004 C++ code.

Re: Ask HN: What language-agnostic programming books should I read?

#179
post #140

Earlier quoted context omitted.

yes, I assumed that to be the book they meant. I read it 25 years ago. I am just surprised that it would be included in this list. I see no connection to the question posed.

I'm not sure why he included it in his list. However I do think that it does a very good job of bringing to light that your customers/users may not be appreciative of buggy code. They want something that "just works" and to not have to deal with vague error messages. I started reading the book about a year into my first development job and it really brought to light the frustrations my users were having as I was seei…

In a way, the entire book is about debugging, but the target is the author's thought process rather than code. While Robert Pirsig fictionalizes the story, in fact it's closely based on his own life, in which he sought understanding of values (via zen and academics) but somehow went wrong and ended up catatonic and in shock therapy. The plot is a revisit of the mind trek he was on then and a quest to see where he went wrong. Pirsig approaches this not as a psychologist, but as a reductionist philosopher/scientist, trying to identify what troubled him and caused him to fail -- a debugging of the mind.

Re: Ask HN: What language-agnostic programming books should I read?

#180
post #135

Earlier quoted context omitted.

> "Understanding MySQL Internals" Why this, as opposed to a more general text on databases? MySQL is popular, but few would accuse it of actually being a good database. I feel like the point at which knowing about the internals of MySQL becomes relevant is probably the point at which you should use a better database.

I would assume that any book about the internals of a database would be suitable. MySQL is plenty real enough to be educational to learn about its internals, yea verily, even its quirks, and to learn a lot about how other databases work. Even the "NoSQL" databases will use many of the same primitives. An equivalent substitution for another database would be fine; anyone have any suggestions? Then again, such a substi…

It may very well be the case that looking at the internals of some database other would provide a different set of lessons.

IMHO, MySQL is especially ugly due to an attempt to insert an abstract interface around its storage engines. IIRC that interface is leaky, and its documentation is pretty spotty. Also, the InnoDB storage engine has a lot of complexity that seemingly duplicates what's provided on the storage-engine-agnostic side of that interface.

One of the big lessons I took away from studying MySQL's internals, and partially confirmed by the "internals" book, was this: Be careful when designing a plugible storage-engines framework for a DBMS; MySQL has some examples of what can go wrong.

That's something you're unlikely to find mentioned in a generic DBMS-implementation book, but is very good to know about regardless.

Post reply on HN