Ask HN: Technical Summer Reading List
I usually enjoy reading something thick and technical during my summer vacation, to learn something new and not necessarily work-related. This year, however, I am not sure which book to pick up. I would love to see what's on your summer reading lists.
My recent favourites:
Bayesian Data Analysis, 3rd ed, by Gelman et al
Designing Data-Intensive Applications, by Martin Kleppmann
The Art of Electronics, by Horowitz & Hill Does math count as "technical?" I was originally a Physics major and lately I've been on a kick of filling in the mathematics that was used in my Physics classes but that I feel like was never really gone into in much depth. My current reading list is: - "Analysis I" (and II) by Terence Tao (I finished the first volume and am now on the second, but I consider them really one book) - "Understanding Analysis" by Stephen Abbott - "Topology Through Inquiry" by Starbird and Su - "Introduction To Topology And Modern Analysis" by George F. Simmons The Terence Tao books are amazing so far. Extremely readable introduction to Real Analysis. Abbott also came highly recommended and from reading the first couple chapters I can see why as it also seems to be very readable. I don't know if it would be a better introduction than Tao, but it covers mostly the same material and I think having two different perspectives will really help solidify things for me. Once I finish those, I'll see whether I want to go deeper into Topology or move to Complex Analysis or Differential Geometry. I also have a copy of Emily Riehl's Category Theory in Context. I've read some Category Theory before and have a basic grasp, but after reading a few pages of her book, I put it aside until I feel like I'm much more well versed in Topology (the content looks amazing and I really want to read it, but it relies on Algegraic Topology more heavily than other Category Theory material I've seen). So I'll see where I'm at after getting through those Topology books. Riehl's "Category Theory in Context" is great. It's one of those books where every page really takes a couple hours to fully absorb. It pairs well with Milewski's "Category Theory for Programmers" [1] series, which is comparatively lighter and gives some concrete examples. [1] https://bartoszmilewski.com/2014/10/28/category-theory-for-p... Yeah, I watched his video series on Youtube a couple years ago and really enjoyed them. Definitely a good introduction to the topic. Snap. I am also a physicist trying to learn math.
In my case it's: - Introduction to Analysis (Mattuck) - Elementary Differential Geometry (Pressley) both chosen because they have solutions in the book, which I find important for self-study. Also just got (hot off the presses) Visual Differential Geometry and Forms (Needham) Looks fantastic! Topology is next on the list... "A Geometric Approach to Differential Forms" by Bachman is the one that's in my Amazon shopping cart, but I'll take a look at those others as well. What would you say are the prerequisites to the Analysis books? I did single-variable calculus and linear algebra in university a few years ago, but I have to admit that I'm a bit rusty. I'd definitely recommend having taken a college level Calculus course before and you'll get more out of it if you are basically comfortable with Abstract Algebra (know what sets, groups, rings, and fields are, and be able to think fairly abstractly about operations on those kinds of objects). That said, I think you could get through the first one with just high school level pre-calc although I think it would be hard to motivate yourself if you don't know enough calculus to see where it's heading. It does an absolutely brilliant job of starting with Peano's axioms to define the natural numbers, using those to define integers, using integers to define the rationals, introducing Cauchy sequences and using them to define the Reals, then introducing limits, continuity, etc. and Riemann integrals. That whole part is pretty much self contained with each concept rigorously (but clearly) built out of the previous ones. Some basic algebra and the ability to follow a mathematical argument are pretty much all you need. As it gets into the second volume, it expects some familiarity with logarithms and starts building into more advanced Calculus. It's still fairly self-contained but you might struggle if you don't remember, eg, what integration by parts looks like. You can check the analysis courses offered where you took calc and linear algebra to see if you have sufficient prereqs. Depending on the level of comfort or exposure you've previously had to proofs, it could be good to have a book covering introduction to proof handy. A book on counterexamples in analysis is also something I've seen recommended. For proofs, something that covers direct proof, proof by contrapositive, proof by contradiction, and mathematical induction are good to be familiar with. Delta-epsilon proofs are also good to have alternative or more accessible explanations to draw on. If you're covering topics in multivariable calculus, then it might also be handy to cover some of the calculations from a calc 3/4 book to see implementations of it. A good intro real analysis book will have no prerequisites, really! I learned from Ross, "Elementary Analysis: The Theory of Calculus", which starts with sequences of natural numbers. (I'm of the opinion that the usual Calc1+2+3 sequence should be scrapped in favor of everyone taking "Advanced Calculus" first. It should probably even be taught in 10th/11th grade in place of the dreadful "pre-calc" courses many schools have. Calculus didn't click for me until my first proof-based course. That's also when I learned that a "proof" is just a detailed explanation of exactly why something is true.) I'll be reading Domain Modeling Made Functional [1], which seems fun as it applies F#/ML/FP concepts to "enterprisey" DDD. [1] https://isthisit.nz/posts/2019/domain-modeling-made-function... My friend read that two years ago and now works for a small F# consultancy that sounds like a great place to work. He really recommends the book. Thanks for sharing. Just curious what do people do with F# in real work nowadays? Always found it a bit peripheral comparing to Lisp, Clojure and other "main stream" functional languages. From what I've heard it's mostly fintech, at least in places nearish where I live (Italy) Interesting. Thank you, I thought they all use C++. Yeah GP is right it's mostly fintech (I think G-Research is one of the larger users?) but Matt is working in domain-heavy apps like real estate where it works nicely Category theory for programmers is also a great read if one is into FP. [1] https://bartoszmilewski.com/2014/10/28/category-theory-for-p... It's a great read. I love how it shows the entire thinking process from requirements gathering through to delivery. I will check it out. I very much enjoyed his talks Eric Evans' Domain-Driven Design. I've heard enough about DDD over the years that I figured I'd just go to the source. Liking it so far, I have some good takeaways but we'll see how effectively I'm able to use the ideas over the next couple years. Martin Kleppmann's Designing Data-Intensive Applications. Based on the frequent praise it receives here, haven't gotten far yet. I have some project ideas (for personal and professional projects) that could benefit from reading through it. Martin Fowler's 2018 update to Refactoring. I read the original one a long time ago. In context, we have a work lunch & learn series and I'm interested in doing some presentations on the topic of refactoring (why, how, and when in particular) so it seemed appropriate to refresh my memory on some specific terminology from the book as well as to see if it's an appropriate book to recommend to colleagues. My recollection of the first edition is that I'd recommend it to colleagues, but it's been so long I'd rather read it once more before actually recommending it. I reread Robert C. Martin's Clean Code based on some recent discussion here where it was rather strongly dismissed by a fair number of people. I didn't recall it being bad, my reread confirmed it is not, in fact, bad. Java-heavy, which is now an unpopular style of OOP, but otherwise a very good book. I'd still recommend it to junior colleagues paired with some caveats about avoiding seeing the world in black & white. There is no singular Way of Programming, but learn various ways and find what works for you and your team. There are some more, but it's almost 5am and I haven't been able to sleep so I don't recall everything that's in the book stack or ebook queue. These are the ones I'm most interested in at present. Mine are sociology, philosophy, and programming: La technique ou l’Enjeu du siècle (The Societal Society) - Jacques Ellul [0] A New Critique of Theoretical Thought - Herman Dooyeweerd [1] Surveillance After September 11 - David Lyon [2] The C programming Language - Brian W. Kernighan and Dennis M. Ritchie [3] [0] https://www.jacques-ellul.org/les-grands-themes/la-technique [1] https://herman-dooyeweerd.blogspot.com/2018/12/dooyeweerds-c... [2] https://www.sscqueens.org/publications/surveillance-after-se... [3] needs no intro here on hackernews I just started reading "Emergence: The Connected Lives of Ants, Brains, Cities, and Software" by Steven Johnson. Not a highly technical piece, but heard that it should be one of the must-reads for anybody in tech. I would recommend reading/implementing the below: 1. 'Write a Interpreter in Go' by Thorsten Ball 2. 'Write a Compiler in Go' by Thorsten Ball 3. 'Crafting Interpreters' by Bob Nystrom 4. 'Ruby under a Microscope' by Pat Shaughnessy 'Crafting Interpreters' by Bob Nystrom is such a joy to read. I recently started working through the first volume of "Software Foundations" [1] by Pierce et al. If anyone wants to learn Coq with me this summer, feel free to email me at [hn username]@gmail.com :) Out of the Crisis by Edwards Deming is one of those books I think should be read by anyone who is a... human? And active professionally, I suppose. I read this one about 5 years ago, found it in the office library with a bunch of other books it was clear our managers had never read. It was eye opening in many ways (crap, nothing new in the world, literally everything I had tried to improve was also a problem 30-50 years earlier), but a very good read. Easy to take in small chunks since it's not really a narrative, you can go chapter-by-chapter or section-by-section through it as you have time. The Denial of Death by Ernest Becker is also good I came here to recommend "Statistical Rethinking" but if you have read(and understood) the Gelman one, you can skip it completely... I'm planning to read - Structure and Interpretation of Computer Programs (SICP). A classic. - Crafting Interpreters. Intro to compilers for me. - Deep Learning for Coders with Fastai and PyTorch. There's some other books in there too, but I'd be really happy if I finished these. I don't have a degree in CS, and most of what I know is self taught. My goal here is to fill in gaps in my knowledge as best I can. SICP takes _ages_. I'm working through it myself but have realised it's going to be a background project for the next year or so. No idea how MIT freshman do it so quickly! Indeed. SICP does take ages. I only worked through the first three chapters and it took me a year. I skipped a handful of problems that simply didn't interest me enough. This was several years ago and I hope to pick up from where I left off some day :/ I figured that they don't have to work on most of the exercises. If you want to do that it will take forever. I'd say if I want to try it I'll just work on lab projects and just a few exercises just to warm up and stop whenever the problem is too difficult for me. Attempting to self study statistics and econometrics in a serious way. I just finished Casella and Berger's "Statistical Inference". I'm about halfway through Shumway and Stoffer's "Time Series Analysis", but then next on the list, in the order I tend to read them: I'm a lot into how to streamline data architectures, especially around ML solutions, so some titles related to that. I'm already reading Kleppman's book right now. Tons of very useful knowledge, although quite detailed, and a lot of details around distributed computing, consensus algorithms etc (Part II), which I'm not sure I will need and which make the book rather long. Still, surely worth pressing through. Some titles I would like to dive into in the summer: - "The Art of Immutable Architecture" by Michael Perry.
Possibly also: - "Machine Learning Design Patterns" by by Valliappa Lakshmanan et al. - "Building Secure and Reliable Systems" by by Heather Adkins et al. And perhaps something lighter, more inspirational for the day to day work: - "Coders at work" by Peter Seibel https://en.m.wikipedia.org/wiki/The_Goal_(novel) Not so technical but it's interesting and engaging. - "The Theoretical Minimum: What You Need to Know to Start Doing Physics" by Leonard Susskind. I'm reading the entire series and it's very clear and interesting, definitely recommend if you want to get into physics. - "Speech and Language Processing (3rd ed. draft)" - Really good intro to natural language processing. - Kar by Orhan Pamuk - not a technical book just an intriguing fiction book in turkish I want to read to work on my Turkish;. The Art of Electronics is on my technical reading list as well. If you are into Clojure, you will probably enjoy Elements of Clojure by Zachary Tellman. It is not a tutorial, it's more like an attempt to bring tacit knowledge of idiomatic programming practices into light. My planned summer reading list: - High Performance Browser Networking by Ilya Grigorik - Refactoring: Improving the Design of Existing Code by Martin Fowler - Designing Data-Intensive Applications by Martin Kleppmann How did you find the latter? I'm a FE developer, so quite keen to get my hands on in data. Kleppmann's book is great, it will be well worth your time. I read it cover to cover. He takes care to be consistent and explicit regarding terminology, so it has helped me put a lot of bits of "knowledge" (and confusion) about distributed systems into perspective. Grigorik book is awesome, must read Can you please name its title? I'm curious about it. For me it will be Black Hat Go by as I'd like to learn Go and it seems like a fun way to do it in the cybersecurity setting. I really liked Digital Computer Electronics by Albert Paul Malvino. Steve McConnell - Code Complete (Second Edition) is really good. some "out there" suggestions: - "Extremal Combinatorics" by Staysys Jukna - "Convex Optimization" by Boyd and Vandenberghe - "Delay Insensitive Circuits" [1] - "An Introduction to Mathematical Cryptography" by Hoffstein, Pipher, and Silverman - "Quantum Computing since Democritus" by Scott AAronson [1] https://www.delayinsensitive.com disclosure: I'm the author. I'm not sure "Convex Optimization" by B&V is a good self-study book. I really struggled with it as student, and I struggled to teach with it as a TA. It's one of those "Step 2. Draw the Rest of the Owl!" books. Great as a reference manual, but not great pedagogically. It's very complete and I would struggle to name anything better, though. Mostly, I learned convex analysis by scouring Google for lecture notes written by random professors, then cross-referencing with B&V. How is the notation and standards in convex optimization? I took a course linear programming out of Vanderbei's book and it seemed any time I used google to find notes that everyone used slightly different notation or methods. For example, Vanderbei used the dictionaries and others used the tableau. It's quite a mess, since discrete optimization is quite an old topic used by many different fields (engineering, statistics, sciences, math) each with their own notation/terminology. One of the merits of the B&V book is the relatively clear/precise notation, and they've made an effort to disambiguate. That's why it's so well-regarded as reference material. Going to be reading:
- Staff Engineer
- Thinking in Systems: a Primer
- Team Topologies And for fiction:
- The Master and Margarita Might re-read peopleware again as well. Building a Career in Software is a good one I read recently. Did not finish Clean Code yet but enjoying it so far too. A side question: How many days of vacation do you take in summer? For parents and non-parents. In Sweden is not unusual for parents of small children to take 6 weeks of summer vacation.
I'm having 6 weeks this summer but I'm in-between jobs.
Other either ask for unpaid days or they use some of their saved parental leave. Your employer can't deny you parental leave. Wow this makes me want to find a job in Sweden :) I'm in Canada and looks like most of my colleauges don't take 6 weeks away. They try to send their children to summer camps for the summer break. But it would really be nice if you can have 6 weeks off in summer and maybe 3 weeks off during winter. A lot of things can happen and you can learn new things. I don’t often read technical books in the summer, but when I do, I read Knuth. Just started on Understanding Formal Methods by Jean-Francois Monin. - Designing Data Intensive Applications - Martin K - Kubernetes Up and Running - The Joy of Kotlin -Applied Incident Response -Incident response in the age of cloud -Warning Intelligence Handbook Brain Computations, What and How, by Edmund T. Rolls https://www.amazon.com/Brain-Computations-Edmund-T-Rolls/dp/... The Bible Quran for sure!
The best ever book that you *must* read! See:
https://quran.com/ (With Translations)
https://tafsir.app/ (ARABIC) Does anybody just read the Quran? I listened to some comparative religion lectures by Huston Smith where he said basically it's impossible to just read. He tried it and didn't understand it. It's a book that is very hard to get into without an existing knowledge of Islam that comes from somewhere other than reading the Quran. Eventually he began to understand it after a lot of background reading from the Sufis. An Atheists Perspective ...
https://www.youtube.com/watch?v=2AvepssBwzY Reading the Quran ... from "The Greatest Lier in History" ... https://www.youtube.com/watch?v=n527uhH6RWE I appreciate learning other cultures, but why the Quran? Seems heavy - why not some sociology textbook on Islamic culture? "... Quran presents life as more; like it uses a symbol - like a book ..."
https://www.youtube.com/watch?v=VdzbzkJ1mjg
There's a fair amount of overlap between these books, so it's not quite as much as it seems. But i'm hoping to make it through at least a chapter a week this year, which should get me most of the way through them. We'll see how it goes. - Theory of Point Estimation Casella/Lehmann
- Bayesian Data Analysis 3rd ed.
- Convex Optimization - Boyd
- Econometrics - Hayashi
- New Introduction to Multiple Time Series Analysis
- Elements of Statistical Learning
- Machine Learning: A probabilistic perspective