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