Clearing Up My Reading List
I save a bunch of things to Google Keep intending to read them later. Let's actually go through these notes and read it.
It seems like a web app for personal productivity, with support for managing task lists, notes and a calendar. I am not planning to using a cloud-based productivity system where I don't self-host the data, so I'm not interested in using it myself. What caught my eye was that the landing page is very attractive, and I'm stealing some of that style and ideas if I need to make anything that attempts to sell an online product.
“On time management” by Terrence Tao
I find it interesting that he finds his ability to perform productive work to fluctuate and depend upon his current level of energy and enthusiasm, which resonates with me. It may be better to recognize this as a human quality, and I do struggle with maintaining focus and enthusiasm in a complex project for a sustained time.
Tao brings up the importance of splitting up a large task into self-contained ones. Each subtask can be done individually in a focused manner with its own sense of closure and reward. While low-focus tasks may be done in batch and at the same time, high-focus tasks are better done individually and with minimal interruption.
A dedicated system for managing his tasks and offloading commitments from his head seems to be also a tool Tao chooses, but he warns that devoting too much time to managing time (say, more than 1~5%) might get in the way of doing actual productive work.
His final advice is to not let systems and planning get in the way of serendipity and embrace what feels right in the moment.
“Software engineering books to read and reread” by Quentin Delcourt
The idea that a book is not important due to its particular language or technology, but instead important for transmitting timeless ideas (which may happen to be implemented in a way or another), resonates with me. I do find the fundamentals to be so powerful, despite any underlying technology, because it allows me to boil down any to the concrete thing that is happening to a level I can leverage my previous experience.
I will take on one book recommendation: “Domain Driven Design”, by Eric Evans.
“Post-apocalyptic Programming” by zserge
This posts describes a Forth implementation done in as little as 400 lines of C. I'm always fascinated with simple and understandable systems, as I feel they review some underlying truth about computation. Today's modern computers are very deep and complex, and it takes a lot of time to fully understand any part of it, so we operate on simplified models of the parts we have to interface with.
Wren -- “A classy little scripting language”
Again in the theme of simple and understandable implementations, wren is an interpreter for a scripting language under 8000 lines of code. I find it interesting to skim through the code and figure out how certain expected elements are implemented, such as objects and garbage colection, how they split up the interfaces in
.h files and in general what choices they make under the constraints that C provides.
“An opinionated guide to scheme implementations” by wingolog
I find it interesting that Lisp/Scheme is in principle so simple, but it has multiple diverging implementations which are not interoperable. Maybe if it were “harder” or more complex, we might have more consistency. Well, for what it's worth, I an more concerned in absorbing the neat ideas of functional programming into my own habits, but not in running Lisp/Scheme code in any practical context.
“10 Best Programming Books You Need to Read” by hackr.io
This ad-infested website has a list which I think is a consensus among seasoned programmers:
- “Clean Code”, by Robert C. Martin.
- “Introduction to Algorithms”, by Cormen et al.
- “Structure and Interpretation of Computer Programs” (SICP), by the MIT Press.
- “The Clean Coder”, by Robert C. Martin.
- “Code Complete”, by Microsoft Press.
- “Design Patterns”, by “the Gang of Four” (GoF).
- “The Pragmatic Programmer”, by Hund and Thomas.
- “Refactoring”, by Martin Fowler.
- “The Art of Computer Programming”, by Knuth.