每个人都是从入门级工程师开始做起的。如果想晋级,你就 需要具备下面几个核心领域中所需要的能力。
● 技术知识: 你知道计算机科学的基础知识。你知道如何使 用集成开发环境(IDE)、构建系统、 调试代码和测试框架。
你熟悉持续集成、系统指标和监控、配置和打包系统。你 积极主动地创建和改进测试代码。在做架构决策时, 你会 考虑到长期运维。
● 执行力: 你通过用代码解决问题来创造价值, 并且你了解 你的工作和业务之间的联系。 你已经可以构建并部署中小 型的特性。你会编写、测试和评审代码。你分担 On-Call 的职责, 调试运维问题。你是积极主动并且可靠的。你参 加技术讲座、阅读小组、面谈和路演。
● 沟通能力: 你能同时以书面和口头的形式进行清晰的沟 通。你能够有效地给予和接受反馈。在模棱两可的情况下, 你会主动寻求帮助并得到明确的结果。 你能以建设性的方 式提出问题和定义课题。你在可能的情况下可以提供帮 助, 并开始影响同事。你会文档化你的工作。你撰写清晰 的设计文档并征求反馈意见。在与他人打交道时, 你富有 耐心和同理心。
●领导力:你能在指定的工作范围内独立地完成工作。你能迅速地从错误中学习。你能很好地处理变动和模糊的问题。你积极参与到项目和季度的规划中。你能帮助新的成员融入团队。你可以向你的管理者提供有意义的反馈。
要想到达你的终点,你需要一张地图。
1 新手营
你以一名新手的身份开启了你的旅程。你需要熟悉公司、团 队,以及如何完成本职工作;参加入职会议;设置你的开发环境 和系统权限,并弄清楚团队的常规流程和会议;阅读文档并与队 友进行讨论。如果你在入职过程中发现了漏洞,你可以在文档中 做出一些补充。
为了帮助你顺利地开展工作,你的公司可能会有一个新人入 职培训。这些培训课程会让你了解公司是如何运转的,带领你参 观整个组织,并介绍一些公司领导。新人入职培训还会向你介绍 其他部门的员工,那些是你未来的同事。如果你的公司没有安排 新人入职培训,那需要你自己去向你的管理者要一份公司的“组 织架构图”,了解清楚谁负责什么, 谁向谁汇报, 都有哪些不同的 部门,以及它们之间的关系。记得做好笔记。
2 试炼之河
一旦你完成了新手任务,你将开始为团队分担真正的工作。你可能会在一个现有的代码库上工作。你发现的东西可能会使你感到困惑或害怕。多提问, 并经常让团队评审你的工作成果。
3 贡献者之角
一旦你着手开发大一些的任务和特性就意味着你进入了“贡 献者之角”。团队会信任你能更独立地完成工作。学习如何编写生 产级别的代码,使这些代码对运维者友好。恰当地管理组件间的依赖关系,并进行完备的测试。
4 运维之海
当你参与到更大的任务中时,你将会学到如何向客户交付代码。在交付过程中会发生很多事情:测试、构建、发布、部署和展开。完善这个过程需要一些技巧。
5 胜任之湾
你的团队现在将依靠你来负责一个小项目。你需要撰写一份技术设计文档并帮助团队进行项目规划。设计软件将迫使你面临全新级别的复杂度。不要满足于你的第一版设计。反复斟酌,要随时做好准备, 因为你的系统会随着时间的推移而不断变化。
你现在已经有了初学者旅程的地图和目的地。在“胜任之湾”着陆后,你将成为一名成熟的软件工程师,此时的你能够与你的团队合作,贡献价值。
你将有许多站点 — 学生、工程师、技术负责人, 甚至可能是管理者。大多数新入行的工程师在开始时都有技术基础,但没有什么实质上的经验。《程序员的README》前面的章节将会引导你走向职业生涯的第一个里程碑。当你能够安全地交付代码并与你的团队无缝协作 时你就会到达这个里程碑。
到达第一个里程碑是很困难的。因为你需要的信息会散落在互联网上,或者更糟糕的是,隐藏在某人的脑袋里。《程序员的README》整合了成功所需的关键信息。
对于刚刚成为软件工程师的新手来说,知道如何编写代码只是成功了一半。你可能很快就会发现,学校并没有教授在现实世界中至关重要的技能和工作中必要的流程。本书恰恰填补了这一环节,它是作者十多年来在大型公司指导初级工程师工作的教程,涵盖软件工程的基础知识和best实践。
本书第1~2 章讲解当你在公司开启你的职业生涯时会发生什么;第3~11 章会扩展你的工作技能,教你如何使用现有代码库、解决和防止技术债、编写生产级软件、管理依赖关系、有效地测试、评审代码、交付软件、处理On-Call 时的事故和构建可演进的架构等;剩余章节涵盖管理能力和职业阶梯的提升等相关内容,例如敏捷计划、与管理者合作以及成长为资深工程师的必经之路。本书中非常重要的一部分内容是教你如何应对糟糕的管理,以及如何调整自己的节奏。
本书内容不仅浅显易懂,还覆盖整个软件开发周期,是一本技术主管希望每名新入行的工程师在开始工作之前都能阅读的书。
1、重构:改善既有代码的设计 第2版 平装版
优雅地将代码打造为艺术,被译为11种语言,软件开发大师的不朽经典,生动阐述重构原理和具体做法,普通程序员进阶到编程高手必须修炼的秘笈。
2、代码整洁之道
鲍勃大叔作品,程序员,汇聚编程数十年编程生涯的心得体会,阐释如何解决软件开发人员、项目经理及软件项目领导们所面临的棘手的问题。
“阅读这本书有两种原因:第一,你是个程序员;第二,你想成为更好的程序员。很好,IT行业需要更好的程序员!”——罗伯特·C. 马丁(Robert C. Martin)
3、知行:技术人的管理之路(第2版)
解锁管理智慧,掌握技术人的成功密码!刘建国新作,技术人做管理全流程操作指南,揭示技术管理者的困惑与挑战,带你踏上成功之路!
4、软技能:代码之外的生存指南(第2版)
程序员、软件开发人员职业生涯指南,凸显技术中"人"的因素,聆听软件开发人员人生导师JohnZ.Sonmez的经验之谈,讲解IT行业从业者所需要知道的"软技能" 。