
克里斯·里科米尼 德米特里·里亚博伊
对于刚刚成为软件工程师的新手来说,知道如何编写代码只是成功了一半。你可能很快就会发现,学校并没有教授在现实世界中至关重要的技能和工作中必要的流程。本书恰恰填补了这一环节,它是作者十多年来在大型公司指导初级工程师工作的教程,涵盖软件工程的基础知识和best实践。 本书第1~2 章讲解当你在公司开启你的职业生涯时会发生什么;第3~11 章会扩展你的工作技能,教你如何使用现有代码库、解决和防止技术债、编写生产级软件、管理依赖关系、有效地测试、评审代码、交付软件、处理On-Call 时的事故和构建可演进的架构等;剩余章节涵盖管理能力和职业阶梯的提升等相关内容,例如敏捷计划、与管理者合作以及成长为资深工程师的必经之路。本书中非常重要的一部分内容是教你如何应对糟糕的管理,以及如何调整自己的节奏。 本书内容不仅浅显易懂,还覆盖整个软件开发周期,是一本技术主管希望每名新入行的工程师在开始工作之前都能阅读的书。
自从接触计算机以来,我看过最多的就是readme文档。 新手程序员上岗,如果能拿到一份readme手册,也一定会少走很多弯路。 1、多读源码 代码从不说谎,注释有时却会。去读源代码,因为它并不总是与设计文档相吻合!不要只读你自己的代码库,还要去阅读高质量的开源项目,特别是那些你使用的类库。 2、T 型人才 软件工程有许多专业领域:前端、后端、运维、数据仓库、机器学习等。 T型工程师在大多数领域内都能有效地工作,并且至少是某一个领域的专家。 3、保守技术 成功公司留用旧代码(如旧类库、旧模式)是有原因的。 成功需要时间,而在技术上大动干戈会让人分心。新技术的问题是,它不太成熟。 4、跳槽成长 如果你的价值更多来自过去的工作而不是现在的贡献,那么它就会阻碍你的成长。 更换公司并在一个新的环境中找到自己,可以重启你的成长。 5、自我调节 工程师们有时会浪漫化14小时的工作时长和办公桌下的睡袋,但马拉松式的编程和缺乏睡眠会损害你的代码、身体健康和个人社交。
读完这本书的感觉,也是有点相见恨晚,确实读这本书要趁早,很多知识大学和工作都不会有人教你,都需要你主动去学和请教他人。所以说,它比较全面的介绍成为一名软件工程师的过程内容,可以让你少走很多弯路,比较全面的了解一个软件生命周期的过程,培养你的个人能力和工作全局观吧。特别是对新人刚入行的时候,有一个指导工作各个方面流程及实践的教程,对个人的成长和融入团队有非常大的帮助吧 印象深刻的几个章节中讲到:在进入职业生涯阶段会遇到的一些问题及如何解决,比如自己遇到问题不好意思问同事,死磕琢磨很久浪费了很多时间,还有遇到生产事故自己紧张害怕的要死,慌不择路只会适得其反等等类似的情况,作者建议我们应该“请保持开放的心态,好学深思,渴望提高,不惧破旧习,不惧提问题。”因为优秀的工程师通常会以指导和协助他人为荣,而且当你“向同事提问和学习是快速成长和习得新技能的有效方式”,所以不要吝啬你的主动哈,珍惜这段时间,争取最大努力快速提升自己咯。还有如何克服工作中常见的“冒充者综合征”和邓宁-克鲁格效应、如何阅读开源项目、如何向同事提问方式等等,都有很多讲解帮助 在提升工作技能方面:如何平衡“软件的熵”和“技术债”也有一些讲究和方法。如何代码章节方面介绍了很多注意事项和技巧,包括经常听到的“不要重复自己”(Don’t repeat yourself,DRY)是一个通常被教导的原则。如何晋级需要具备的几个能力有技术知识、执行力、沟通能力、领导力,我是非常认可,毕竟自己也是计算机专业科班出身,对技术要求及作者说到这几个能力都有刻意练习,比如写作水平差就平时多练习写技术调研方案文档、业务相关讲解文档、技术相关讲解或指南文档等等并分享团队阅读,收集改进反馈提升自己 在 On-Call 阶段印象深刻的一句话是:“你最好的能力是随时响应。”这句老话是成功On-Call 的关键。跟我轮值时候的一些解决问题方式不谋而合,自己平时也有应用类似的方式解决,但不够成体系的、规范的执行,也是自己做的不够好的地方。对于向上管理方面,如何对自己成长负责和工作汇报有更深刻的理解,之前以为自己做好手上的工作就行,还需要站在更高的角度思考问题及思考团队贡献、自身向上成长问题。对于职业规划方面,如何成为 T 型人才,未来发展等,但有些讲解不够全面,蜻蜓点水而已,可以结合《远见:如何规划职业生涯 3 大阶段》一起学习 还有其他方面也是很不错的,比如测试方面相关知识、设计文档撰写、代码评审、软件交付等等章节都非常详细,对于我这个工作几年的人,都还有很多不懂的或者没有遵守相关编写代码规则去做,有点惭愧,哈哈哈 总体来说,还是很不错的程序员指南,新人和老手阅读都会有受益,但可能新人阅读会受益更大吧,还有就是保持持续学习💪🏻
我是被书名《程序员的README》吸引而点开了这本书:这是一个对码农充满体贴和关怀的标题,像精心维护软件项目一样关注软件开发者自身的状态和成长。读来觉得作者不是只会夸夸其谈的培训专家,他肯定有丰富的软件工程实践经验。 这本README语言简练易懂(译者肯定也下了不少功夫,尽管偶有不当,也是瑕不掩瑜),内容有道也有术。读到许多与自己观点一致的内容时,一方面增强了自己的信心,一方面也加深了对书籍内容的认可。我没有大厂、大团队的工作经验,不过这本书给了我一点管中窥豹,时见一斑的体验。 “小步快跑、快速迭代”是一项广泛适用的原则。首先敏捷开发遵循这一原则。其次,对于日常开发工作,如代码修改和代码评审,作者也提倡小幅度的、独立的提交,方便聚焦问题、代码评审,甚至回滚。为了减少软件熵、偿还技术债,也应该“边做边解决,着手做小幅的重构”,对系统实施持续的优化。甚至在团队协作中也可应用这一原则。比如作者在“技术设计流程”一章建议从最初做研究开始,就应该从相关利益方获取早期的反馈,考虑各方的需求和意见,礼貌且渐进地让人们了解自己的方案,使得讨论时大家都有发言权,不仅更容易催生出更好的设计,而且更容易让大家成为最终方案的拥护者。
在Claude Code可以根据你的Spec实现整个功能代码并为你贴心的附上完整的单元测试的时候,读这本书好像有点过时,但不读这些书,写最初Spec和判断功能代码能不能用的能力都没有,毕竟AGI现在还没实现,或者说至少最近两年还没实现,所以对某些人读这些技术书还是有必要的。至于本书,虽然后几章有点不符合国内实际开发情况, 但整体读下来还是能让你对软件开发过程有个大概的了解。如果你初入这行,不要读这本书,转行。如果你干了很多年,也没必要读,只是起了个拾遗补缺的效果。如果你只是干了一段时间还打算再干几年,可以读。
如书名,这是一本程序员要读的README,计划做程序员的人应该尽早读一读这本书,以及是程序员的也应该读一读这本书,相信会有不少收获,对于准备成为程序员的人来说,可能一些翻译会跟实际略有差别,但从业后自然就会得到修正。
我个人认为这是一本应该达到90%以上推荐度的神书,这本书更适合有几年工作经验的人,能从中感受到共鸣。书中内容完全对得住书名 程序员的readme。 书中内容覆盖了程序员职责生涯从小白到资深阶段的方方面面,描绘了一个清晰的成长路径。 第一是树立自主的意识。自主学习,自主探索,自主发问等等。 第二是描绘了代码技术的方方面面。代码技巧,代码规范,可观测性等等。非常全面。 第三是介绍如何进行运Oncall。提出的指导选择和方法措施非常受用。 第四就是更高一级主题:方案设计和演进式系统设计。算是帮我全面梳理了一知识点,帮我系统化这里的知识了。 第五就是职业成长。对我来说全书最重要的部分,向上管理的章节中的经验对我来说帮助非常大。这个向上管理感觉描述成向上沟通更合适,向上管理给人一种对领导拍马屁的感觉,但是书中是真真实实的向上沟通的技巧。个人非常喜欢这一章节。 总之,整本书构建了开发人员的一条准确清晰明了的成长路径,然后每一章节又提供了加油包扩展内容,方便在对应领域继续深入探索,扩展深度。作者的经验真是太丰富了,对工作2~4年的人非常受用。
原作不错,但翻译太烂了,比如第8章中的rollout被翻译为“展开”而不是“上线”或”投产”,input parameters被翻译为“输入的数”而不是“参数”,Dark-launche翻译为“摸黑启动”而不是“灰度发布”...
豁然开朗,醍醐灌顶。真的学会后日常对话有更多样的表达方式。工作日志更好写的更有价值。至少说的内容不用反复出现相同的词汇。谁说的阅读拓宽眼界。这本书提供了栩栩如生的情景照片展示的话语权。
这本书作为指引,非常有价值,特别是国内环境不太好的情况下,需要注意一些凭技术但是本身不适合做管理的人,遇到这种人,该撤得撤!
感觉Agent🦞时代看这本书会对如何调教Agents🦞很受用