from Hacker News

Elements of Programming (2009)

by kykeonaut on 2/11/25, 6:04 PM with 12 comments

  • by rramadass on 2/15/25, 11:04 AM

    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).

  • by dang on 2/14/25, 10:08 PM

    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)

  • by mempko on 2/14/25, 9:13 PM

    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.
  • by layer8 on 2/14/25, 10:54 PM

    Historically, this is based on what is described here: https://en.wikipedia.org/wiki/Alexander_Stepanov#Standard_Te...
  • by kragen on 2/15/25, 6:48 AM

    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.
  • by iLemming on 2/14/25, 9:28 PM

    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.