这是一份“程序员阅读清单”的第一部分,包含 50 篇技术文章的介绍:
- 学习相关:如“10 Things Software Developers Should Learn about Learning”探讨了人类记忆等学习关键概念,挑战了一些常见观念。
- 自我激励:“Managing My Motivation, as a Solo Dev”分享了独立开发者管理自我激励的实用技巧。
- 语言性能调优:“One Billion Row Challenge in Golang - From 95s to 1.96s”涵盖 Go 语言性能调优的多个主题,过程标准化且文章写得好。
- 软件质量成本:“Is High Quality Software Worth the Cost?”将软件质量分为内外两类,说明投资内部质量可降低成本。
- 抽象与复用:“The Wrong Abstraction”探讨了复用与抽象的关系,指出错误抽象会导致项目质量下降。
- 技术写作:“Google technical writing courses: Writing Helpful Error Messages”提供了写错误消息的建议。
- Python 内部原理:“Inside python dict — an explorable explanation”通过模拟代码和可视化动画介绍 Python 字典内部原理。
- 敢于看起来愚蠢:“Willingness to look stupid”分享了看似愚蠢的行为可能带来的好处。
- 选择语言框架:“Why we're sticking with Ruby on Rails”解释了 GitLab 选择 Ruby on Rails 而不是微服务架构的原因。
- 大语言模型看法:“ChatGPT Is a Blurry JPEG of the Web”对大语言模型的态度既有否定也有赞赏。
- 产品设计总结:“Lessons learned reinventing the Python notebook”总结了 marimo 软件的产品设计经验。
- 调试方法反思:“Breakpoint Tracking is an Inefficient Debugging Method(Chinese)”从独特角度分享了编程调试的智慧。
- 其他工作内容:“Being Glue”强调了软件工程师日常“胶水工作”的重要性及相关问题。
- 拥抱枯燥技术:“Choose Boring Technology”认为选择“无聊”技术有时更明智。
- Python 特性:“Structural pattern matching in Python 3.10”介绍了 Python 3.10 中的结构模式匹配语法。
- 模块与微服务对比:“You Want Modules, Not Microservices”对比了模块和微服务,探讨微服务架构试图解决的问题。
- Go 语言 HTTP 处理:“I Don’t Like Go’s Default HTTP Handlers”指出 Go 语言默认 HTTP 处理的设计缺陷及解决方案。
- 超时配置人性化:“Timeouts and cancellation for humans”分析了常见超时 API 设计并介绍了 trio 库的相关特性。
- 软件工程师经验:“20 Things I’ve Learned in my 20 Years as a Software Engineer”总结了 20 年软件工程师生涯的经验教训。
- Mock 模块问题:“Why your mock doesn’t work”解释了 Python 中 Mock 模块使用时的常见问题。
- Go 代码可读性:“Practical Go: Real world advice for writing maintainable Go programs”提供了提高 Go 代码可维护性的建议和示例。
- Redis 代码注释:“Writing system software: code comments.”按类型分类了 Redis 项目中的代码注释,强调解释“为什么”的重要性。
- 代码设计思考:“Write code that is easy to delete, not easy to extend.”从不同角度思考代码的可维护性,提出“易删除”的观点。
- 提问技巧:“How to ask good questions”分享了在人际沟通中提问的技巧和经验。
- 日常编码习惯:“Write Code Every Day”介绍了程序员 John Resig 每天写代码的经历和成果。
- 抽象泄漏定律:“The Law of Leaky Abstractions”指出软件世界中抽象最终会泄漏的现象。
- API 设计指导:“How to Design a Good API and Why it Matters”系统地介绍了 API 设计的各个方面,提供了设计指导。
- 软件设计原则:“My Principles for Building Software”和“Applying 'Make Invalid States Unrepresentable'”强调了数据对软件设计的影响和相关原则。
- 编译器错误认知:“No, it is not a compiler error. It is never a compiler error.”讨论了程序员对编译器错误的认知和实际遇到的情况。
- 生活与编程关联:“The one of changing a washing machine the day before New Year's Eve(Chinese)”从生活中的洗衣机更换事件联想到软件开发中的问题。
- 异步编程思考:“What Color is Your Function?”以独特的“函数颜色”概念探讨异步编程风格。
- 文档重要性:“Healthy Documentation”强调了文档在软件开发中的重要性及程序员对文档的矛盾态度。
- 代码评审技巧:“How to Do Code Reviews Like a Human (Part One)”介绍了代码评审的多个经验和注意事项。
- Python 3.13 变化:“Everything you need to know about Python 3.13 – JIT and GIL went up the hill”介绍了 Python 3.13 的 JIT 编译和 GIL 移除等变化。
- 编程难度感悟:“After 14 years in the industry, I still find programming difficult”分享了作者 14 年编程生涯后对编程难度的感悟。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。