Carl's Required Reading
An engineering leader shares his "required reading" list, a curated collection of foundational articles and books on software development principles and practices. This isn't just a list; it's an opinionated tour through topics like Grug Brain, anti-ORMs, and HATEOAS, sparking both nods of agreement and spirited debate. Hacker News found value in the deep technical insights and the opportunity to compare their own "must-reads" with the author's, making it a goldmine for those seeking to refine their craft.
The Lowdown
The author, an engineering leader, presents a public version of his "required reading" list, originally compiled for his team. This collection aims to distill wisdom from experienced programmers, covering topics he considers important or insightful for creating good software. He acknowledges that some opinions (like ORMs being bad) might be contentious, but hopes readers will find value regardless, even if it's just to disagree.
- Coding Practices: Features articles like "The Grug Brained Developer" (emphasizing simplicity), "The Wrong Abstraction" (cautioning against premature generalization), "Complexity Budget," "Locality of Behavior," "Yagni" (You Ain't Gonna Need It), and "Parse, Don't Validate."
- Platform & Frontend: Includes "Steve Yegge’s Google Platforms Rant" for organizational insights, and frontend articles discussing HATEOAS, pure components/hooks in React, and understanding hypermedia systems.
- Databases: A strong anti-ORM stance is evident with "The Vietnam of Computer Science" and "Object-Relational Impedance Mismatch." Also covers PostGIS, PostgreSQL performance tips, and efficient pagination techniques.
- Asynchronous Programming: Highlights "A Conceptual Overview of asyncio" and "What Color is your Function?" to explain fundamental async challenges.
- Encoding: Recommends "The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets."
- Books: Features influential books such as "The Design of Everyday Things," "Designing Data-Intensive Applications," "Crafting Interpreters," "Category Theory for Programmers," and "The Mythical Man-Month."
This comprehensive list serves as a valuable resource for developers seeking to deepen their understanding of core software engineering principles and tackle common challenges with a more informed perspective.
The Gossip
Grug's Grandeur
Many commentators express high praise for "The Grug Brained Developer" article, calling it fantastic and a gem. They appreciate its fundamental message of simplicity, despite its unique stylistic presentation.
ORM Outcry
The author's strong anti-ORM (Object-Relational Mapping) stance resonates with many in the comments. Readers express agreement with the critique of ORMs, noting the long-standing "impedance mismatch" issue and appreciating the call for more direct SQL interaction.
YAGNI's Yields and Yokes
The "You Ain't Gonna Need It" (YAGNI) principle sparks a lively debate. Some champion its utility in preventing over-engineering and unnecessary complexity, while others caution against its potential to lead to balkanized, incomplete, or inconsistently implemented APIs that hinder future development or user experience.
PostGIS Particulars
A reader offers a precise correction regarding the foundational data type in PostGIS, clarifying that 'geometry' is more fundamental than 'geography' and detailing the functional differences. The author graciously acknowledges this input and states he will add a note to his post.
Curated Collection Connections
Many users appreciate the curated list, offering thanks and sharing that they will be adding several items to their own reading queues. Some also contribute their own similar lists of essential readings, fostering a collaborative spirit of knowledge sharing. The enduring popularity of "Designing Data-Intensive Applications" also gets a shout-out.