[HN Gopher] Elements of Programming (2009)
       ___________________________________________________________________
        
       Elements of Programming (2009)
        
       Author : kykeonaut
       Score  : 144 points
       Date   : 2025-02-11 18:04 UTC (4 days ago)
        
 (HTM) web link (www.elementsofprogramming.com)
 (TXT) w3m dump (www.elementsofprogramming.com)
        
       | mempko wrote:
       | If you are passionate about programming and and computer science,
       | this is the book to read. It's like Euclid's elements, but for
       | programming.
        
         | laurent_du wrote:
         | Euclid's Elements is absolutely not a useful book for the
         | contemporary.
        
           | WillAdams wrote:
           | I've found it useful as a grounding, and reference, and
           | authoritative definition source, so I refer to:
           | 
           | https://mathcs.clarku.edu/~djoyce/java/elements/elements.htm.
           | ..
           | 
           | when writing:
           | 
           | https://willadams.gitbook.io/design-into-3d/2d-drawing
        
       | iLemming wrote:
       | The year in the HN title looks wrong, in the PDF it says 2019,
       | please fix it, otherwise people ignore the book thinking it's too
       | outdated.
       | 
       | Oh wait. I stand corrected - I missed that it said "Copyright
       | 2009", "First printing 2019", not sure why it took so long to get
       | it printed.
        
         | icermann wrote:
         | It's explained on the web page
         | 
         | "After ten years in print, our publisher decided against
         | further printings and has reverted the rights to us. We have
         | published Elements of Programming in two forms: a free PDF and
         | a no-markup paperback."
        
       | dang wrote:
       | Related. Others?
       | 
       |  _Elements of Programming (2019)_ -
       | https://news.ycombinator.com/item?id=32459443 - Aug 2022 (11
       | comments)
       | 
       |  _Elements of Programming_ -
       | https://news.ycombinator.com/item?id=20437347 - July 2019 (24
       | comments)
       | 
       |  _Alex Stepanov (STL) just published a book on math foundations
       | of programming_ - https://news.ycombinator.com/item?id=665987 -
       | June 2009 (1 comment)
        
       | layer8 wrote:
       | Historically, this is based on what is described here:
       | https://en.wikipedia.org/wiki/Alexander_Stepanov#Standard_Te...
        
       | kragen wrote:
       | I've found this book, and Stepanov's previous work, to be among
       | the most insightful ways of thinking about programming. But it's
       | hard to distill, and we could wish for a much better language
       | than C++ to express these ideas in.
        
         | pjmlp wrote:
         | That is the attractiveness of the dark side of the force, the
         | closest we have come from all kinds of Haskell like exploration
         | ideas into a mainstream language, maybe one day Rust will get
         | there as well.
         | 
         | No accident that Bartosz Milewski got to mix both worlds.
         | 
         | Agree it should be better.
        
           | kragen wrote:
           | Stepanov is addressing a lot of topics that Haskell sweeps
           | under the rug. For software for which crashing is acceptable
           | behavior, such as compilers, web browsers, or theorem
           | provers, that's an improvement. Not all software falls in
           | that category.
        
       | rramadass wrote:
       | Alexander Stepanov also has _Notes on Programming_ (a series of
       | lectures he gave at various companies) which is what this and his
       | other published books are based on. You can find the link to it
       | in the  "reference" section of his wikipedia page -
       | https://en.wikipedia.org/wiki/Alexander_Stepanov
       | 
       | I have all of his books and they are all great (though not
       | easy!). His starting point is "Algebraic Structures" (basically
       | sets of objects and operations defined on them eg.
       | Groupoid/SemiGroup/Monoid/Group etc.) and so some familiarity
       | with Abstract Algebra/Discrete Mathematics is assumed. The
       | mapping he does from the mathematics to a language construct
       | modeling a concept is what gives one the insight into
       | programming. His other book _From Mathematics to Generic
       | Programming_ gives one a more  "easier" approach to the subject
       | and should be read in conjunction with this one for better
       | understanding.
       | 
       | A related old book is _Ruminations on C++: A Decade of
       | Programming Insight and Experience_ by Andrew Koenig and Barbara
       | Moo. This is derived from a collection of articles written by
       | Koenig when he was working closely with Stepanov on his ideas and
       | implementation of STL. His idea of programming templates in a
       | functional and generic manner is what is conveyed in this book in
       | the  "templates" section and is still quite illuminating (no math
       | but short C++ code in articles). So something which might not be
       | clear from Stepanov's mathematical treatment may be clearer here
       | since you can see an actual C++ implementation (warts and all).
        
       ___________________________________________________________________
       (page generated 2025-02-15 23:01 UTC)