Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. Do you have a favorite programming book and if so, what is it?

Do you have a favorite programming book and if so, what is it?

Scheduled Pinned Locked Moved The Lounge
questionc++learning
87 Posts 42 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • Greg UtasG Greg Utas

    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.

    P Offline
    P Offline
    PIEBALDconsult
    wrote on last edited by
    #37

    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.

    H 1 Reply Last reply
    0
    • Greg UtasG Greg Utas

      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.

      H Offline
      H Offline
      honey the codewitch
      wrote on last edited by
      #38

      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 UtasG 1 Reply Last reply
      0
      • P PIEBALDconsult

        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.

        H Offline
        H Offline
        honey the codewitch
        wrote on last edited by
        #39

        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

        Greg UtasG 1 Reply Last reply
        0
        • H honey the codewitch

          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

          Sander RosselS Offline
          Sander RosselS Offline
          Sander Rossel
          wrote on last edited by
          #40

          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

          H B 2 Replies Last reply
          0
          • Sander RosselS Sander Rossel

            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

            H Offline
            H Offline
            honey the codewitch
            wrote on last edited by
            #41

            I like my code dirty like a martini. :laugh: kidding of course

            Real programmers use butterflies

            Sander RosselS 1 Reply Last reply
            0
            • H honey the codewitch

              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 UtasG Offline
              Greg UtasG Offline
              Greg Utas
              wrote on last edited by
              #42

              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.

              <p><a href="https://github.com/GregUtas/robust-services-core/blob/master/README.md">Robust Services Core</a>
              <em>The fox knows many things, but the hedgehog knows one big thing.</em></p>

              1 Reply Last reply
              0
              • H honey the codewitch

                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

                S Offline
                S Offline
                Southmountain
                wrote on last edited by
                #43

                I have this book too..

                diligent hands rule....

                1 Reply Last reply
                0
                • H honey the codewitch

                  I like my code dirty like a martini. :laugh: kidding of course

                  Real programmers use butterflies

                  Sander RosselS Offline
                  Sander RosselS Offline
                  Sander Rossel
                  wrote on last edited by
                  #44

                  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

                  H 1 Reply Last reply
                  0
                  • H honey the codewitch

                    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

                    J Offline
                    J Offline
                    Jon McKee
                    wrote on last edited by
                    #45

                    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.

                    Sander RosselS 1 Reply Last reply
                    0
                    • Sander RosselS Sander Rossel

                      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

                      H Offline
                      H Offline
                      honey the codewitch
                      wrote on last edited by
                      #46

                      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

                      Sander RosselS 1 Reply Last reply
                      0
                      • H honey the codewitch

                        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

                        A Offline
                        A Offline
                        Amarnath S
                        wrote on last edited by
                        #47

                        One book I would like to add is Code Complete: A Practical Handbook of Software Construction, Second Edition: McConnell, Steve[^]

                        H 1 Reply Last reply
                        0
                        • H honey the codewitch

                          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

                          L Offline
                          L Offline
                          Lost User
                          wrote on last edited by
                          #48

                          Algorithms, by Robert Sedgewick and Kevin Wayne

                          It was only in wine that he laid down no limit for himself, but he did not allow himself to be confused by it. ― Confucian Analects: Rules of Confucius about his food

                          1 Reply Last reply
                          0
                          • A Amarnath S

                            One book I would like to add is Code Complete: A Practical Handbook of Software Construction, Second Edition: McConnell, Steve[^]

                            H Offline
                            H Offline
                            honey the codewitch
                            wrote on last edited by
                            #49

                            I used to have that book. Steve McConnell is great!

                            Real programmers use butterflies

                            1 Reply Last reply
                            0
                            • H honey the codewitch

                              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

                              Greg UtasG Offline
                              Greg UtasG Offline
                              Greg Utas
                              wrote on last edited by
                              #50

                              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.

                              <p><a href="https://github.com/GregUtas/robust-services-core/blob/master/README.md">Robust Services Core</a>
                              <em>The fox knows many things, but the hedgehog knows one big thing.</em></p>

                              H 1 Reply Last reply
                              0
                              • Greg UtasG Greg Utas

                                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.

                                H Offline
                                H Offline
                                honey the codewitch
                                wrote on last edited by
                                #51

                                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

                                1 Reply Last reply
                                0
                                • OriginalGriffO OriginalGriff

                                  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!

                                  V Offline
                                  V Offline
                                  Vikram A Punathambekar
                                  wrote on last edited by
                                  #52

                                  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:

                                  1 Reply Last reply
                                  0
                                  • H honey the codewitch

                                    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

                                    J Offline
                                    J Offline
                                    Jacquers
                                    wrote on last edited by
                                    #53

                                    Not a programming book, but I have a copy of A+ core hardware on my desk. It's underneath my monitor to raise it's height ;) :P

                                    1 Reply Last reply
                                    0
                                    • H honey the codewitch

                                      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

                                      Kornfeld Eliyahu PeterK Offline
                                      Kornfeld Eliyahu PeterK Offline
                                      Kornfeld Eliyahu Peter
                                      wrote on last edited by
                                      #54

                                      Not that I reading it anymore, but have a special place for my copy of PC Intern - System Programming by Michael Tischer... It is about DOS so mostly irrelevant, but I've learned a lot about how to see things from that book...

                                      "The only place where Success comes before Work is in the dictionary." Vidal Sassoon, 1928 - 2012

                                      "It never ceases to amaze me that a spacecraft launched in 1977 can be fixed remotely from Earth." ― Brian Cox

                                      L 1 Reply Last reply
                                      0
                                      • H honey the codewitch

                                        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

                                        S Offline
                                        S Offline
                                        Stepan Hakobyan
                                        wrote on last edited by
                                        #55

                                        Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries by Krzysztof Cwalina, Jeremy Barton, Brad Abrams

                                        1 Reply Last reply
                                        0
                                        • H honey the codewitch

                                          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

                                          M Offline
                                          M Offline
                                          M Vo
                                          wrote on last edited by
                                          #56

                                          Yes. "Clean Code" by Robert C. Martin. His central point is that most of the time you READ code, so you have to write it in a way that you can read it easily. And he shows how to do this - and wrote the book in a way that you can read even the book easily.

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • World
                                          • Users
                                          • Groups