最近我一直在思考写作的问题。我最近辞去了创业公司CTO的工作,转而全职写作,所以当人们问我这样的问题时,“为什么软件工程师应该知道如何编写?”我有很多想法。我不再写另一篇listil(1,2,3,4),而是将其归结为一个简单的原因:
无论你是努力在组织内晋升,还是被最酷的科技公司奉承,最快的成功之路就是让合适的人了解你。帕特里克·麦肯齐(Patrick McKenzie)在一篇最好的程序员职业建议文章中指出:
“大多数工作从来没有公开过,就像大多数有价值的候选人没有公开机会一样。职位信息的传播速度与啤酒差不多,有时还会通过电子邮件来润滑。“--帕特里克·麦肯齐(Patrick McKenzie),不要自称程序员。
不幸的是,仅仅是成为“最好的”程序员并不会让你在酒吧里被人议论(而且无论如何这都是主观的)。本·麦考密克指出:
“一旦一个人达到了在该行业担任一份工作的最低技术技能门槛,他们在软件开发领域取得成功的能力大约有80%取决于他们的沟通和人际交往技能,而不是他们的技术能力。”--本·麦考密克(Ben McCormick)。
我的经验支持帕特里克和本的断言,所以现在的问题是,你怎么才能成为在工作公开之前名字就出现的人中的一员?
合适的人必须了解你。你必须有正确的影响力。
“一个可容忍的程序员和一个伟大的程序员之间的区别不在于他们懂多少编程语言…。这取决于他们是否能交流他们的想法。通过说服别人,他们获得了筹码。“--StackOverflow联合创始人乔尔·斯波尔斯基(Joel Spolsky)
如果你相信我的观点,即影响力在你作为软件开发人员的职业生涯中很重要,那么下一步我要说服你,写作实际上会增加你的影响力。事实上,并不是所有的写作都能奏效。你所做的那种写作将对你获得的影响力的水平和种类产生巨大的影响。
让我们来看看作为一名软件开发人员你可以获得的不同级别的影响力,以及你需要做哪些写作来实现这些影响。
参与者没有影响力。他们没有意识到这一点,但他们对自己的职业生涯几乎没有控制力,每次需要新工作时,他们都可能经历一段时间的失业和令人精疲力竭的求职面试。有意愿的参与者唯一会做的写作就是要求他们做什么:他们会回复松弛的信息和电子邮件;他们会每天尽职尽责地输入他们的进度报告;当他们想要就一个问题进行长时间的讨论时,他们可能会在某人的桌子上(或与之相当的数字版)留下一张便条。
如果这就是你,不要气馁。我们的职业生涯都是以自愿参与者的身份开始的。在可预见的未来,由于大多数软件工程工作都是远程工作,写作能力的最低水平可能会提高,但仅仅勾选复选框不会把你的名字放在你的下一任老板的舌尖上。
“每次你发现自己在遵循手册而不是编写手册时,你就是在逃避痛苦,向抵抗屈服。”--赛斯·戈丁(Seth Godin),关键人物。
大多数软件工程师都住在这个区域。组织教师撰写文档、技术规范、风格指南、测试标准、错误报告和内部知识库文章。虽然这会对您的团队(可能还有一些相邻的团队)的工作方式产生一些影响,但您公司以外的人不太可能知道您的工作。
在这个区域的好处是它是一个安全的练习场所。没有人会因为你的打字错误而责备你(至少,我希望不会),而且其他利益相关者会在你的大部分文章正式发布之前对其进行审查。
作为一名组织教师的缺点是,对于高级工程师来说,这几乎是餐桌上的赌注。您不会因此而脱颖而出,您可能也不会将自己的名字附加到它上(除非它被埋没在您的提交历史中)。作为一名组织教师,磨练你的写作技能,一旦你感觉更舒服,就往上爬。
当你进入(官方或非官方)领导角色时,你将开始在组织影响者层面上做更多的写作工作。本文的写作内容包括设置招聘标准、记录复杂技术决策之间的权衡、创建培训材料和设置预算。这些文件将被你的职位上下的人看到,并将帮助你在未来的促销活动中引起人们的注意。
许多软件开发人员认为,除非被要求,否则他们不应该尝试撰写此类文章。这是不正确的。
例如,如果给你一个新项目,你有专业义务报告设计中的缺陷。当您报告这些问题时,不要只写一条松弛的消息,“这行不通。”记录建议的解决方案与您在其他地方看到的解决方案之间的权衡。大多数人不这样做是因为这很难,这就是为什么他们没有太大的影响力。
组织影响者正在帮助至少为业务的一小部分设定方向,他们最终将比前两个级别的人做更多的写作。达到这个级别的软件开发人员将有资格获得更多的内部晋升,有趣的横向调动,以及普遍的尊重增加。组织影响者也将开始获得开始外部写作的信心。
“写作很难。人们一生都在学习如何有效地写作。这不是你可以伪造的东西。这不是你能买到的东西。你必须为此努力,这就是为什么那些害怕自己写不出来的人应该写博客的原因。这是锻炼。“--StackOverflow联合创始人杰夫·阿特伍德。
尽管Medium和Dev.to很流行,但令人惊讶的是,很少有软件工程师公开编写代码。外部教师通常从编写技术案例研究、公共文档和演练开始。这是软件开发人员可以开始公开展示他们的知识并建立个人品牌的地方。
我要在这里提出一个很大的警告,写几个教程不会立即让雇主找到你。多年来,我已经写了几十个技术教程,只有几个直接导致了就业讨论(这两个都没有奏效)。公开写作是建立声誉的第一步,但更重要的是,当雇主问起你的具体技术经验时,它给了你一个很好的参考资源。
成为一名外部教师的困难之处在于,它很可怕,而且一开始你很可能会很糟糕。人们自然会避免做他们不擅长的事情,但做可怕的事情是获得影响力的重要组成部分。
如果你克服了公开写作的恐惧,开始告诉别人你的写作,你可能会对你得到的鼓励感到惊讶。当你做一些他们自己都不敢做的事情时,人们会支持你。
很少有人能达到外部影响者的水平,以至于仅仅是尝试这种写作,就会让你成为一小群出类拔萃的人。与坚持无可辩驳的事实和重复现有知识的外部教师不同,外部影响者有很强的观点。他们从深刻的经验中写作,他们的写作影响着其他人的决定。
你可能听说过的一些外部影响者包括马丁·福勒(Martin Fowler)、“叔叔”鲍勃·马丁(Bob Martin)和埃里克·埃文斯(Eric Evans)。当他们写东西时,成千上万的程序员倾听,他们的书塑造了数十年的软件架构。
该模型中的所有影响级别都有不同程度的影响。你不必是鲍勃大叔才能成为一名外部影响者;你只需要开始在公共论坛上将你的技术经验应用于更大的业务挑战。例如,Eric Evans创建了域驱动设计(Domain-Driven Design),通过使软件更接近底层的域模型来帮助企业构建更好的软件。如果您已经花费数年时间解决了一组特定的问题,那么您可能至少有几个问题可以提出来讨论。这些很可能是你成为外部影响者的平台。
虽然这听起来很棒,但扮演外部影响者的角色比做外部教师更可怕。你的写作不仅要真实、准确、连贯,而且你的想法也要公开接受公众批评。没有人喜欢在互联网上受到猛烈抨击,但如果你的作品受到好评,好处可能是巨大的。如果马丁·福勒决定离开ThoughtWorks,你认为他找工作会有困难吗?我非常肯定他可以(从字面上)在任何地方写他自己的工作描述。
至此,我希望我已经说服您,影响力是推进您的软件开发事业的重要部分,写作可以帮助您获得这种影响力。我对那些想要成为更好作家的工程师的最后鼓励是超越你目前的水平。这会让人不舒服,但这也是掌控你职业生涯的最好方式之一。如果我能帮忙的话请告诉我。