Do you have a favorite programming book and if so, what is it?
-
I'd like to make a crazy proposal: When Intel presented its iAPX 432 CPU, I got hold of its reference manual. It is certainly not a programming book, yet it is about what we think of as programming. It made me thoroughly rethink the distinction between hardware and software - as well as some important software concepts. E.g. in the 432, if one process sends one of its objects to another process (using the IPC instructions of the processor), the sending process looses that object. It may of course make a copy of the object before sending the original away (or keep the original, sending a copy), but the original and the copy are distinct objects. If you give one of them away, you give it away. That is how things work in real life, and in the 432, but not in commonly used software systems today. Even though the 432 was a major flop, its reference manual has significantly formed my ideas about software. And hardware.
Interesting!
Real programmers use butterflies
-
My copy is the original edition from the mid '70s. I noticed it had undergone revisions, but it sounds like it's still somewhat inaccessible.
Robust Services Core | Software Techniques for Lemmings | Articles
The fox knows many things, but the hedgehog knows one big thing.Yeah, it's not for mortals. I ended up working with another book to figure out most of it. What's funny is there was only pseudocode in the book and no math symbology. But also that was one of its strengths. The book is Parsing Techniques: A Practical Guide[^]
Real programmers use butterflies
-
I still have a copy of that. I hug it occasionally for inspiration!
- I would love to change the world, but they won’t give me the source code.
Forogar wrote:
I still have a copy of that. I hug it occasionally for inspiration!
That is a very good idea. I'm going to have to start hugging mine too. :laugh: Mine sits on a bottom shelf of a bookshelf in my Home Office and each time I see it I get all goose-pimply and start thinking I know how to program again. :rolleyes:
-
Yeah, it's not for mortals. I ended up working with another book to figure out most of it. What's funny is there was only pseudocode in the book and no math symbology. But also that was one of its strengths. The book is Parsing Techniques: A Practical Guide[^]
Real programmers use butterflies
Too many CS types are wannabe mathematicians when they should be wannabe software "engineers". :laugh: It's basically the same in economics, though the "should be" side is harder to describe. But I digress.
Robust Services Core | Software Techniques for Lemmings | Articles
The fox knows many things, but the hedgehog knows one big thing. -
It's good as a reference. Just read the general description of each pattern and look at the details when you think you need a pattern but the UML diagram doesn't give you a good enough idea of how to write the code. As much as anything, the fact that it gives a name to each pattern saves lots of time during design discussions, because everyone can quickly understand an approach being suggested. It's about much more than composition, though.
Robust Services Core | Software Techniques for Lemmings | Articles
The fox knows many things, but the hedgehog knows one big thing.Greg Utas wrote:
gives a name to each pattern
Which is the only real value of the book. I bought a copy simply so I could be sure I knew what people were talking about and know which people had no idea what they were talking about.
-
Too many CS types are wannabe mathematicians when they should be wannabe software "engineers". :laugh: It's basically the same in economics, though the "should be" side is harder to describe. But I digress.
Robust Services Core | Software Techniques for Lemmings | Articles
The fox knows many things, but the hedgehog knows one big thing.I'll run with your digression. =) As far as economics I've seen some interesting work in describing and modeling economies as Complex Adaptive Systems. There have been some books on it but also freely available works like this: http://williamwhite.ca/wp-content/uploads/2018/04/CAEGChapterpdf.pdf[^] I think it shows more promise than traditional economics (not that it's all garbage or anything)
Real programmers use butterflies
-
Greg Utas wrote:
gives a name to each pattern
Which is the only real value of the book. I bought a copy simply so I could be sure I knew what people were talking about and know which people had no idea what they were talking about.
PIEBALDconsult wrote:
Which is the only real value of the book.
I've gotten some mileage out of the visitor pattern but I didn't learn it from that book. In fairness though, they describe it for people that didn't already learn it, and it's one of the more useful patterns to know, IMO.
Real programmers use butterflies
-
Mine would be Accelerated C++ by Andrew Koenig and Barbara Moo. It's mercifully short, and it teaches C++ the Right Way(TM) - the way Bjarne intended it to be used, and how it works best. It's suitable for beginners to C++ and in fact I recommend it for teaching C++, and it's the only one I'll recommend for that.
Real programmers use butterflies
I'm not one for books, but if I had to pick one (besides my own, of course) I'd go with Robert C. Martin's Clean Code. That book changed the way I write and think about code. The beauty is that it applies to all languages that were, are or will ever be used, although it uses Java for examples. Come to think of it, if a Java book is my favorite it has to be REALLY VERY GOOD! :~
Best, Sander Azure Serverless Succinctly Migrating Applications to the Cloud with Azure arrgh.js - Bringing LINQ to JavaScript
-
I'm not one for books, but if I had to pick one (besides my own, of course) I'd go with Robert C. Martin's Clean Code. That book changed the way I write and think about code. The beauty is that it applies to all languages that were, are or will ever be used, although it uses Java for examples. Come to think of it, if a Java book is my favorite it has to be REALLY VERY GOOD! :~
Best, Sander Azure Serverless Succinctly Migrating Applications to the Cloud with Azure arrgh.js - Bringing LINQ to JavaScript
I like my code dirty like a martini. :laugh: kidding of course
Real programmers use butterflies
-
I'll run with your digression. =) As far as economics I've seen some interesting work in describing and modeling economies as Complex Adaptive Systems. There have been some books on it but also freely available works like this: http://williamwhite.ca/wp-content/uploads/2018/04/CAEGChapterpdf.pdf[^] I think it shows more promise than traditional economics (not that it's all garbage or anything)
Real programmers use butterflies
A remarkably sensible paper considering that he worked in central banking and is a Canadian! But I'd just get rid of central banks entirely, or at least restore them to their original purpose, which was simply to provide liquidity in exchange for good collateral when it had few bids during a market panic. All this "monetary policy" stuff, including fixing interest rates and quantitative easing, is destructive, not to mention immoral.
Robust Services Core | Software Techniques for Lemmings | Articles
The fox knows many things, but the hedgehog knows one big thing. -
Yeah, it's not for mortals. I ended up working with another book to figure out most of it. What's funny is there was only pseudocode in the book and no math symbology. But also that was one of its strengths. The book is Parsing Techniques: A Practical Guide[^]
Real programmers use butterflies
I have this book too..
diligent hands rule....
-
I like my code dirty like a martini. :laugh: kidding of course
Real programmers use butterflies
You say you're kidding, but you also use single-line if-statements. Those are mutually exclusive :D
Best, Sander Azure Serverless Succinctly Migrating Applications to the Cloud with Azure arrgh.js - Bringing LINQ to JavaScript
-
Mine would be Accelerated C++ by Andrew Koenig and Barbara Moo. It's mercifully short, and it teaches C++ the Right Way(TM) - the way Bjarne intended it to be used, and how it works best. It's suitable for beginners to C++ and in fact I recommend it for teaching C++, and it's the only one I'll recommend for that.
Real programmers use butterflies
I was going to say Clean Code by Robert C. Martin but Sander beat me to it, so I'm gonna go with [Specifying Systems by Leslie Lamport](https://lamport.azurewebsites.net/tla/book.html). Not only is it a really interesting book but it's also pretty good for brushing up on discrete mathematics.
-
You say you're kidding, but you also use single-line if-statements. Those are mutually exclusive :D
Best, Sander Azure Serverless Succinctly Migrating Applications to the Cloud with Azure arrgh.js - Bringing LINQ to JavaScript
In all seriousness, I adopt a more relaxed style for my personal projects versus my professional projects. The thing is, after years of confining myself to the house style (whatever shop i'm at) working my own way is liberating. Maybe I'm a bit extreme about it. The other thing is, and maybe I shouldn't admit this here but I often am not thinking when I'm writing code. It just comes to me, and I let it. I've written some of my best code that way, so I don't fight it, but it's a bit like free association writing so it's going to reflect my underlying style preferences.
Real programmers use butterflies
-
Mine would be Accelerated C++ by Andrew Koenig and Barbara Moo. It's mercifully short, and it teaches C++ the Right Way(TM) - the way Bjarne intended it to be used, and how it works best. It's suitable for beginners to C++ and in fact I recommend it for teaching C++, and it's the only one I'll recommend for that.
Real programmers use butterflies
One book I would like to add is Code Complete: A Practical Handbook of Software Construction, Second Edition: McConnell, Steve[^]
-
Mine would be Accelerated C++ by Andrew Koenig and Barbara Moo. It's mercifully short, and it teaches C++ the Right Way(TM) - the way Bjarne intended it to be used, and how it works best. It's suitable for beginners to C++ and in fact I recommend it for teaching C++, and it's the only one I'll recommend for that.
Real programmers use butterflies
-
One book I would like to add is Code Complete: A Practical Handbook of Software Construction, Second Edition: McConnell, Steve[^]
I used to have that book. Steve McConnell is great!
Real programmers use butterflies
-
PIEBALDconsult wrote:
Which is the only real value of the book.
I've gotten some mileage out of the visitor pattern but I didn't learn it from that book. In fairness though, they describe it for people that didn't already learn it, and it's one of the more useful patterns to know, IMO.
Real programmers use butterflies
That's interesting, because I don't recall using Visitor. It probably depends on your problem domains. The patterns that resonated most with me were Chain of Responsibility, Abstract Factory, and Observer, and the simpler Singleton and Flyweight. I'd already used them but now had good names for them.
Robust Services Core | Software Techniques for Lemmings | Articles
The fox knows many things, but the hedgehog knows one big thing. -
That's interesting, because I don't recall using Visitor. It probably depends on your problem domains. The patterns that resonated most with me were Chain of Responsibility, Abstract Factory, and Observer, and the simpler Singleton and Flyweight. I'd already used them but now had good names for them.
Robust Services Core | Software Techniques for Lemmings | Articles
The fox knows many things, but the hedgehog knows one big thing.Yeah it really depends on what you're doing. I've just had several occasions where I basically need to query an object model, and a visitor can be a foundation of that.
Real programmers use butterflies
-
Zen and The Art of Motor Cycle Maintenance (Robert M. Pirsig)[^] And it's about as much about programming as it is about Zen Buddhism or motorcycle maintenance. But ... learn the right lessons from it, and you can cope with development (and make a start of fixing motorcycles as well).
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt AntiTwitter: @DalekDave is now a follower!
X| It's one of the few highly acclaimed books I was not able to finish. Couldn't go beyond 20 odd pages. Another is Catch 22.
Cheers, विक्रम "We have already been through this, I am not going to repeat myself." - fat_boy, in a global warming thread :doh: