Home Projects About

Good books

The Go programming language

Book cover

This is like of the “K&R book” for Go and is a useful reference book for the language.

It has section explain some of the language choice, which helped me appreciate the complexity of language design. It’s also a good reminder of why I need to type so much :)

Time, Clocks and the Ordering of Events in a Distributed System

https://amturing.acm.org/p558-lamport.pdf

Classic paper that should be referred to when you are questioning about order of events.

It’s more or less a must-read when it comes to distributed systems, as the paper clarifies the concept of wall clock, partial order, concurrency, etc…

The C++ Programming Language

Book cover

A comprehensive (yet not too long, by C++ standard) book on C++

Design Data-Intensive Applications

Book cover

A map to the world of databases, message queues and data pipelines.

It presents a high-level overview of data storage and processing systems, prolems they face at scale as well as approaches to mitigate them.

Since the book touched on concepts of distributed systems & system performance, it’s also a good read if you are into those.

Computer Systems: A Programmer’s Perspective

Book cover

It’s a bottom-up book that goes from bits -> program. This is useful to review how computer actually works, which will be important when doing scientific computation, debugging or understanding performance bottlenecks.

It’s also a CMU textbook, thus making it even more legitimate.

Site Reliability Engineering: How Google Runs Production Systems

Book cover

A short intro into what it takes to run reliable software.

Systems Performance: Enterprise and the Cloud

Book cover

Understand performance, from one of experts in the field.

Fooled by randomness

Book cover

Not programming-related, but I feel it’s a good read. I walked away with many concepts on sampling, random distribution, … and learned not to try Russian roullete, even if you give me 1-billion dollar to do it!

Practical Vim: Edit Text at the Speed of Thought

Book cover

Quick intro to Vim, which is my bread and butter now :)

tmux: Productive mouse-free development

Book cover

Quick intro to Vim, which is my bread and butter now :)

Reddit: cscareerquestions

https://www.reddit.com/r/cscareerquestions

Useful read when it comes to interviews, salary negotiation and other workplace problems.

I found a lot anecdotal story of various companies there.


backlog


- The C++ programming language - 4th edition
- Systems Performance: Enterprise and the Cloud
- The C programming language
- Compilers: Principles, Techniques, and Tools (the Dragon Book)
- The Garbage Collection Handbook: The Art of Automatic Memory Management
- Jepsen serires by Aphyr
- [Destroy all software](https://www.destroyallsoftware.com/screencasts)
- The art of computer programming
- The design of everyday things
- The art of UNIX programming
- Seven databases in seven days
- Feyman lectures on computation
- RESTful web services
- Google SRE book