[HN Gopher] A non-standard book list for software developers
___________________________________________________________________
A non-standard book list for software developers
Author : molteanu
Score : 226 points
Date : 2022-03-12 13:43 UTC (9 hours ago)
(HTM) web link (mihaiolteanu.me)
(TXT) w3m dump (mihaiolteanu.me)
| WinterMount223 wrote:
| Good books but still quite standard. Spivak's is standard on
| initial calculus courses at universities.
|
| If you really wanted non-standard but relevant authors I would
| add Feyerabend, Kuhn, Kahneman, Dostoyevsky, Borges, Taleb,
| Montaigne, Popper, Hofstadter, Don Norman, Alexandrescu. Add
| something about systems of representation by Kierkegaard or
| Nietzche or some interpretations by later authors.
| dhosek wrote:
| I think Spivak is _way_ less common as an initial calc text
| than Stewart. Spivak 's approach is much more rigorous than
| most calc textbooks, and is in many ways almost an introduction
| to real analysis. Note, for example, that Spivak prefers to
| view the definite integral as the proper form of an integral
| rather than the typical approach taken by many introductory
| texts where the integral is viewed as the anti-derivative and
| then for [?]_a^b f(x)d(x) they just take F(b)-F(a) and call it
| a day. I would imagine that most introductory calculus students
| do close to zero proofs with most of the time spent on
| memorizing the various rubrics for finding derivatives and
| anti-derivatives. Spivak covers those, but the exercises are at
| least 50% proofs rather than being 90-100% calculation.
| civilized wrote:
| The Calculus pick is completely fungible. There are at least
| two other popular Calc books that different people would say
| the exact same things about.
|
| Euclid as the ideal place to learn logic seems debatable,
| although I can't think of a better resource off the top of my
| head.
|
| The Xinu OS and LISP recommendations I've never seen before, so
| those were potentially valuable for me at least.
| jamjamjamjamjam wrote:
| What calc books are those? Reading a calculus book is a
| massive investment because I will be rereading pages. So I'd
| like to find the best one first
| WinterMount223 wrote:
| Depends enormously on your level and willingness and
| dedication. At that level the best ones are Spivak,
| Apostol, Fichtenholtz, Kudryavtsev.
| molteanu wrote:
| Just be careful in mixing the "best one at teaching" with
| the "best one at the level of detail and correctness".
| One is good for aha moments, the other for going into
| research. Depends on your needs. Similar to the question
| of "what is the best language to learn?". Depends on your
| needs.
| Turing_Machine wrote:
| If I remember right, Apostol uses a non-standard sequence
| (integration first, then differentiation). That probably
| only matters if you might be using a different book for
| another part of the sequence, though.
| civilized wrote:
| I self-taught from an early edition of Stewart and loved
| it.
| harshreality wrote:
| _Calculus Made Easy_ by Thompson (now in a new edition
| revised by Martin Gardner) was a former classic used by all
| sorts of people, and Feynman learned calculus from
| _Calculus for the Practical Man_, which was hardly
| sophisticated by modern standards. As long as you stick to
| a book some sizeable number of people think is okay, I
| don't think it matters that much what you learn from; the
| important thing is that you work through theorems carefully
| enough that you really understand them. Whether it's Spivak
| or Velleman or Thompson or OpenStax or Stewart (only for
| those who are assigned it, since otherwise there's no
| reason to spend >=$100 on it--it's not worth the premium)
| or Ross (his _Elementary Analysis_ book), worry about
| learning the concepts more than worrying about which book
| you chose. You can always refer to alternative books or
| youtube videos if a concept isn't clear in the primary book
| you chose.
| ivan_ah wrote:
| Others have already mentioned the classics, but if you're
| looking for something more off the beaten path, you can
| check out my book: _No Bullshit Guide to Math & Physics_
| which covers calculus in approx. 150 pages (Chapter 5).
|
| You can see an extended preview of it here: https://miniref
| erence.com/static/excerpts/noBSmathphys_v5_pr...
|
| And a standalone concept map here: https://minireference.co
| m/static/conceptmaps/math_and_physic... (bottom of the
| page)
|
| Check out the reviews on amazon if you're interested. It
| hasn't been adopted as the main textbook at any university
| yet, but many teachers recommend it as supplemental reading
| for their courses.
| molteanu wrote:
| I, for one, couldn't find a better one at the time I've
| read it. There are a lot of crappy ones, on the other hand.
| You are right in affirming that this is a massive
| investment.
| morelisp wrote:
| It's horribly inaccessible but while we're throwing out truly
| nonstandard recommendations, and apropos to the connection made
| elsewhere in this thread between the theory of forms and
| object-oriented programming, Whitehead's _Process and Reality_
| is good for the same reasons OOP sucks.
| unfocussed_mike wrote:
| Hoftstadter is fairly near standard isn't it? Assuming you mean
| actually reading GEB and not _The Mind 's I_ or _I Am A Strange
| Loop_. Not generally a course text but very common reading
| among CS /AI students. Some of whom even read all the way to
| the end instead of just pretending to!
|
| The book I would most recommend software developers read is
| _Mindstorms: Children, Computers and Powerful Ideas_ by Seymour
| Papert.
|
| It's a lot shorter. And probably more valuable.
|
| And one random side recommendation: _The Daughter Of Time_ by
| Josephine Tey. It 's a narrative exploration of how to
| challenge consensus belief, explore gut instincts and follow
| research leads, expressed as a perception-challenging
| historical review of Richard III by a fictional detective.
|
| The BBC audio book is worth a go. My copy of this book (which
| was my mum's copy) is one of the few things I'd rescue from the
| hypothetical fire. It stays with you.
| Smaug123 wrote:
| I found Hofstadter's _Le Ton beau de Marot_ fascinating, and
| also almost nobody has even heard of it!
| unfocussed_mike wrote:
| I had not heard of it either. Very interesting. Thanks!
| [deleted]
| thwave wrote:
| > Proclus (ca. 335 BC)
|
| Proclus, whose quote opens the section on Euclid, lived more than
| 700 years after this date, well into the 5th century AD. Euclid
| himself wasn't born till about decade after, in 325 BC.
| molteanu wrote:
| That is true. I've updated the info, though I couldn't quite
| find the exact date of the publication of "Proclus' Commentary
| on the First Book of Euclid's Elements".
|
| Good catch! Thanks for the heads-up!
| jrjarrett wrote:
| Holy crap, the Comer XINU book is still around. I used that in my
| undergrad Systems course in the mid '80s...
| garren wrote:
| The most recent version targets the beaglebone black and the
| intel Galileo (now obsolete, although you can still pick them
| up.) I've encountered raspi repos on GitHub as well. I've found
| it to be a great book since it gets you working with hardware
| very early on.
| mumblemumble wrote:
| I would suggest Essense of Decision
| (https://en.wikipedia.org/wiki/Essence_of_Decision)
|
| Because when you're working on a larger software team, or even a
| small software team within a larger company, understanding how
| organizations _actually_ understand the world and make decisions
| is invaluable.
|
| A person can drive themself crazy expecting groups of people to
| behave like a monolithic rational agent.
| [deleted]
| electrondood wrote:
| In a similar topic of books about system design, someone on HN
| recommended A Pattern Language and The Timeless Way of Building
| by Christopher Alexander et. al.
|
| They're not about designing distributed software systems...
| they're a complete design language for the proper design of a
| city, from the grossest elements to the most granular. You can
| flip to a random page and understand what makes a front yard
| really fulfill its purpose, or you can flip to a different page
| and learn why some public plazas just don't get used, while
| others flourish.
|
| It's a template system for designing a room, a house, a
| neighborhood, a city, etc.
|
| Makes you think about what a component is, what makes it "good"
| or "bad" at what it's supposed to do, and what makes it
| harmoniously integrate with other components.
| gumby wrote:
| 25 years ago my (then) wife and I both read Christopher
| Alexander while designing a house. It was great.
|
| I'd heard of him, and read those books, because I was (am) a
| computer programmer, and that was before we decided to build a
| house!
| blacksmith_tb wrote:
| Alexander is fun for sure for thinking about how we got where
| we are (I suppose if you were able to build your own house it
| could also be directly used to achieve various goals, which
| would be fun).
|
| Along similar lines I would recommend Donella Meadows' work,
| for example her essay Leverage Points[1].
|
| 1: https://donellameadows.org/archives/leverage-points-
| places-t...
| bennysomething wrote:
| I haven't heard of this book, is it actually about designing
| cities? I'm probably way off but all I can't think of is that
| once we started designing cities we built crap. Take the UK for
| example all its beautiful amazing places were built before we
| had planning offices. They seem to just have evolved.
| gumby wrote:
| No, houses. Each "chapter" is just a page (well both sides of
| a leaf), sort of like The Society of Mind.
|
| One example is (paraphrased) "find the nicest spot on the
| property and don't build on it, because then you'll lose it".
| Another is "corridors are dead spaces; you move through them,
| and pretty much ignore them, on your way to do something".
| Not gospel or absolute rules; rather rules of thumb, or ways
| to talk about and think about what we wanted to accomplish.
| lutarezj wrote:
| I like the list. But, Lisp?
| exdsq wrote:
| On the note of Euclid's Elements, I took a short course on
| Plato's "Theory of Forms" when I was just learning to really code
| and it's what helped OOP click in my head. It's fun when totally
| random subjects help you get an insight into one another.
|
| https://en.wikipedia.org/wiki/Theory_of_forms
| molteanu wrote:
| Yes, those Forms have had a lasting impact on Western
| Philosophy for a long time. I wouldn't be surprised if some of
| it hasn't had some impact on the OOP thinking, in general, even
| though indirectly. If you read on Hume and the British
| Empiricists from the 18th Century, for example, you'd be
| surprised how many "modern ideas" you find in there. After all,
| programming languages at large have a long history of
| philosophical ideas before them. Before they could come into
| being, that is.
| macrolocal wrote:
| Absolutely this! Some Neoplatonist literature distinguishes
| between God qua engineer of forms and God qua reifyer of them.
| And there's object inheritance implicit in their hierarchy of
| forms/angels, ie. Eriugena's that which creates and is created.
|
| Platonism is like ontological OOP. :D
| faizshah wrote:
| Anyone got a non-standard Distributed Systems book pick? Also a
| non-standard Concurrency book pick?
| activitypea wrote:
| https://teachyourselfcs.com
| molteanu wrote:
| Operating Systems: Three Easy Pieces,
| https://pages.cs.wisc.edu/~remzi/OSTEP/
| nomilk wrote:
| Has anyone here read _LISP in small pieces_? I 've never used
| LISP but would still like to read it. Would you recommend it?
| (it's not cheap, otherwise I'd just buy it without the due
| diligence)
| ajsnigrutin wrote:
| You can find it on the typical pirate sites (pdf and epub), I
| haven't been able to find sample chapters elsewhere. Of course,
| if you like it, buy the original to get the physical book :)
| m3047 wrote:
| Spivak, 2nd Edition, is how I taught myself calculus. Teaching
| myself calculus was the deal I made so that the head of the
| university mathematics department would let me take numerical
| analysis as a nonmatric. I have Pearl's ("fancy curve fitting")
| _Heuristics_ on my bookshelf as well.
| irutirw222 wrote:
| I can't comment on the compsci books (they do seem interesting),
| but I can comment on the mathematical ones where I have
| expertise:
|
| - Using Euclid is manifestly a really bad idea, since his way of
| formalizing geometry is not the sharpest. Mathematical logic has
| developed since Euclid published his book thousands of years ago
| and Euclidean geometry has been re-formalized a number of times
| to really flesh out the theory behind it (where the word theory
| is a precisely defined mathematical word), the most well known
| being oerhaps the one by Hilbert (still 100 years old).
|
| - Motivating Spivak with "the most important thing to learn is
| the method. That is, to develop a method for thinking, based on
| demonstration following a fixed and known set of starting-points
| or axioms ...". This can be actually said of any mathematical
| theory (here I use the word 'theory' in its colloquial meaning).
| Studying calculus in particular makes little sens for compsci.
| Rather, graph theory or abstract algebra might be more worthwhile
| to learn - basically any subject that touches theoretical
| computer science significantly.
| neurohdmi wrote:
| Having an understanding of mathematical foundations and proofs
| can be very beneficial to software developers; but I agree
| there are much better books than the ones suggested here.
| "Elements" is an historically important book (arguably the most
| important in math), but like you said is fairly outdated. Real
| Analysis is critical for higher level maths and theoretical
| computer science and does have some value even in software
| development. But with books like Spivak's Calculus you spend
| more time memorizing definitions and theorems than abstract
| thinking or problem solving.
|
| Some better math books that I would recommend off the top-of-
| my-head:
|
| * "How to Solve it" by George Polya - A great book on breaking
| down complex problems.
|
| * "Mathematical Logic" by Stephen Kleene - A much more
| contemporary math book on building axiomatic theories from
| scratch.
|
| * "Godel, Escher, Bach" by Douglas Hofstadter - Also about
| mathematical foundations but for a much broader audience.
| irutirw222 wrote:
| I agree that for anyone wanting to improve "logical thinking"
| these books are a good start. In particular the last one is
| recommended, if you want to start having doubts about logic
| itself and the limits of logical reasoning ;)
| lolinder wrote:
| They don't recommending Euclid as a way to learn geometry, they
| recommend him because his book has been the foundation of the
| scientific dialog for the last several millennia. Regardless of
| whether his formalization of geometry is the most up-to-date,
| every subsequent mathematician and logician has been building
| on The Elements. That fact alone makes it valuable to read, not
| as a way to learn geometry, but as a way to understand where we
| came from.
| [deleted]
| irutirw222 wrote:
| Then you, as Moicanu below, didn't understood my point: You
| learn less from the Elements than from later, curated
| sources. Analogously, no one would advocate reading Newton's
| Principia to "understand where we came from". You would first
| learn the theory (geometry resp physics) with up-to-date
| sources, then read a commentary of the original (which is
| often longer than the original), and only then you'd be able
| to get something out of reading a translation of the
| original.
|
| Thus, by reading the original works you will confuse yourself
| with the obscure notation you will encounter, semi-circular
| arguments and other problems (both the Elements and the
| Principia are riddled with problems), which actually have
| prompted many many scholarly works commenting and fixing
| these.
| mirekrusin wrote:
| One of missing pieces in education is surfacing problems,
| deadends and struggles of different sorts. Shame because
| it's such an insightful part, often allows grasping
| underlying reason for why things are the way they are.
| molteanu wrote:
| I've read the 'original' Elements, indeed. Apart from the
| geometric figures which were not even available in the
| original form of the manuscript, but added later as an aid,
| there is no obscure notation whatsoever. Indeed, there is
| no notation at all. It's all prose.
| irutirw222 wrote:
| If you want to read it more as a historical piece of art
| I wouldn't object; if you want to actually get some
| mathematical insight out of it on the other hand, this
| would be a good starting point:
|
| https://math.stackexchange.com/questions/845288/has-any-
| erro...
| molteanu wrote:
| Nicely said.
| Jach wrote:
| There's a little story told about the philosopher Thomas
| Hobbes, by John Aubrey:
|
| "He was (vide his life) 40 yeares old before he looked on
| geometry; which happened accidentally. Being in a gentleman's
| library in ..., Euclid's Elements lay open, and 'twas the 47
| El. libri I[Pythagorean theorem]. He read the proposition.
| 'By G--,' sayd he, 'this is impossible!' So he reads the
| demonstration of it, which referred him back to such a
| proposition; which proposition he read. That referred him
| back to another, which he also read. Et sic deinceps, that at
| last he was demonstratively convinced of that trueth. This
| made him in love with geometry."
|
| Reading all of Euclid's Elements is a big undertaking, though
| I think you can get a sufficient taste and appreciation of
| iron-clad logical reasoning and demonstration from going
| through some subset of it. Perhaps working through a single
| proposition back through its base propositions, definitions,
| common notions, and postulates will be enough to alter your
| thinking and at least see what's possible. Unlike the author
| I can't tell from discussion sampling if people are ignorant
| of Euclid, but I have been frustrated by 1-on-1 failures to
| win arguments by mathematical proof (e.g. that 0.999.... = 1)
| and such an unwillingness to accept such things shows a
| profound disconnect in how we look at the world. Reading
| Euclid may help that.
|
| On the other hand, lots of software developers are exposed to
| proofs as part of their formal education (those who received
| one), so how much Euclid can add here is questionable, vs.
| actually putting proofs into practice by learning things like
| TLA+, or learning about probabilistic inference which is more
| needed outside crisp and clear worlds like Euclidean
| geometry. Personally I'd sooner have software developers take
| a few minutes to learn and reflect on Chesterton's Fence,
| than working through examples of geometry proofs, and maybe
| some can learn to reduce their bad habit of sloppily
| "reconstructing things from first principles" (where "first"
| is frequently "first thought of").
| molteanu wrote:
| You've missed the whole point.
| AnimalMuppet wrote:
| Could you elaborate? "You've missed the whole point" is
| completely non-helpful.
| throwaquestion5 wrote:
| Quoting the article first paragraph I think is the best
| response
|
| "I view the field of software development as a big logical
| system with highly interconnected and complex parts.
| Understanding such a big systems naturally requires having
| an excellent grasp on the tools used to build them. And the
| most fundamental one is logic itself. What follows from
| what, what are the starting-points or the elementary parts,
| what are the ways of composing these into more complex
| ones, ways to spot complete non-sense in the system and how
| to decompose the complex parts back to more fundamental
| ones to check their consistency and truth. The following
| book list contain titles that are all playing fields for
| one to start experimenting with such systems and gain the
| required confidence that one can master them. "
|
| The recommendation are from that point of view and the
| authors selection from book he actually read and consider
| good for it.
| irutirw222 wrote:
| Standards of rigor evolve with time and the level of
| rigor in the Elements is abysmal compared to today.
| molteanu wrote:
| @throwaquestion5, thank you!
| [deleted]
| readme wrote:
| >Studying calculus in particular makes little sens for compsci.
|
| yeah it makes little sense if you don't want to be able to
| write programs that solve the world's major problems
|
| so if you are content with writing cat picture apps, skip
| calculus
| 0xabe wrote:
| We were just talking about this over lunch yesterday
| (software engineers at a medical device company). I won't
| dismiss calculus, but it was generally agreed that linear
| algebra and statistics were most important, at least for what
| we're doing.
| dhosek wrote:
| Although for statistics (and probability as well), Calculus
| has a way of sneaking in there.
| zuzuleinen wrote:
| Just wanted to thank the author for his project of translating
| the Lessons In Electronic Circuits in romanian. It was so useful
| to me when I was a student at UT Cluj. I remember recommending
| that website to all my peers.
|
| Thanks for your amazing effort!
| molteanu wrote:
| I was a student at UTCN, as well, and I found it hard to get a
| decent book on electronics to learn from. I've found the
| lessons in Electronic Circuits online, used it and then
| translated it for my fellow engineers, that's how much I liked
| it. Unfortunately the original website got hacked, so I did my
| best and recovered the content in its current format.
|
| You're welcome! Thanks for your input!
| dfaiv wrote:
| This looks great - thank you for sharing. Now, if this (getting
| rapidly older) software engineer just knew how to find a
| mid-(late?)-career job change where the interview consisted of
| geeking out about these books instead of if I know how to reverse
| a queue with the least amount of memory...
___________________________________________________________________
(page generated 2022-03-12 23:00 UTC)