24 ms·
Books for Software Engineers in 2023
- deterministic 4y agoI am surprised nobody has mentioned this one. It is free and available online: https://softwarefoundations.cis.upenn.edu/ https://softwarefoundations.cis.upenn.edu/
- glisom 4y agoAs a software engineer, staying up-to-date with the latest developments and best practices is essential for growth. One of my favorite (and what I feel is overlooked) methods for growth is reading books. We spend a large part of our day reading Stack Overflow...
- Panini_Jones 4y agoWhy did you repeat the first 1.5 sentences of the article?
- glisom 4y agoForgot you didn’t actually need to add a comment to post. Been awhile since posting last.
- satvikpendem 4y agoI'd also read the books from Teach Yourself CS (https://teachyourselfcs.com https://teachyourselfcs.com): - Structure and Interpretation of Computer Programs - Computer Systems: A Programmer's Perspective - The Algorithm Design Manual - Mathematics for Computer Science - Operating Systems: Three Easy Pieces - Computer Networking: A Top-Down Approach - Readings in Database Systems - Crafting Interpreters - Designing Data-Intensive Applications Other books I've seen: - Computer Graphics From Scratch - Haskell Programming From First Principles - Zero To Production In Rust
- taquacin 4y agothis is awesome, thank you.
- jayy-lmao 4y agoLove the mention of Zero to Production in Rust. Have read a few Rust textbooks at this stage and this one felt the most practical for my 9 to 5.
- ozanonay 4y agoAs the author of Teach Yourself CS I would definitely suggest against trying to fit this in a year! Maybe aim for CS:APP and 1-2 others, and if you have time for more that's a bonus. Most of these are books to work through, not "read".
- satvikpendem 4y agoThanks for writing it. Yes, definitely didn't mean to imply that it could be done in just a year, just that it's a useful resource in general that people might not know about.
- brawll 4y agoDo you think the list could be updated & there are now some better resources for some of the subjects?
- ggambetta 4y agoAs the author of Computer Graphics From Scratch, I still can't wrap my head around people mentioning it in HN comments. Blows my mind every time :) Thank you and happy new year!
- spit2wind 4y agoA word of warning to anyone reading "The Algorithm Design Manual", there is an error on nearly every other page. https://www3.cs.stonybrook.edu/~skiena/algorist/book/errata https://www3.cs.stonybrook.edu/~skiena/algorist/book/errata https://www3.cs.stonybrook.edu/~skiena/algorist/book/errata-adm3 https://www3.cs.stonybrook.edu/~skiena/algorist/book/errata-...
- viscanti 4y ago[flagged]
- euph0ria 4y agoChatGPT?
- glisom 4y agoGPT-3 output vibes, but I do love reading technical or professional books regularly!
- oa335 4y agoWas this comment generated by ChatGPT?
- deleted 4y ago[deleted]
- glisom 4y agoBased off this https://huggingface.co/openai-detector/ https://huggingface.co/openai-detector/, it looks like it haha
- troon-lover 4y ago[dead]
- dang 4y agoPlease don't do this here.
- superfrank 4y agoI read two of these last year and I'd recomend both, but I wanted to give my two cents on them. The Phoenix Project: I really enjoyed reading this, but it's told as a story about fictional characters working at a fictional company, which I didn't expect. Because of the way it's written, some other people I know who read it found it a bit too fluffy. Also, from what I've heard, it's pretty much an IT focused version of The Goal by Eliyahu M. Goldratt. The Phoenix Project focused more on IT than software development, but there's also a sequel called The Unicorn Project that is supposedly more focus software development and dev ops. An Elegant Puzzle: There's a ton of good stuff in here, but it felt a bit like reading a textbook or a white paper. Larson's writing style is really dense and dry. I found myself reading a paragraph or two and then needing to take time to digest what I had just read, which made it a really slow read.
- andrewf 4y agoI thought The Goal was more generally applicable. Its core idea ("theory of constraints") is described in terms of a factory floor where different workstations have different throughputs/latencies/reliability; you could apply that to a diagram of a distributed system [0], CPU [1] or server [2]. Examples: [0] https://d1.awsstatic.com/architecture-diagrams/ArchitectureDiagrams/connected-airports-using-iot-ai-ml-ra.pdf https://d1.awsstatic.com/architecture-diagrams/ArchitectureD... [1] https://chipsandcheese.com/2022/11/05/amds-zen-4-part-1-frontend-and-execution-engine/ https://chipsandcheese.com/2022/11/05/amds-zen-4-part-1-fron... [2] https://people.freebsd.org/~gallatin/talks/euro2021.pdf https://people.freebsd.org/~gallatin/talks/euro2021.pdf
- quartesixte 4y agoThe Goal is interestingly written as a work of narrative fiction. Which threw me off at the very start. I feel like it would make a great movie a la The Big Short. The academic paper in the appendix is super useful as well.
- Jtsummers 4y agohttps://www.toc-goldratt.com/en/product/the-goal-movie-how-to-version https://www.toc-goldratt.com/en/product/the-goal-movie-how-t... The movie has been made! 46 minutes, I remembered it being shorter for some reason.
- matt_daemon 4y agoBuild is by Tony Fadell (as the book cover in the article suggests), not Derek Sivers
- glisom 4y agoWhoops, thanks good catch!
- matt_daemon 4y agoNo probs :)
- keepquestioning 4y agoHow about "Algorithms for Decision-Making"
- friedman23 4y ago> “Software Engineering at Google: Lessons Learned from Programming Over Time” Isn't Google's software engineering culture kind of a joke right now? I've spoken to multiple ex-Googlers and they tell me they leave because everything moves at a snail's pace. From the outside looking in, it seems like absolutely nothing is being done in Google and I would not want to replicate their engineering culture in any company. Please don't take this as flame bait and I'm open to discussion about what I'm missing. I feel like for people in the know, Google has a reputation for being a "retirement home".
- glisom 4y agoFair criticism, I have seen similar posts and articles about things inside there now. But the book is not so much about the current culture or setting now, but more on the authors experiences and what things have made the company successful long term from an engineering perspective. Good book to get insight on different topics or areas.
- deleted 4y ago[deleted]
- danielmarkbruce 4y agoMany things move at snails pace because when you generate 10's of billions of $$ every qtr, the first thing you want to do is not screw that up. Google's reality is basically not like any other company (except maybe 2-3). Google's engineering culture, at least a few years back, was insanely good given that reality.
- friedman23 4y agoI feel like that's a terrible use of their capital if all they are trying to do is just not screw things up. I'm not a shareholder but if I were I'd rather have my money returned to me than have it spent on a bunch of projects that will get nowhere because the goal is avoid risk taking.
- smadge 4y ago
- losteric 4y agoI recommend "Developer Hegemony". Coming from a career in FAANG, it's helped put words to what bothers me about the power dynamics and management practices. The book also presents a picture of what a healthier and more empowered "software engineering" role/world could look like (one of my 2023 goals is making significant career moves in that direction)
- tra3 4y agoReally great to see a mention of "Developer Hegemony" here. The author compares software engineers to doctors or lawyers. In a law firm, the partners call the shots and the rest of the staff is there to support them. In tech companies, the structure is inverted. The engineers are at the bottom of the power hierarchy, even though it's the engineers that generate the most value. The author suggests that developers should instead become "efficienciers". Rather than being code monkeys, "efficienciers" are able to solve problems via their use of technology. @losteric I've been thinking about this book for a while. If you're willing to share what your plans are, I'd love to hear more. To me it sounds like some sort of freelancing which is rather daunting.
- alltheworlds 4y ago> In a law firm, the partners call the shots and the rest of the staff is there to support them. In tech companies, the structure is inverted. The engineers are at the bottom of the power hierarchy, even though it's the engineers that generate the most value. Hmm, as a software engineer, I'm not so sure this is true. I'd have to sell my product to generate revenue, and I'm not a very good sales person. I can't just generate value by writing code. I need people to pay me money to use that code.
- tra3 4y agoI agree 100%. The last thing I want to do is sell ('cause I've done it before). I'm terrible at it. But: > “Consider a law firm. Do the founding partners go out and hire a Lawyer Manager to order them around, and then do they hire a VP of Lawyering to order the manager around? Do they then hire a CEO to rule over everyone and a CFO to handle the finances and a COO to schedule court dates and such? Of course not. There’s no historical precedent for all that fluff. Rather, they handle facets of the business themselves. What they can’t or don’t want to handle, they delegate to subordinates that they hire. The partners don’t specialize in finance, sales, marketing, or operations. That would be silly. But they understand enough about it to act as the boss.” Can I be successful as a terrible salesman with a product? Sure I can. Can an amazing salesman be successful without a product? Nope.
- galoisscobi 4y agoI read Build, The Pragmatic Programmer and A Philosophy of Software Design last year. All three were excellent reads. My favorite take away from A Philosophy of Software Design was to try to make low-level functions more general and high-level functions application specific/concrete. I have been working on improving my API design skills, and I felt that particular insight helped evolve APIs nicely as the spec updates or I need to add new features to my projects and reduced the need for refactoring and big design revisions.
- User23 4y agoA Discipline of Programming by Edsger Dijkstra. It’s an approachable introduction to a frankly under-taught approach to programming. Being able to apply mathematical reasoning to programming is perhaps the main reason to use a functional approach. But mathematical reasoning isn’t restricted to functional style programs! All imperative programs can be described by purely functional mappings between points in a program state space with each in scope variable naming a dimension.
- rramadass 4y ago>All imperative programs can be described by purely functional mappings between points in a program state space with each in scope variable naming a dimension. ... Using Predicate Calculus. I said the same thing here: https://news.ycombinator.com/item?id=34206888 https://news.ycombinator.com/item?id=34206888 We Dijkstra fans have to stick together :-)
- llimllib 4y agoA Philosophy of Software Design is excellent, I dislike almost all programming books but that one is great.
- trentnix 4y agoIt's one of my favorites. I've read it a few times and always find it insightful and motivating. It's an easy, quick read that I recommend to anyone that wants to build better software.
- henrik_w 4y agoAgreed, it's a good book, although everything in it isn't great. I think he goes overboard when it comes to comments for example. Probably most famous for the concept of "deep modules" (the interface should be a lot simpler than the implementation), which I like. I also really liked the idea about defining errors out of existence, e.g. a substring method can be defined in a way that it never needs to throw any exceptions. I've written a longer review of it here: https://henrikwarne.com/2021/07/12/book-review-a-philosophy-of-software-design/ https://henrikwarne.com/2021/07/12/book-review-a-philosophy-...
- smohare 4y ago[dead]
- Waterluvian 4y ago“This book is a must-read for any serious software engineer.” This isn’t necessarily wrong but it always reminds me of the era when I had severe impostor syndrome. I haven’t read any of these books and I’m doing very well. I guess I’m just not serious enough. :)
- deleted 4y ago[deleted]
- Sytten 4y agoThose comments always come off as extremely pretentious to me. There is not a single way to be “serious" and anybody telling otherwise just has a big ego...
- Apocryphon 4y agoNot only pretentious, woefully unhip. SICP was popular on HN for as long as the site has been around, everyone knows it's worth reading. pg wrote an Amazon review about it in 2000.
- jxf 4y agoI tend to interpret these as not "if you don't read this, you're not a serious software engineer", but rather "if you're a software engineer, you are more likely to enjoy this book".
- 4y ago
- eatonphil 4y agoReading books is great! And curating a list is useful and fun. But you have to be pretty careful when you say things are a "must" since that's... pretty hard to prove (and can just make people feel bad). And the proof has already been pointed out as not true in this thread. Unless we all want to start evaluating eachother's programming ability virtually. Again, lists and reading is great! And it's probably better to (try to) read any of these books than not. But for the folks who try the books and can't get through them (like me and SICP), I'd say don't worry about it. I have my own [0] list of books I think devs should read but I just try not to say "must read". [0] https://notes.eatonphil.com/books-developers-should-read.html https://notes.eatonphil.com/books-developers-should-read.htm...
- fm2606 4y ago1,000% agree. I can not stand the dogmas: You "must" read this, you "have" to use this IDE/text editor, you will perish a slow painful death if you program in language X and not language Y. Read what you want, use what you want, please share with me what you like and don't like but please do not tell me what I must do and I must use.
- CalChris 4y agoSICP shouldn’t be on this list. Few people actually read it and most just worship it unread like a bible. It was Hilfinger’s assigned text in 61A at Berkeley but without any assigned readings. On the other hand, The Little Schemer which has a lot of the important ideas from SICP might be on a list such as this. But it’s too accessible to warrant much respect.
- kamaal 4y agoTHIS PLACE IS RESERVED FOR JELLY BEAN STAINS . . . . . The whole The Little|Seasoned|Reasoned Schemer plus its other variants The Little ML'er|Java|Prover|Typer are some of the most mind bending books that you will ever read ever. And it is not the just the end result. Reading these books well will teach you socratic method of teaching/learning, which is great in itself. And will help you teach yourself a wide variety of concepts. Only real problem is many people struggle to adopt to that socratic approach and for somebody who is not into it will just not get it. Have seen this time and again, while I had my jaw on the floor reading them, some of my colleagues could barely progress beyond the first few pages. So they aren't exactly accessible to everyone. . . . . . . . NOW GO CONS SOME CAKE ONTO YOUR MOUTH.
- Jtsummers 4y agoWhy are people downvoting and flagging this comment? The top and bottom are literal quotes from The Little Schemer and the rest is just a short review of the books and an honest assessment of the trouble with the Socratic method (it doesn't work for everyone).
- komali2 4y agoBecause it's a weird comment that looks like spam and is basically incomprehensible for it until you added context. Thanks for doing that, btw.
- kamaal 4y agoThe Little _________ books themselves are strange, you will either get them or you won't. So it is already a binary classification. The books don't follow a normal book like flow and its basically a giant teacher-student like 1 - 1 mentoring-- building the lesson up from basic axioms, revealing the rules of play slowly, and helping you discover the concepts yourself along the way. . . . . . . TOP ANCHOVY WITH CHEESE.
- imranq 4y agoI guess the question is: what is the maximum number of pages from these books one can realistically digest and internalize in a year and how do sort on those pages for the most valuable ones
- sigjuice 4y agoIt took me a year to work through the first three chapters of SICP. I skipped three exercises which weren’t motivating enough for me.
- Apocryphon 4y agoThe Building a Hard Business When Thing There Are No About Easy Answers Hard Ben Horowitz Things
- rr808 4y ago"Vert.x in Action" Julien Ponge (2020). I've been reading it for a new job I'm in that uses Vertx. Best framework and textbook I've seen in years. So refreshing to write Java without Spring magic. I'm not loving reactive everything, but its powerful. Its more than just about Vertx though as it has a great simple demo project that uses Mongo, Postgres, Zookeeper, Kafka, Artemis in containers, which is some other components I've been trying to make use of too.
- deleted 4y ago[deleted]
- swagonomixxx 4y agoI see SICP listed on every list but I really feel its becoming Knuth-esque. I mean, I didn't learn through that specific book, but after going through it a couple of years ago I found that its kinda alright, but I don't really get this legendary status it has. I've also seen this opinion shared with many seasoned vets throughout my career, just feels overrated.
- hintymad 4y agoThe book’s idea will carry us for many years but the book is introductory nonetheless. A few years of rigorous CS education definitely calls for deeper materials, but I wouldn’t call the book “overrated”, at least not for novice engineers.
- wdr1 4y agoMaybe it depends on where you are in your journey when you came across it? For me, I came across it in the early 90s, as it was the first text for my CS class in college. I devoured it and it still holds a special place in my heart. If I read it for the time now, would it be the same? Possibly not. (To wit, I read _The Catcher in the Rye_ for the first time in my 40s. I found it "meh" but can understand how reading it as a teenager would hit me differently.)
- EFreethought 4y agoSICP is on my to-do list. WRT when people do it: I have heard from some people that they tried going through it early in their career on their own or as part of a course, and either they could not finish it or did not see what the big deal is. But then they tried again years later, and they could see why so many people recommend it.
- papandada 4y agoDefinitely, the journey is a meeting of inner state with exterior environment. I read Catcher in the Rye in my teens (but almost 50 years after first being published, in the 90s) and also found it meh.
- chan-dev 4y agoI'm just starting to get into reading books to upskill myself. I'm just curious, do the knowledge you gain in these books not outdated and still applicable to modern software development?
- Jtsummers 4y agoMost of these aren't directly about any specific technology, SICP itself containing general programming concepts but using Scheme being an exception. The Phoenix Project and A Philosophy of Software Design are good examples of my point, absolutely nothing in them is technology specific. TPP is about project management and organization more than software, just written in a context of IT system development. Philosophy is about developing software more directly, but while the examples are in Java nothing about it is tied to Java specifically.
- chan-dev 4y agoGot that. Thanks for your insights. Will take a look at these books, since i'm looking for books to read this year.
- nigamanth 4y agoAre there any books regarding the history of programming? Going from Visual Basic to Vim to all the fancy languages we have today. Or anything on how what we write as code gets translated into binary and what happens to our computers when the code processes?
- eliasdaler 4y agoCheck out "Code: The Hidden Language of Computer Hardware and Software" by Charles Petzold. It goes back to the earliest days of computation (Charles Babbage, etc.) and then shows how it evolved into computers we have today. It doesn’t talk about programming language history a lot, but shows how assembly works.
- ducharmdev 4y agoAnd here I thought software developers were allergic to history
- henrik_w 4y agoA new book I read in 2022 that I can really recommend is Effective Software Testing by Maurício Aniche. Very pragmatic, useful tips on how to write tests. I have been developing SW (and tests) for a really long time, but I still learnt a lot from it. A more detailed review here: https://henrikwarne.com/2022/06/19/effective-software-testing-a-developers-guide/ https://henrikwarne.com/2022/06/19/effective-software-testin...
- khana 4y ago[dead]
- agomez314 4y agoI find that the practice of "software engineering" has a fuzzy distinction to "computer science." I highly recommend the following books that helped me out on that journey: - Continuous Delivery by Jez Humble and Dave Farley - The Pragmatic Programmer by Andy Hunt and Dave Thomas - A History of Modern Computing by Paul E. Ceruzzi - Version Control with Git by Prem Ponuthorai and Jon Loeliger - and SICP. Understanding it is like accessing a new dimension of power.
- 62951413 4y agoI wonder if it's time to prioritize newer books with mysterious titles such as "Transfer Learning for Natural Language Processing" over traditional SE books. I imagine this year we'll see some "Programming in chatGPT" ones too. Are we experiencing a revolution in code generation or is it mostly hype still?