第1章 整装待发:写在开篇的话
毫无疑问,本书卷帙浩繁。最终成稿的时候我统计过,英文原文总共20.2万个单词。真的是篇幅巨大。因此,我想我应该先跟你解释一下,为什么这本书有这么多字,以及你如何才能充分利用好这本书。
初出茅庐的新手,拥有几年经验的行家里手,或者饱经风霜的专业人士,不管你身处自己职业生涯的哪个阶段,本书的各个章节都会给你带来或多或少不尽相同的感受,甚至有些章节你会想着不断去重温回顾。
本书的写作目的
你可能想知道:为什么我决定写作如此特别的一本书。(在前言里我已经简要地提到过,但在这里我想再重复一下。)
我的博客和YouTube频道上的读者最常询问我的问题就是:如何开启软件开发的职业生涯?如何拥有成功的职业生涯?从没有找到一本完整的手册能够教导羽翼未丰的新开发者或者经验丰富的老开发者如何真正优化自己的职业生涯,以及如何应对投身这个行业之后那些无法回避的问题。
在《软技能:代码之外的生存指南》的职业篇中,我简要提到了一些这方面的话题,但我觉得,更深入地论述该主题兹事体大,且必不可少。
因此,与《软技能:代码之外的生存指南》一书关注软件开发者的整个生活(包括一个人的职业规划)不同,这本新书只专注于职业生涯发展。
在设计上,本书自成一体,所以你不是一定要读过《软技能:代码之外的生存指南》一书或者其他书籍才能最大限度地利用这本书,要阅读这本书,你甚至不需要拥有任何软件开发经验。
本书的目标
首先,我想要帮到那些新入行的软件开发者,让他们了解让自己在这个纷繁复杂而又荆棘密布的行当里初露锋芒所需了解的所有重要的东西。
我想给这些新进软件开发者提供关于这一领域所有重要方面的资源,让他们了解他们所需要知道的知识,并向他们展示获得自己第一份工作的最佳途径。在我看来,这些内容都是软件开发者在“菜鸟”阶段所要面临的最重要的挑战。
其次,我想要帮到已经成为软件开发者的人们,帮助他们弥补自己的知识短板(就他们的职业生涯而言),并为他们提供一些关于如何以一个软件开发者的身份工作与生存的指导。我将讨论如何平衡生活和工作,如何与团队一起工作,开发者如何推销他们的想法,如何获取加薪和升职,以及如何处理领导力与偏见等问题。
最后,不管是处于职业生涯中哪个阶段的软件开发者,我都想帮助他们将自己的职业生涯提升到更高层次。我将讨论如何在软件开发行业建立声望,可供软件开发者选择的不同的职业发展路径,以及软件开发者应该阅读的书籍。我将介绍一些有助于你进入更高层次以及成为卓越开发者的兼职项目、行业峰会与其他主题。
本书的所有内容仍然可以归类为“软技能”,因为我会更多地谈论你需要知道的东西,以及从理论上讲解行动项,而不是单纯地讲如何去做。
我坚信,在我们的周围以及我们的行业中仍然缺乏这种智慧,我坚信学习软技能比学习某一种特定的编程语言或框架具有更隽永的价值。
本书分为以下5篇,就像我在《软技能:代码之外的生存指南》一书中所采用的结构一样,每篇都由若干规模较小的章组成:
●入行成为软件开发者;
●找到一份工作;
●关于软件开发你需要知道些什么;
●软件开发者的日常工作;
●推进你的职业发展。
本书的主要目标就是:不管你身处软件开发职业生涯的哪一个位置,你都可以从本书中获得一些东西,这些东西将帮助你的软件开发职业生涯跃迁到更高水平。
如何使用本书
应该如何使用一本书似乎是显而易见的事情。
使用一本书(如这本书)最实用的方法,就是把它拿起来开始阅读。(当然,如果你有一本印刷版的纸书,而且它又足够厚实,你还可以利用它来垫高你桌上的显示器。)
阅读本书的时候,你当然可以一口气从头读到尾,我想这也是大多数人会选择的阅读本书的方式。但是,你也可以选择一章一章或者一篇一篇跳着阅读的方式。
假设你刚刚开始投身于软件开发工作,甚至你还没有真正学会编程,在这种情况下,选择从本书的第一篇“入行成为软件开发者”开始阅读,获益最大,因为这一篇的内容与你关联度最大,碰巧它也是本书的第一篇“入行成为软件开发者”。
假设你已经有一份软件开发的工作,已经具备了好几年的编程经验,你可以直接跳到第四篇“软件开发者的日常工作”或者第三篇“关于软件开发你需要知道些什么”。
或者你只是对如何推进自己的职业生涯感兴趣,在这种情况下,选择直接跳到第五篇“推进你的职业发展”将是最审慎的行动策略。
同样,本书中的每一章都是独立成文的。因此,你也可以通过浏览目录来选择哪些章适合你,或者可以用来回答你当前以及未来的各种问题。本书之所以设计成这样,是因为我知道,软件开发者所面临的情况和问题在职业生涯的不同阶段会发生改变。
当你刚入行的时候,你想学习如何开始,但也可能你想要获得一些关于学习新的编程语言或者新技术的建议。
你现在可能并不需要立刻工作,也不需要去谈判薪水,也没有机会去和一位令你讨厌的同事或者老板打交道,但是将来的某个时候,这些章的内容可能会与你当时的处境息息相关。以前,当我想回看某本书的某一部分时,我总是感到沮丧,因为我记不起它们在哪里了,它们湮没在其他章中去了。
因此,我努力试图让本书既可以被直接阅读,也可以成为你软件开发职业生涯的参考手册。
反复阅读与付诸实践
现在,在跳到第2章的实际内容之前,我来说说关于如何使用本书的最后一点。最重要的一点是,如果你不将我在这里写的内容付诸实践,那么这本书其实对你并没有多大用处。
喜欢读书是一件好事。但是,即使你对书中作者的观点完全同意,但却不把学到的东西应用到自己的生活当中,那它就没多大用处。
不要给自己太大压力,也不用做大量笔记,更不用时刻告诫自己“在每一章的结尾都要做做练习”,或者强迫自己每天都要应用学过的东西。我会给你一种更加简单易行的方法——我自己使用的方法。
反复阅读
如果你真的想改变自己的行为,把那些优良原则和最佳实践应用在自己的生活当中,最好的一种方法就是让你的大脑包裹与萦绕在你想要融入生活的思想与观念之中。
做到这一点的最好的方法之一就是反复阅读。这是一种低压力的吸收和应用信息的方式。我自己一直也是这么做的。有几十本书我读过很多很多遍,因为我的事业和生活从中受益良多,我真的想把这些书中的理念与哲学内化为自己意识的一部分。
因此,我非常鼓励你不断重复阅读这本书,特别是那些与你的现实情况关联度最大的内容,你甚至可以在日历上设置一个提醒,以一年或者其他你认为最有利的时间间隔再次阅读这本书。
付诸实践
除非你开始采取实际措施并付诸行动,否则我要和你分享的所有想法和策略对你或你的职业生涯都不会有任何益处。
为了尽可能简化“付诸实践”这件事,我把所有可用的资源集合起来,打包并称之为“软件开发者职业发展规划完整指南数字化工具箱”(可以Simple Programmer网站下载)。
这个“工具箱”里包含了一个个循序渐进的、可一步步操作的过程,例如,快速找到软件开发工作(即使在你没有任何经验的情况下)、备战软件开发工作的面试、赢得上司的青睐和同事的尊重、可以帮你捕获并杀掉讨厌的bug的“调试检查单”……
我真诚地希望,伴随着你的事业蒸蒸日上,伴随着你展翅高飞,本书能为你带来源源不断的价值。
好了,我们开始吧……