Controversial take: reading books to get better at software is like reading books to get better at swimming. Like people don't get better at math by reading books about math... So you should go read code. But reading code is boring if you're not also writing code (same goes for math) so my real recommendation is to go find a big OSS project in an area you're interested in and start contributing. If you don't know how…
I agree with the gist of your comment but I think people can benefit from books about maths. A classic example that comes to mind is Polya's "How to Solve It". It's about the meta of doing maths (or the tacit knowledge of a great mathematician), not about specific fields or theorems.
Ask HN: What books should I read to improve as a software engineer?
21–30 of 127 posts
Re: Ask HN: What books should I read to improve as a software engineer?
#22For a good understanding of the basics of architecture: https://www.amazon.com/Web-Application-Architecture-Principl...
Re: Ask HN: What books should I read to improve as a software engineer?
#23Re: Ask HN: What books should I read to improve as a software engineer?
#24It's probably useful to un-read Clean Code, though I don't really have a recommendation for a good replacement. The replacement is something like "Make a lot of mistakes and develop good taste based on your experience." If you're interested in performance, you can read https://algorithmica.org/ and https://people.freebsd.org/~lstewart/articles/cpumemory.pdf
I keep seeing this online. Why? Clean Code was instrumental in my improvement as an engineer. Is there a reason why this is the opinion nowadays?
That being said, some of the advice in the book is simply dated, some of it seems to break code down arbitrarily instead of on responsibility.
On top of this, you get people who pedantically follow it and don't let a team of experienced engineers develop a style that works for them it's really annoying and it can make the codebase a bitch to work on.
In the end, it should be a guide. And you should be thinking about what bits to take. But what ends up happening is "uncle Bob says...".
Re: Ask HN: What books should I read to improve as a software engineer?
#25Re: Ask HN: What books should I read to improve as a software engineer?
#26It is quite concise (about 190 pages), but in my opinion, it includes all the essential information that the other books in that category would teach you. It leaves out a lot of cruft that over the years turned out to be non-issues (code styling, problems that come with object oriented programming, etc.) but occasionally - when the topic is popular and widespread (e.g. Uncle Bob advice) - addresses them as alternative opinions. It was first published in 2018 and is therefore not in the out-of-date category.
So I would recommend it as essential read, hands down.
If you want something a bit more elaborate: "The Pragmatic Programmer" has a 20th Anniversary Edition. It is a timeless classic, worth reading at any rate.
That being said, I wish there was a single consistent resource[1] that summarizes truly modern software design philosophy in the sense that it leaves the object orientation inspired ideas behind that did not turn out to be useful and focusses on typed functional programming. Maybe with examples in Typescript and Rust.
[1] Possibly a book, but not necessarily. For me it would be important that it presents a consistent opinion, so it should be from a single author or small group of authors. The information I have in mind is mostly there, but spread out over many blog posts from people with slightly different takes and ideas about them. The overwhelming majority of recommendations in this thread are from authors I'd consider part of the founding generation. I'd love to read about software design from the perspective of a younger generation.
Re: Ask HN: What books should I read to improve as a software engineer?
#27It takes time for them. It takes time for us. The small details are ironed out along the way but the big picture, the concept, is defined/designed before.
Note that I really like the books listed up to now, they are not "dependency injection in Typescript using framework x, y or z" kind of books, more general philosophy of coding (with people). Going to this upper level is for me where you go from good to great. And myself, going to my 50s, I am still learning...
Re: Ask HN: What books should I read to improve as a software engineer?
#28I also have a personal recommendation for when you want to better understand testing, QA, or want to/have to work with QA people. [2]
[1] https://pragprog.com/titles/tpp20/the-pragmatic-programmer-2... [2] https://www.amazon.com/Lessons-Learned-Software-Testing-Cont...
Re: Ask HN: What books should I read to improve as a software engineer?
#29Re: Ask HN: What books should I read to improve as a software engineer?
#30It's probably useful to un-read Clean Code, though I don't really have a recommendation for a good replacement. The replacement is something like "Make a lot of mistakes and develop good taste based on your experience." If you're interested in performance, you can read https://algorithmica.org/ and https://people.freebsd.org/~lstewart/articles/cpumemory.pdf
I keep seeing this online. Why? Clean Code was instrumental in my improvement as an engineer. Is there a reason why this is the opinion nowadays?