- Published on
软技能---代码之外的生存指南 读书笔记
- Authors
- Name
- 辣条加辣
- @GeorgePekingzcc
软技能---代码之外的生存指南 读书笔记

今天要分享的书叫做"软技能---代码之外的生存指南",号称是程序员职业发展系列的必看书目,我当时看这本书的时候,就在想,如果我早几年读过这本书该多好,应该会少走很多弯路。这是目前我看到的唯一一本真正从"人"的角度给予软件开发工作人员生活指导和发展建议的书。
这本书的作者是一个美国人,因为环境的不同,国情的不同,以及时间的跨度,所以有些内容呢对我们是不太合适的,需要辩证的去看待。但是关于职业生涯的那部分的内容呢,我是比较认同的。
今天讲的呢,也主要是第一部分,职业篇,也是全书的精华所在,内容虽然看着很散,但是都围绕一个主题:如何主动管理自己的职业生涯。我总结了以下八点。
一,转变思路,学会把自己的软件开发事业当成一门生意
大多数软件开发人员从职业生涯一开始就犯了一个巨大的错误:没有把自己的软件开发事业当成一门生意来看待。
客观上来说,工作确实就是工作,需要我们支付时间+精力 来获取报酬。但是面对工作呢,我们却有完全不同的心态跟态度,你可以选择当一天和尚撞一天钟的心态,但这种心态去面对工作你本身是抗拒的,很难从工作中获得持续的成长以及内心的满足,你也可以换一个思路,把自己的软件开发的工作当成一门生意,英语里叫做"run your own business"。把自己当作一个企业去运营,去思考。当你跳脱出来,转变视角后会发现,你的生意绝对不是写写代码那么简单。
我们可以简单的跳出来看一下哈,作为企业,首先,你要了解你能提供的产品或者服务。大多数软件开发人员卖的是开发软件,也就是coding 这项服务。
光认识到自己企业的产品服务肯定是不够的,我们的目标是要卖出去,这个时候就会产生思考了,该怎样将我们这项服务卖出一个不错的价钱呢?我们脑海中可能瞬间有了好几个想法:
- 让我们的服务更好,也就是我们可以精进我们的技术,干起活来又好又麻利。
- 差异化我们的服务,比如我可以钻研某一个领域成为这个领域的专家,专门服务于这一特定领域或者特定类型的公司,或者我们可以做全栈工程师,覆盖公司更广的需求。这些都是差异化的手段。
- 除了改善自己的产品,我们还要让潜在客户了解我们的产品或者服务。所以我们需要投入精力做市场营销。
OK,你会发现,当我们转变思路后发现其实有很多方向可以探索,可以根据我们自身的情况顺着这个思路继续往下探索。
美国著名作家厄尔.南丁格尔有一句话,叫做"你所能犯的最大错误就是相信自己是在为别人工作。这样一来你对工作的安全感依然尽失。职业发展的驱动力一定是个体本身。记住:工作是属于公司的,而职业生涯确实属于自己的"
二,设定合理的目标
本书在这部分着墨不多,所以呢我结合书里的思路以及自身经验将这部分扩展的更加具体。
书里面更多提到的是将一个大目标拆分为众多个小目标。我觉得这个思路是正确的,但是涉及到个人的职业生涯的时候,就需要再细化一下了。
- 首先,我觉得要选定一个可以深耕的大方向,这个大方向可以是行业,工作内容,比如说我要在很长的一段时间内在互联网行业一直做移动端开发相关的工作。
- 有了这个大方向之后,就可以设定自己的中长期(比如说3-5年)的目标,比如说3年后达到阿里p6 的层级,这个层级对应有哪些能力网上都是可以查到的,根据这些能力对对照到自身看看自己需要补全那些能力。当然最好的情况是身边有一个榜样,比如你的某一个上级或者同事,这样会更具体,而且运气好的话,碰到一个好的榜样会指出你的问题,这样进步就更快了。
- 有了榜样之后,接下来就是设定一些具体的可执行的目标了,比如说我要锻炼自己的演讲能力,就给自己制定一个这个月内在团队内部以及大部门里各做一次分享的目标。
- 要明确的一点是,目标,并不 仅仅是一个一定要达到的一个指标,它更多的是你到达一定阶段后复盘的一个重要要素。很多著名公司,比如海外的谷歌,国内的字节跳动,抛弃kpi,而拥抱okr ,一个重要的原因就是okr 的目标更多是为了复盘让自己之后变得更好。还是以上一个锻炼自己的演讲能力例子,在月末的时候我们要复盘下,既定的目标有没有实现,实现的效果怎么样,没有实现的话原因是什么,有什么值得改进的地方,这样下次定目标的时候就会更加符合自己的实际情况。
三,你最忽略的人际交往能力
程序员给人的刻板印象都是不善言辞,不善交往。很多程序员也觉得自己只要安静的写好程序就可以了。但事实上,即便是软件开发领域,我们大多数时候也是与人而非计算机打交道。其实,几乎所有的职业都是与人打交道。所以,我们真正需要搞定的是人,而不是计算机。
那么该如何跟人打交道呢,作者推荐了《人性的弱点》一书,同时列举了几个与人交往的基本原则:
- 1,每个人都希望感到自己很重要。这是人类的天性使然,一旦你贬低他人,削弱他们的成就感,那么之后的沟通很容易会变成言语的对抗而不是有效的沟通。
- 2,永远不要批评。奖励积极行为要比惩罚消极行为有效的多。
- 3,学会换位思考。尝试领会每个人的角色,领导,同组同事,不同组同事,竞争对手,每个人的角色不同,背后思考的东西肯定也不一样。学会换位思考,才能领会到对方的真正意图。
- 4,避免争吵。争吵永远不是一种有效的沟通,当与对方产生分歧时,尝试消化下对方的观点以及背后的意图,让对方知道你确实理解了到了对方的观点,但是自己又有新的想法。语言上,可以这样说: "我觉得你这个方法确实在解决xx问题的时候有效果,但是如果在这种情况下呢。。。。"。
- 5,远离垃圾人。 有时候你会发现,有的人不管怎样就是无法相处,有的人会抓住一切机会贬低别人,对生活中的一切抱有消极态度,这种人,我们称之为"垃圾人"。面对这种人,不要试图改变他们,不要试图与他们打交道,就让他们停留在自己的轨道上就好了。就像路上你碰到垃圾桶一样,最好避开他们。
四,面试的真相
首先我们要去解读面试的目的,面试的目的其实就是面试官在寻求未来的同事,但是一场一小时左右的谈话肯定不能完全衡量一个人的能力,所以面试时主要考察的能力无非两个:一是你的技术实力,二是你的沟通能力。这里就从这两点出发去看如何破解面试。
- 技术实力其实重在积累,网上有太多的教程这里就不再赘述了。必要时,背背八股文,刷刷题也是无可厚非的。不过成功率最高的面试其实是公司主动找到你的那种,比如你坚持写某细分领域的博客,正好某公司希望有类似技术能力的员工从博客找到了你。或者积极参加技术社区,在社区有一定的影响力。或者你本身是某领域的技术专家。这些都是需要长期的积累的。
- 面试时如何沟通呢,一句话:将面试变成一场对话。真正的对话是两个观点的碰撞,在找到你们观点的共鸣点的同时,还能够互相补充。所以在面试时,要学会提问,有营养的对话都是在提问与回答中显现的。
最后,面试不确定性的几率其实挺大的,不要因为一次两次的面试失败而过于纠结。
五,探讨小公司与大公司
大公司跟小公司的工作体验还是有很大的区别的,作者列举了一下大公司跟小公司的优点与缺点,每个人可以根据自己的喜好去选择:
大公司的优点:
- 完备的流程与规范
- 培训机会多
- 有机会参与大型有影响力的项目
- 相对稳定
大公司的缺点:
- 充斥的官僚主义作风
- 可能只负责代码库的一小部分
- 很难获得关注
小公司的优点:
- 承担多种职责,灵活的角色转换
- 对工作的影响较大
- 回报潜力大
小公司的缺点:
- 同事的能力与素质参差不齐
- 工作环境相对较差
- 稳定性差
在当前的经济环境下,如果你刚开始刚开始自己的职业生涯,建议还是优先去大公司,大公司的经验可以作为一种背书,之后去小公司也会更有底气。
六,为什么别人晋升的比你快
作者针对职场晋升这一主题提供了一些有价值的建议:
1,承担责任
在任何公司里能让你脱颖而出的最重要法宝就是承担更多的责任。
假如你没有被赋予更多责任呢?那就需要去主动寻找,没人愿意涉足的领域就是搜寻机会最好的地方。可能是一个没人愿意碰的遗留应用,或者代码库里某个令人讨厌的模块,正是因为没有人愿意碰,所以你不需要去抢,这些将成为你日益强大领土重要部分。另一种间接承担责任的方式是成为团队中其他人的导师,自愿帮助新人加速成长。
2,让别人看到你
如果找不到方法让你的老板或者高层管理人员知道你在做什么,即便你是团队中最优秀的工程师,那你的所有努力也是徒劳的。
英语里对应有一个词叫"visibility"就是形容这种能力,我们经常听到硅谷的华人工程师抱怨自己的功劳全被印度工程师抢走了,重要的原因就是你没有重视"visibility" 这种能力。那么如何加强这种能力呢,有以下方法:
- 积极提供演讲或者培训
- 会议上积极发表意见
- 定期与老板会面,增加曝广度
3,保持一颗开放和学习的心态
每个人都不是一座孤岛,保持一颗开放和学习的心态。这个学习不光是技术,其他方面,比如领导力,管理,商科,甚至是人文社科,都是可以学习加强的地方。你能掌握的东西越多,随之而来的机会也就越多。同时,千万不要忘记分享自己学到的东西,分享,会让你的学习成为一个输入输出的闭环。
4,成为问题的解决者
在任何团队中,都会有人告诉你为什么这个行不通,为什么那个这么难,这样的人不胜枚举。千万不要成为其中一员,相反,你要成为那个为各种问题找到解决方案的那个人,要成为用于执行这些解决方案而获得成果的那个人。
七,辞职的正确姿势
辞职是每个人职业生涯中几乎都要碰到的一件事情,这会说一下辞职的正确姿势:
- 1,不要感觉辞职是对公司的背叛。你跟公司的关系更多的是一种利益绑定,你提供时间,公司给你金钱,就这样,也许公司的同事对你非常好,也许公司的福利不错,但是不要因为对公司的感恩而错过了自己的职业生涯。因为我们听到过太多对公司很有感情,但最后被公司裁掉的事迹。良禽择木而栖,自古以来亦是如此。
- 2,理智的辞职。辞职不是拍拍屁股就走人,有一系列事情需要理智的去做。首先你要有非走不可的理由,比如说找到了更好的下家,第二,你要尽量将现在的工作交接清楚,同事毕竟还是在一个圈子,不要闹的不愉快。第三,尽量不要裸辞,裸辞之后找工作,心里压力会比骑驴找马大很多。
八,技术没你想象中的那么重要
- 不要陷入对技术的狂热之中。对技术虔诚的一大问题是,我们中的大多数崇拜某项特定的技术,只是因为自己熟悉这项技术。我们不可能充分了解所有的技术,所以会优先认为自己了解的技术就是最好的。尽管这一现象看似合理,但其实具有破坏性和局限性。当我们武断的只根据自己的经验就固执己见时,很容易只与自己理念相同的人打交道而排斥其他人,最终只会固步自封,墨守陈规。
- 技术没有你想象中那么重要。相信大部分工程师或多或少都会有一些技术信仰,相信凭技术可以改变世界,认为产品经理,运营等职位门槛太低。但事实是,技术确实重要,但永远只是手段,是一种工具,最终的目的肯定还是去解决人类自己的问题。所以,没有必要夸大技术,也没有必要贬低其他工作的重要性。