
It is not at all surprising that Programming Pearls has been so highly valued by programmers at every level of experience."--BOOK JACKET.
Pike and Kernighan's "The Unix Programming Environment", and their later book "The Practice of Programming"
Usenix put out a refereed journal "Computing Systems" that was really good: https://www.usenix.org/publications/compsystems/computing-sy...
- `Little’s Law`: The average number of objects in a queue is the product of the entry rate and the average holding time - Response-time formula for a multi-user system: - Assume n users of average think time z are connected to an arbitrary system with response time r. - Each user cycles between thinking and waiting-for-response, so the total number of jobs in the meta-system (consisting of users and the computer system) is fixed at n. - If you cut the path from the system's output to the users, you see a meta-system with average load n, average response time z + r, and throughput x (measured in jobs per time unit). - Little’s Law says n = x × (z + r), and solving for r gives r = n/x – z.
I didn't feel like my code became better or easier to maintain, after reading other programming advice books, including "Clean Code".
A distant second recommendation is Programming Pearls, which had some gems in it.
Based on the discussions from the provided Hacker News threads, here is a list of ten notable books recommended by users, particularly in the context of software engineering and programming:
## Top Ten Recommended Books
- *The Pragmatic Programmer* by Andrew Hunt and David Thomas A classic in software development, this book offers practical advice and principles for programmers.
- *Clean Code: A Handbook of Agile Software Craftsmanship* by Robert C. Martin This book emphasizes writing clean, maintainable code and has become a staple in programming literature.
- *A Philosophy of Software Design* by John Ousterhout This book provides insights into software design principles and the importance of simplicity in design.
- *Domain-Driven Design: Tackling Complexity in the Heart of Software* by Eric Evans A foundational text for understanding complex software systems and how to manage them effectively.
- *Designing Data-Intensive Applications* by Martin Kleppmann This book covers the principles of designing applications that handle large volumes of data efficiently.
- *Refactoring: Improving the Design of Existing Code* by Martin Fowler Focuses on the process of refactoring code to improve its structure without changing its functionality.
- *Code Complete: A Practical Handbook of Software Construction* by Steve McConnell This comprehensive guide covers best practices in software construction and coding techniques.
- *Effective Java* by Joshua Bloch A must-read for Java developers, this book provides best practices for writing robust Java code.
- *The Mythical Man-Month: Essays on Software Engineering* by Frederick P. Brooks Jr. A classic work discussing the complexities and challenges of managing software projects.
- *Programming Pearls* by Jon Bentley This book presents programming problems and solutions that enhance problem-solving skills and algorithmic thinking.
These books are highly regarded within the programming community and cover a range of topics from coding practices to software design philosophies, making them valuable resources for both new and experienced developers.
Citations: [1] https://news.ycombinator.com/item?id=41387062 [2] https://news.ycombinator.com/item?id=35929112 [3] https://news.ycombinator.com/item?id=32130578 [4] https://news.ycombinator.com/item?id=41387062 [5] https://news.ycombinator.com/item?id=35929112 [6] https://news.ycombinator.com/item?id=32130578 [7] https://news.ycombinator.com/item?id=29498220 [8] https://news.ycombinator.com/item?id=29306651