程序员的代码技能聊得很多了,今天谈谈程序员的「软技能」。我在带团队的六年中发现,程序员们在职场都有一个共同的困扰:“写代码好像都没什么问题了,日常工作基本上都是应付业务需求做开发,好像找不到其它更大的附加价值了,应该找一些什么样的发力点才能让自己的价值更突出呢” ?
这就是典型的硬技能“看似”没有什么问题了,瓶颈卡在了软技能上,所以想聊聊程序员的软技能。注意:本文讲的软技能 ≠ 心灵鸡汤,都是实实在在要学的技能。结合自己的个人心得与梳理,与大家做个分享,一起学习。本文提及的软技能,是相对于“硬技能”而言的。对于程序员来说,硬技能就是计算机专业技术能力,软技能则是专业之外的所有技能,包括职业规划能力、处理人际关系能力、专业态度、做事的方式和方法等。《哈佛商业评论》的一项研究指出:对 2000 家公司调查后发现,比起硬技能,公司更看重员工的通用能力(这里的通用能力 = 硬技能 + 软技能)。所以说,软技能的重要性一点也不比硬技能低。很多初入职场的同学会存在一个错误的观点,“软技能是可有可无的,程序员就应该注重硬实力,硬实力才是我们吃饭的手艺”。很多时候,我们的硬实力(技术水平)已经完全能够胜任每一个编码需求,我们向上发展的瓶颈,可能恰好就是那一些看起来虚无缥缈却无比重要的“软技能”。硬技能通常比软技能更容易定义和评估,软技能更多涉及行为或思想,也就是个性特征和认知能力,它更难评估。但是,不管在什么行业做什么工种,软技能都适用,掌握得当,职场会受益良多。工作中需要哪些软技能?比如时间管理、沟通、学习方法、工作方法、价值观、大局观、人际交往、逻辑思考、领导力等等,这些加起来可能几天都说不完。很多软技能是因人而异的,比如学习方法、领导力等,所以今天的分享主要举例阐述我个人认为非常重要的八种软技能。程序员最重要的八种软技能
有一本书叫做《软技能—代码之外的生存指南》不知道大家看过没?这本书最先提到的软技能就是人际交往,这也往往是程序员们最缺失的一种软技能。不要只是埋头写代码
程序员遇到的所有需求都来自于人,使用软件的是人,上下游沟通的是人,而埋头写下能够让计算机执行的代码只是我们工作目的中的一个环节而已。写一手好的代码是我们的基本技能,但是过于埋头写好代码却忽略了人与人之间的连接,这往往会带来更大的问题,比如信任感、亲切感的丢失对工作协同的影响。与人打交道是我们的基本职场技能,这跟我们上学时的语数外是一样的,一旦偏科严重,想考一个好成绩就很难了。主动与人打交道
《能力陷阱》一书中有段话令人记忆深刻:“许多人认为,人际网络本质是虚伪的,认为是在‘利用别人’,认为带有目的性的人际交往让自己变得‘虚伪’、‘不干净’、‘像舔狗’,从而拒绝在舒适区域以外建立人际关系。”这段话想必说出了一些人的心声,但当你抱着双赢的思维去沟通,就不会有这种负担了。《能力陷阱》中还有一个非常核心的观点,大意是说“当一个人擅长解决某一场景的问题的时候,时间越久也许越离不开这个场景,也许这一生就定格在这个场景里面出不来了。”特别是对于技术管理者来说,要做一个连接器,一个自己部门跟其他部门之间的连接器,走出去是走出「能力陷阱」的第一步。LinkedIn 的创始人德·霍夫曼发现,当你在职业中寻求帮助时,最远不会超过三度,即我们大概只需要通过两个人就能与其他人取得联系。但是我们并未能很好地利用这些关系,因为我们大多数人都没有意识到我们的人际关系网络力量到底有多强大。阿里侠客行管理者培训里有一句很经典的话——脸皮薄容易耽误事。别独自用餐
有一本非常畅销的书叫做《别独自用餐》,核心观点也是论证社交的重要性,讲述如何建立自己的人脉圈子。如果你不知道如何建立自己的人脉圈子,不防从工作日的午餐开始,试着主动约人吃饭。一段时间以后,你会发现自己的圈子以及获取的信息跟以往有很大的不同。记得之前听到过一个段子,“老板们如果人不在工位或会议中,那一定在咖啡厅”。层级越高,资源、信息的共享就变得尤其重要。把用餐时间利用起来,是一个很好的点子。换位思考
学会倾听、关注他人感受,具备同理心。在跟人打交道或沟通之前,换位思考一下,如果你是对方想听到什么或看到什么,时常锻炼换位思考的思维,时间长了会发现非常有用。如果不知道对方是如何思考的,那就不要说话,倾听即可。举个例子:我们常常会为了视觉还原问题而烦恼,设计同学找到我们解决像素级别问题的时候,我们是不是会烦躁?功能都开发不完,哪有精力去还原视觉?常常就会不耐烦地沟通。如果这时候换位思考一下,产品最后做出来不是设计同学想要的或者觉得不合格,是不是也会有问题?这是他的工作职责所在。站在对方的角度思考,给他一个合适的解决时间即可。 结构化思维能力
结构化思维是一种从无序到有序、从混乱到清晰的思维能力,可以帮助我们快速加工处理繁杂的信息,提炼要点,从而更加清晰的表达。这个话题很大,我们只说关键的两个点。概念不能多
有研究证明:人类短期记忆的容量大概在 7 个左右,范围是 5 到 9 个,所以尽量不要超过 7 个概念或项目。这在演讲或沟通中也非常重要。有逻辑关系
大脑容易记住有逻辑关系的事物,逻辑关系分为纵向逻辑关系和横向逻辑关系。- 演绎逻辑:线性的,最终会为了得出一个由逻辑词引发的结论,比如因果关系;
- 归纳逻辑:将一组具有共同点的事实、思想或观点归类分组,并概括其共同性/论点,比如不同的群体。
横向逻辑关系
插播:麦肯锡 40 年经典培训教材《金字塔原理》,每个职场人都必须看,强烈推荐,就不多介绍了。
黄金圈法则(What、How、Why)
很多时候我们都知道 What 和 How,但是不知道 Why(或者说没有仔细思考 Why),就容易陷入到成长瓶颈。黄金圈法则也是一个经典的学习的三部曲。- 我们接到一个功能需求,先思考可能的本质(为什么有这个需求),再去思考怎么做。别停留在 What、How,而没有 Why。
- 我们知道一个技术框架怎么用,是做什么用的,但是知道它底层原理和为什么这么设计的人并不多。
- 我们要做架构迁移,比如一路向北,要做 Pouch 容器迁移 ASI,有做凌霄独立化部署,有没有去理解背后的 Why,为什么要去做这件事情。
沟通能力
上下/平级之间的沟通
记得刚带团队上侠客行课程的时候,老师说过三句话,至今记忆犹新:“向上沟通要有胆量,平行沟通要有肺腑,向下沟通要有心肝”。向上沟通要有胆量
通常我们对上级沟通方面有几个常见的假想误区,比如:这些其实就是一种安慰自己的逃避做法。前面讲的“脸皮薄容易耽误事”,这句话也可以放到这里用。平行沟通要有肺腑
- 双赢思维:沟通目标要让对方也觉得有价值,而不是站在自身主观的利益上去沟通
- 放下面子:你不服我、我不服你,相互避让、多一事不如少一事的态度是横向沟通最大的障碍
向下沟通要有心肝
- 要有视人为人的态度,员工不是机器,是需要情感连接的
- 不能对人不对事,不能围绕人的评价来作为事情的评判标准
- 批评员工要有讲究,要对事不对人,批评事,不要打击人,更不能给人贴标签。之前看到过一个如何批评员工的 AID 批评三步法(也称为发展性反馈)。
- Desired outcome:期待的结果以及探讨取得结果的行动
沟通中的非暴力
职场中暴力沟通很常见,只是很多人往往都没意识到,比如:“这做的是什么”、“你让我很不满意”、“你懂我意思吗?” 思考一下,这些话都有什么样的问题?《非暴力沟通》一书中提到了经典的表达框架:观察 --> 感受 --> 需要 --> 请求,对应的还有一个倾听的框架:倾听 --> 体会 --> 反馈。沟通中的结构化
- 重要的事情说三点,比如三个论据、三个论点、三个观点、三个好处等等(最简单的结构化表达)
- 先说结论,再说过程和原因,然后再说结论,这也是用好「三点」这个好的结构化工具
- 只讲 How、What 不讲 Why,是一个非常典型的表达问题。我遇到过好多类似的对话都是不带 Why 的,这让人感觉无法回答,比如:
- 英布,申请一个紧急发布,麻烦审批下,X 业务线上有个 bug!(具体是什么 bug ,带来什么影响?)
- 英布,X 项目比较赶,这周末可能要申请下加班!(哪个项目不赶,为什么你的这么特殊?)
- 英布,有没有资源支持下 X 需求?(没有资源的原因是什么?)
- 这个问题,X 老板说下周一定要上(老板有没有说为什么,为什么是下周?)
说话的方式简单点
“对于现在这个业务,暂时还没有跑通一个模型,毕竟基础业务逻辑没有形成闭环,更别说做成生态了,我们还在夯实基础的阶段,好好打磨一下我们的产品,最终形成一套组合拳打法,才能有效赋能生态圈,最终反哺整个经济体。”
“ 过去我们主要依靠推荐技术赋予的信息分发能力、跨端联动多个产品自研,实现深度共建,形成组合拳,打造内容生态闭环,以此赋能客户用户创造价值。未来我们要增加横向不同场景价值,延长服务链路。同时纵深满足用户需求,借助人类年龄的自然势能,在小中青多个年龄用户深度渗透…… ”
互联网黑话、空洞大词,以及各种让人听不懂的专业术语,这些在前几年已经在互联网社区备受诟病了,我们记住说话尽量接地气就好。改掉那些不好的口头禅
每个人都有自己的口头禅,很多时候会无意识的说出来,如果觉得自己有口头禅,不防思考下,口头禅会不会有一些「暴力」因素,比如以下左边这些,都可以有更好的改进:- “你懂我意思吗?” ----> “不知道我表达清楚了没...”
- “我和你说实话” ----> “我内心真实的想法是...、我的直觉是....”
- “我之前就说过 xxx” ----> “之前我们有过一次这样的沟通,结论是...”
- “你这个逻辑不对” ----> “我的观点跟你不一样,我认为应该是这样的,...”
- “我觉得你应该” ----> “我的建议是....”
排版
良好的写作能力,这对于程序员这个高学历群体来说都不是问题,但是我发现很多同学写出来的文章、设计文档等都没有一个良好的结构以及排版。良好的结构和排版可以让人读起来更愉悦和易理解,强烈大家按照《中文排版指北》来排版。结构化的写作
写文章之前先列出大纲,语雀右侧的大纲或思维导图都是很好的工具。自己先读完大纲换位思考下看看是否易懂,好的框架可以牵着读者的思路走。周报/月报的表达
很多同学写周报或月报的时候大部分都是流水,这是最典型的「应付型」报告。周月报的意义是自己梳理和总结,并和其他人完成信息同步。如果全部都是流水账,就失去了总结的意义。 自我营销能力
为什么要自我营销?
一线演员与歌手的硬实力真的比酒吧歌手和十八线配角强吗?明星发微博只是想分享自己的动态吗?我认为核心是要「提升影响力」。影响力的两种分类
之前看过两种不同的职场影响力类型描述,职权影响力与非职权影响力,分别由不同的因素组成:因为「职权影响力」需要时间的积累,所以对于大多数需要提升影响力的人来说,「非职权影响力」更需要关注。提升影响力的几种方式
- ATA(阿里内部技术社区):把思考和成果都记录和沉淀下来,分享给更多的人
- 分享会:多参与分享会,不论大小,都是提升影响力的机会,但切记要在不影响工作进程的条件下
- 碎片化讨论:有助于即时思考的表达,但不要为了发声而发声
演讲能力
不知道大家发现没有,层级高的同学演讲能力通常都不会差,而好的演讲水平不是天生的,需要我们不断地进行学习和训练,一场好的演讲通常由以下几部分组成:提前了解听众的诉求:针对面向的群体类型,以及听众的诉求来设计这一次的演讲
好的开场是成功的一半:开场可以来一些小互动以及调研等,把听众的思绪带进到分享主题里来
好的内容结构:参考「结构化思维」的内容
PPT 只是配角:把结构内容呈现到 PPT 上,切记不要把一个好的演讲全部归功到 PPT 上
把控好整体节奏:思考如何让听众跟着你的思路走,一旦跟不上,就算不上好的演讲
趣味性的互动:合适的情况下可以来一些互动,避免单向输入带来的乏味
肢体语言:好的肢体语言可以让演讲更生动
声音控制:流利的表达、抑扬顿挫的表达会让人更能接受你的信息
收尾时强调重点:跟写文章的中心思想类似,把听众的思绪拉倒中心思想上来
有一个演讲法则称为“10-20-30”法则,具体来说就是幻灯片不要超过 10 张、演讲时间不要超过 20 分钟、字体大小不要小于 30 号。
协同/领导能力
在工作中我们基本上都会遇到团队内部协同、跨团队协同以及跨部门协同的情况,特别是到了一定的层级,需要做项目管理、团队管理之后,协同与领导能力更为重要,我们也称为「借人成事」的能力。这里我们要学习很多协同领导方面的相关能力,比如:- 项目管理(预期/过程/质量/风险):项目管理是个专业活儿,每个程序员必学
- 开好会:需要协同的角色越多,开会的效率就变得尤其重要,在大厂有多少程序员的时间是花在了开会上,这部分建议参考集团内部的《高效会议指南》
- 复好盘:柳传志在《我的复盘方法论》中说到:在这些年管理工作和自我成长中,复盘是最令我受益的工具之一,可见复盘对人成长的重要性,这里推荐一本书叫做 《复盘+:把经验转化为能力》
- 做到事事有回应、件件有着落、凡事有交代:做一个靠谱的职场人,三个最重要的要素
- 保持正能量:谣言与八卦在职场中常常被人津津乐道,但也会带来负面影响
人的一生中不可能不遇到压力和挫折,抗压能力的高低,会影响我们的生活与工作,抗压能力越高,我们越容易适应当下的环境,所以说,提高抗压能力是非常有必要的,这里可以给一些提升抗压能力的建议,也是我个人在工作之外会经常保持的习惯:- 有三五好友可以交流与倾诉:遇到压力和挫折的时候,身边如果有人能够相互鼓励,压力会小很多
- 保证充足的睡眠:很多时候,我们遇到压力和挫折的时候会失眠,但我们尽量在挫折不出现的时候就保证充足的睡眠的习惯,压力来的时候不至于影响太大,压力越大越无法入睡,会进入一个恶性循环(这里没有理论做支撑,自己的感受)
- 保持运动习惯:保持对自己兴趣的运动习惯,和三五好友打球,充足睡眠自然来
这八种基础软技能在程序员的工作中比较重要,希望能够对看到本文的读者有一些启发。人生职业的道路上还有非常多的软技能,比如养生、理财、素质、价值观等等,下次有机会在一起探讨,谢谢!(正文完)
你可能还想看关注我们欢迎关注加星标✨ 每日推送不错过