The Tar Pit¶
A ship on the beach is a lighthouse to the sea - I read the above quote when I had started reading this book, about 2 years back, I have been on and off because this is a book that requires you to be ready, and recently in 2026 I realized what this meant. - This quote is about deployment. About delivering to production, about shipping what you built. - The quote beautifully touches at how a ship stalled on the beach is no different than what a lighthouse is to the sea. It has no purpose, just something standing next to the sea and not entering.
Evolution of the Programming Systems Product¶

When building a product, time estimation works as the above diagram:
- A program takes x amount of time to build.
- A Programming product or a Programming system takes 3x of the time.
- A Programming Systems Product takes 9x the time.
Differences between the products¶
- A Program is complete in itself, ready to run by the author on the system on which it was developed.
- A programming product
- can be run, tested, repaired, extended by anyone.
- To become a generally usable programming product, it has to be written in a generalized fashion.
- A programming system
- A collection of interacting programs, coordinated in a function and disciplined in format.
- The cost may be greater depending on who granular the functions of a programming system are.
- The programming systems product
- This is the intended product of most system programming efforts.
The Joys of the Craft¶
What makes programming fun? - The sheer joy of making things. - The pleasure of making things that are useful to people. - The fascination of fashioning complex puzzle like objects of interlocking moving parts and watching them work in subtle cycles, playing out the consequences of principles built in from the beginning. - The joy of always learning. - The delight of working in such a tractable medium. The programmer, like the poet works slightly removed from pure thought-stuff.
One types the correct incantation on a keyboard, and a display screen comes to life, showing things that never were nor could be.
The Woes of the Craft¶
Not all is delight, knowing the inherent woes makes it easier to deal with when they appear. - One must perform perfectly. Adjusting the requirement to perfection is the most difficult part of learning to program. - One rarely controls the circumstances of his work, or even its goal. Others set your objectives, provide resources, furnish your information. - Designing grand concepts is fun, finding nitty little bugs is just work. - Debugging has a linear convergence, or worse. Debugging feels slow you find one bug at a time, followed by the next. Whereas you had imagined and expected a quadratic approach to the end. - The product upon which one has labored so long appears to be obsolete upon completion. - As soon as one freezes the design, it becomes obsolete in terms of its concepts. - The obsolescence of an implementation must be measured against other existing implementations, not against unrealized concepts.
The Mythical Man Month¶
Good cooking takes time. If you are made to wait, it is to serve you better, and to please you.