本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正
(1)这是一本 “课外”书。知道如何编写代码,仅仅是“战斗的一半”。像与资深导师喝咖啡一样,本书将教授你学校里计算机课没有涉及的技能。
(2)这是一本有态度的书。公司之间总有差异,基本原理总是相通。书中构建团队的经验取自那些快速成长的、由风险投资公司资助的或者准上市的硅谷公司。
(3)这是一张进军职场“线路图”。资深之路选择多,请主导你自己的晋升。本书涵盖构建、测试和运行生产软件的现代实践,使团队更强大和使队友更默契的行为和多种方法,供你选择。
(4)作者是Zymergen 的软件工程副总裁和Apache Samza的作者,在 PayPal、LinkedIn、WePay 和 Twitter等主要科技公司拥有十多年的经验。
对于刚刚成为软件工程师的新手来说,知道如何编写代码只是成功了一半。你可能很快就会发现,学校并没有教授在现实世界中至关重要的技能和工作中必要的流程。本书恰恰填补了这一环节,它是作者十多年来在大型公司指导初级工程师工作的教程,涵盖软件工程的基础知识和best实践。
本书第1~2 章讲解当你在公司开启你的职业生涯时会发生什么;第3~11 章会扩展你的工作技能,教你如何使用现有代码库、解决和防止技术债、编写生产级软件、管理依赖关系、有效地测试、评审代码、交付软件、处理On-Call 时的事故和构建可演进的架构等;剩余章节涵盖管理能力和职业阶梯的提升等相关内容,例如敏捷计划、与管理者合作以及成长为资深工程师的必经之路。本书中非常重要的一部分内容是教你如何应对糟糕的管理,以及如何调整自己的节奏。
本书内容不仅浅显易懂,还覆盖整个软件开发周期,是一本技术主管希望每名新入行的工程师在开始工作之前都能阅读的书。
克里斯.里科米尼(Chris Riccomini):
软件工程师,创业公司投资者和顾问,在PayPal、领英和WePay等大型科技公司拥有超过十年的工作经验;在职业生涯中一直参与开源项目的工作,是Apache Samza的作者。
德米特里.里亚博伊(Dmitriy Ryaboy):
软件工程师和工程经理;目前担任Zymergen公司的软件工程副总裁;曾就职于不同的公司和组织,包括劳伦斯伯克利国家实验室、Cloudera和Twitter;帮助创建和发展了多个开源项目,包括Apache Parquet。
【摘自推荐序】
在本书的前几章中,“提问”就被高度重视,这让我感到非常高兴。向同事提问和学习是快速成长和习得新技能的有效方式。为你的工作成果感到自豪通常是件好事,但当自己在持续改进和交付中比以前做得更好时,你应该优先感到自豪。
这本书针对如何改进、如何学习、如何推进职业生涯发展,以及如何成为一名更好的开发者提供不同的方法和步骤。这本书包含适应团队的工作流程、处理会议、如期交付、善用学习工具和技术领域的best实践,并指导人们如何成为团队中有价值的成员。
向资深工程师寻求帮助可能会让人感到一丝畏惧,因为打断他们的工作通常是不妥的。资深工程师往往在聚精会神工作时会因为被打扰而失去在脑海中已构建的系统的短期记忆,但大多数资深工程师都很愿意提供帮助,优秀的资深工程师更是以指导和协助他人为荣。如果你在寻求帮助时感受到了敌意,大可不必心烦意乱,因为这在每个人身上都可能发生。不要让某一次糟糕的遭遇阻断了你再次寻求帮助的欲望。但总是打断他人的工作并非是合适的,这时就可以使用这本书中涵盖的其他策略和原则,它们都可以指导你将职业生涯提升到新的阶段。
无论你处于职业生涯的哪个阶段,这本书都非常实用。请保持开放的心态,好学深思,渴望提高,不惧破旧习,不惧提问题。
——雅克·奥洛夫松(Jerker Olofsson),索尼移动公司前核心架构师
【摘自译者序】
本书的两位作者在最后一章中说:“你可以为任何行业做出贡献,从科学到农业、健康、娱乐,甚至是太空探索。”我一直都认为软件工程师的工作带来的成就感并不亚于小说家、建筑师或音乐家。软件开发本身带来的欣喜是一种“尤里卡时刻”的幸福体验,尤其是在无数个面对调试器“狂按”F10 键的夜晚,自己提交的特性成功上线时的喜悦,抑或是眼看着自己设计的技术架构方案从纸面上的框图到代码实现再到最终交付的满足感。
当然在软件行业工作也有艰辛,变动的需求、阻滞的沟通、糟糕的管理和紧迫的工期,总有些时刻会令人产生倦怠。毕竟真实世界中并不存在只和机器进行沟通的工作,更多的还是人与人之间的交流。本书能够很好地帮助刚刚踏入这个行业的工程师去认识真实世界。似乎从来都是程序员为他人撰写README,从来没有人为程序员撰写过README。
由于工作的关系,我个人不仅参与过采用瀑布流模型的传统项目,也参与过极度灵活多变的研发项目,以及采用改良后的Scrum 框架的敏捷项目。虽然各自采用的开发模型不尽相同,但是遇到的问题都很相似。在实际的工作中,成功地交付软件并不是只有唯一的路径可走。如何衡量与之匹配的需求、成本和风险才是考验团队的地方。本书中,两位作者提到了软件开发过程中的诸多困境,在我曾经的工作中也遇到过类似的情况。至今我还记得曾经有一次由于共享的数据层竞合而引发的生产环境故障,整个团队高负荷地工作了一周才最终解决。而在应对这起故障的过程中,团队明明在非常积极地处理,却引起了客户的极大不满。让客户不满的并不是故障本身,而是出了故障之后得不到应急方案导致了长时间的服务器宕机。如果那个时候能采用本书中提到的事故处理的标准流程(分流、协同、应急方案、解决方案和后续行动),那么很多弯路就可以避免了。
——付裕,本书译者