Fundamentals 14 min read

Recommended Classic Computer Science Books for Software Engineers

Tencent engineers recommend nine classic computer‑science books—ranging from Hamming’s The Art of Doing Science and Engineering to Kleppmann’s Designing Data‑Intensive Applications and Bryant & O’Hallaron’s Computer Systems: A Programmer’s Perspective—to help software engineers deepen theory, improve practice, and gain fresh insights, with a giveaway for commenters.

Tencent Cloud Developer
Tencent Cloud Developer
Tencent Cloud Developer
Recommended Classic Computer Science Books for Software Engineers

This article compiles nine classic computer science books strongly recommended by engineers at Tencent. The author finds rereading them after starting work to be enlightening.

The list includes:

The Art of Doing Science and Engineering – Richard Hamming’s lecture notes covering the nature of scientific and engineering thought, with insights on good research and the “learning compound effect”.

The Mythical Man-Month: Essays on Software Engineering – Frederick Brooks’s timeless discussion of software project estimation, the non‑linear relationship between manpower and time, and the “no silver bullet” principle.

Probability and Computing – Michael Mitzenmacher’s guide to probability theory applied to algorithms, databases, networking, machine learning and big‑data systems.

The Cathedral & the Bazaar – Eric Raymond’s comparison of the cathedral (closed) and bazaar (open) development models, emphasizing Linus’s law “given enough eyeballs, all bugs are shallow”.

Staff Engineer – Will Larson’s handbook for senior engineers, covering technical direction, mentorship, organizational impact and the danger of “chasing ghosts”.

Software Engineering at Google – A candid look at Google’s engineering culture, describing how software engineering equals 软件工程=代码*时间 , and detailing practices such as version control, CI/CD, code review and documentation.

Economics Rules – Ariel Rubinstein’s reflection on economic modeling, reminding readers that software engineering resembles economics or sociology more than pure mathematics.

Designing Data‑Intensive Applications – Martin Kleppmann’s comprehensive guide to building reliable, scalable, and maintainable data‑centric systems, bridging theory and industry practice.

Computer Systems: A Programmer’s Perspective – Randal Bryant & David O’Hallaron’s textbook that introduces computer systems from a programmer’s viewpoint, widely used in undergraduate curricula.

The author suggests adding these books to a personal reading plan, combining theory with real‑world problems to gain fresh insights.

At the end of the article a giveaway is announced: readers who like and comment may win a copy of “Computer Systems: A Programmer’s Perspective”.

Book Recommendationssoftware engineeringsystem designComputer Scienceprobabilitydata-intensive
Tencent Cloud Developer
Written by

Tencent Cloud Developer

Official Tencent Cloud community account that brings together developers, shares practical tech insights, and fosters an influential tech exchange community.

0 followers
Reader feedback

How this landed with the community

login Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.