软技能 2:软件开发者职业生涯指南(日常生活篇)

933 阅读20分钟

前言

之前同事推荐了本书,是 John Z. Sonmez 的《软技能:代码之外的生存指南》。上豆瓣搜了一下,发现出了第二版,就浅整理一下(绝不是因为第一版内容太多了😃),方便我自己回顾,也希望能帮助到大家。

全书架构

这是一本为软件开发者量身定做的职业发展指南,分为五大部分:入行篇找工作篇软件开发篇日常工作篇职业发展篇。与第一版《软技能:代码之外的生存指南》相同,全书没有关于代码的指导;不同点是本书侧重于职业发展中的各项“软技能”,而第一版则更多关注软件工作者生活和工作中的技能,比如提及了健身和副业相关。第一版的内容大家感兴趣的话可以去翻一翻,有很多掘金大佬已经整理了~

2.jpg

主要内容

这篇介绍的是第四章节也就是日常工作篇。我没有按顺序读,先挑选的自己感兴趣的部分,后面有时间的话会把其他章节补充进来。 想了解其他章节内容的小伙伴可以点👇的链接(快码加编中):

软技能 2:软件开发者职业生涯指南(职业发展篇)

与他人相处

一、与同事相处:和而不同

把握好第一印象

  1. 自信!!!不要畏手畏脚让别人觉得你是个小趴菜
  2. 在适应期提问一些聪明的问题,展现勤于思考的一面
  3. 穿着要比平时高一到两个级别(人靠衣服马靠鞍),不要担心太正式,这只会让你显得很专业
  4. 记住别人的名字,打招呼的时候用上,尽量表现得外向友好

尽己所能帮助别人

置身戏外

  1. 当有人来到你的面前开始上演“宫斗戏码”的时候,既不鼓励它也不响应它
  2. 有条件的话戴上耳机 🎧
  3. 发生冲突时,尽量保持冷静,不要生气和争吵
  • 你的目标应该是找到解决问题的最佳方法,而不是极力去证明自己是对的,也不是要证明你比同事更聪明,更不是为了证明他们的想法特别蠢
  1. 不要谈论敏感话题,比如政治、宗教、女权...

面对不同类型的同事,分情况处理

  1. 无所事事的同事:闭上嘴不要抱怨为什么他这么闲,尽你所能做好你自己的本职工作,其他的都和你无关
  2. 话痨同事:留出专心工作的时间,为了防止他在你旁边喋喋不休,可以委婉地表示自己目前很忙,比如在办公软件上标注“请勿打扰”状态
  3. 有毒的同事:如果你和这种人同处一个团队且必须经常要跟他们打交道,那么可以考虑换个团队甚至换工作
  4. 对于其他状况,推荐阅读:戴尔·卡内基 《如何赢得朋友及影响他人》

二、与老板相处:顺势而为

了解你的老板,了解他的衡量标准是什么

很多员工无法与老板恰当相处,大多数是因为他们没有透过老板的眼睛看世界。他们不知道老板对下属的真实期望是什么,也不知道如何从老板的角度来区分好与坏。要想真正了解你的老板,你就需要了解老板的衡量标准是什么。
现在,假设一下你是个老板,你希望自己的员工能做什么呢?

  1. 按时保质完成工作,甚至可以提前完成
  2. 向你汇报项目进度,让你知晓项目是否还在正轨上
  3. 能够处理任何可能会降低团队效率的问题

同时,你可能想要:

  1. 了解团队正在做什么工作
  2. 了解项目的排期、进度、风险(任何可能会导致项目失控的重大问题)
  3. 了解团队的效率
  4. 团队具有自驱性,能自动自发自主地运作,尽可能多地自己解决问题而不需要你的干预


归根究底,老板真正关心的其实是 状态信息。如果你想知道你要怎么做才能对你的老板更有价值,你应该集中精力让你老板知道这些事情。所以不要害怕写周报,甚至越详细越好~

老板我来啦.gif

认识到“责任在我”

不管老板是什么类型,是好是坏,都要明白如何与老板相处融洽其实真正的责任在你自己身上。要尊重老板权威,不要整“00后重拳出击整顿职场”那一套,除非你有家业可以继承🥰

如何让老板的工作更轻松

向👆所说,了解了老板的衡量标准,你可以做下面两件事让他的工作更轻松:

  1. 提前预测老板的需求,每天汇报你当天做的事情,以及其他老板认为会有用的重要信息
  2. 积极主动地在团队中勇于承担责任,做一个能够确保让一切顺利进行的开发者(兜底)

与坏老板的相处之道

如果你遇到一个可怕的老板,你可能需要了解他属于哪一类以及如何与这类老板相处。

  1. 事必躬亲的老板
  • 通过我们上面提到的“让老板工作更轻松”的方法来赢得他们的信任
  • 超量汇报状态信息,比老板要求提供的还要多还要琐碎这样他就会嫌你啰嗦
  1. 喜欢威逼恫吓的老板
  • 认真考虑如何彻底摆脱困境,去寻找另一份工作
  • 如果要坚持下去,你就要立场坚定,坚守自己的底线,绝不含糊
  • 把一切都记录下来:你们之间的对话、他滥用职权的实例等(具体到时间和人物)
  • 淡定,耐心等待你的时机但不要硬撑着假装不在乎
  1. 无知的老板
  • 花点时间来确定他是否真的是个白痴。其实我们很容易把那些不同意我们的见解或者看待事物与我们观点不同的人看作是蠢货,而事实上他们很可能比我们认为的要聪明得多。
  • 试着问一些聪明的问题,引导老板走向正确的方向和小孩说话的方式大家都懂得吧
  • 尽量简单地解释每件事,不要用复杂的技术术语跟他说话
  • 做好你的工作,做到优秀。变成老板的盟友、顾问、绝对的依赖
  1. 奴隶主一样的老板
  • 明确底线,表明你有其他责任要承担,在工作的时候你会努力工作并完成工作任务,但你不会牺牲你的家庭和其他责任来无偿加班
  • 然后努力工作,异常努力地工作(要专心致志、富有成效!)
  • 确保每周都发送详细的周报,证明你的工作成效
  • 避免陷入“不可能完成”的进度表中不能自拔,尽可能地给出一个现实客观的工时估算
    • “根据我所掌握的数据,我认为至少需要 X 倍的时间才能完成任务,但我不能给出一个绝对肯定的答案。我所能做的就是尽我所能合理规划,随时汇报我的进展状况,并且在迭代过程中尽可能频繁地修改估算。”

三、与测试相处:协力共进

首先要知道测试什么

在开始编写代码之前与测试交谈一下,对将要测试的内容达成一致,这些应该都是你需要完成和保证的基本功能。“我就是按照需求规格写的代码”不是一个很好的借口。

先自测❗️

测试不是保姆,而是最后一道防线。在代码进入测试阶段前,你有责任测试所有基本的明确的场景(建议:了解那些不太明显的场景)

避免陷入“发现bug/修复bug”的连环套中

如果陷入这样的连环套中,大家的工作将不会是关注如何提高团队的整体效率,而是更多地聚焦在评价个人的工作成果如何如何。

帮助测试人员实现自动化测试

给予测试认可和赞许

这点深表赞同,一个好的测试是会让你有所成长的。要收起你的骄傲,真诚地给予他们认可。

工作 vs 生活

看到这里真的是醍醐灌顶!当自己承担超额任务时,需要经常加班,甚至周末也得坐在电脑前时,我会觉得我的生活时间被严重压缩。但是这一节无情地揭露一个真相:
工作与生活平衡就是一个神话

“如何平衡工作和生活”这个概念要求你把自己的生活分割开来,告诉自己这段时间是为了工作,而那段时间属于生活,两者是两条永不相交的平行线。当你试图把工作和生活区别对待时,你会爱上一个、害怕另一个,你就剥夺了自己拥有一个充满乐趣、丰裕充实、目标明确的生活的机会。事实是,和其他任何事情一样,你的工作就是你生活的一部分。我们必须停止从“平衡工作/生活”的角度思考,而要开始从“生活的质量”的角度思考。

事实上,生活包括工作,哪怕是困难的工作。但是为了避免因工作而产生的消极情绪,我们可以做以下事情调整自己的心态:

  1. 先用自己的时间做自己的事情
  • 每天早起一小时,把这段宝贵的时间投入在自己身上,健身、阅读、做任何自己感兴趣的事情......
  1. 把照顾好自己放在首位
  • 如果你没有照顾好自己、满足自己的需求,如果你不是一个朝气蓬勃、前途远大的人,你也不会对你周围的人十分有用。当你缺乏自我的时候,你带给别人的只有痛苦和怨恨。因此,在帮助别人之前,先给自己戴上氧气面罩
  1. 尽量避免自欺欺人,告诉自己你别无选择,就好像你真的无法控制似的。你总是有选择的
  • 生活中,要想得到你想要的,总是要有一定程度的牺牲。你愿意为此而付出多少代价?
  1. 谨慎选择你的人际关系,只保留那些对你来说最有价值和最为重要的
  2. 活在当下
  • “一旦我实现了这个目标,一旦孩子们都长大了,一旦我找到一份更好的工作,一旦达到了这个财务目标,我就会真正过上自己的生活。” ❌
  • 充分利用你生命中的每一刻,无论你是在工作,还是在家从事你最喜欢的爱好,或者与朋友和家人相处。(推荐阅读:📚 Eckhart Tolle 《当下的力量》

团队协作

首先明确一个观点:一荣俱荣一损俱损

我们是命运共同体,团队的整体成功比团队中任何一个人的成功都更为重要。

拥有共同的目标

所谓人心齐,泰山移。

对团队负责

虽然个人的表现也很重要,但是大多数软件开发行业的管理者更关心团队的整体表现。

  1. 不要做那种只关心自己的人,不要成为表现优异而善于单打独斗的人
  2. 积极承担责任,询问其他人是否需要帮助
  3. 让团队成员知道你在依靠信任他们
  4. 如果有可能的话,尽力指导他们带着其他人一起跑,而不是自己拿金牌🏅️

沟通与协调

养成沟通合作的习惯:让团队其他成员都知道你在做什么、你遇到了哪些问题,这样你才能集思广益,也才能对团队有所贡献。比如说 code review,定期技术分享......

坦诚 + 机智

  1. 不要回避良性的冲突,当出现问题或者你有不同的意见时,一定要说出来大家都是为了项目好
  2. 当团队成员阻碍目标的实现,你不能袖手旁观,也不能认为:“这不是我的问题。”这是你的问题。这是团队里每个人的问题。(时刻牢记:团队的事就是自己的事)
  3. 交流前先想想别人听到时的感受,换位思考,选择合适的表达方式
  • 这里插播一句,想到了沟通的四大黄金法则:先说对方想听的,再说对方听得进的,然后再说你该说的,最后再说你想说的

学会推销自己的想法

受传统文化影响,大家倾向于谦虚低调的行事作风。大多数程序员只顾埋头做事,一旦听到“推销”就很排斥,甚至不屑于做这样的事情,但是这种行为只会把你从核心圈推得越来越远。无法有效推销自己的想法,想法再好也没人关注,何谈扩大话语权和影响力?因此要学会推销自己的想法。

最基本原则:不要陷入争论

具有说服力的方法

  1. 从找到共同点出发争论是寻找差异,而说服是寻找共性
  • 强调你的建议与他们已经提出的其实是一致的,或者是服务于他们的核心目的的
  • 收回自己的想法,以一种能让你的听众更满意的方式重新组合它
  • 例子:你想建议在一个项目中应用一个全新漂亮的框架以显著地提升代码的可维护性,你应该怎么和老板说?
    • “这样做可以显著地提升代码的可维护性” ❌
    • “如果切换到新的框架将缩短开发时间,并有助于项目更快完成” ✅
  1. 通过提问来引导人们找到这个想法,而不仅仅是给他们现成的答案
  2. 让沟通更加清晰
  • 清楚简洁
  • 使用听众可以很容易关联起来的类比例子
  • 一定要清楚你到底在交流什么
  • 可以通过创建一个博客并定期更新/参加交流小组来锻炼自己的沟通表达能力
  1. 借助权威
  2. 树立权威
  • 将文章/想法发布到网上
  • 用确定的方式说话不要使用“应该”、“或许”这样的词汇,展现自信和热情,但是态度要放松不强势
  1. 先给出一堆有价值的信息,比如你想应用 xx,最起码先给大家演示 xx 是什么
  2. 最重要的是 勤于练习,不要害怕表达和分享自己的想法

着装

虽然互联网对衣着没有明确的规定,但是最好保持整洁,建议定期打理发型,每天保持基本的卫生习惯。刚入职的一段时间甚至可以穿得比平时高两个级别,有实验表明,”制服“会无形中影响别人对你的看法,它会使你的专业水准和地位超过你目前的水平。同时,还有一个小技巧让你充满辨识度:在着装上添加点个人风格和个人眼光,比如穿得潮流或者特殊一些,毕竟”矛盾等于魅力“。

应对偏见

这部分内容本来是在绩效评估后面一节的,但是我想把绩效评估和提拔晋升放在一起聊,就把“如何应对偏见”提到前面讲了。

  1. 接纳(“不管你是谁,因为某些超出你的控制范围的原因,都会有人对你有偏见)
  2. 给自己最好的机会远离偏见
  • 明知道什么会引起偏见还要去做 ❌
  • 如何做:对自己进行评估 -> 找出在哪些方面可能会引发负面的根深蒂固的观念/偏见 -> 找出可以改变但不需要牺牲核心利益的 -> 改善
  • 可以从简单的开始做起:衣着、说话口音、惯用词汇......
  1. 不要自我隔绝
  • 和那些“不是你的人”的人交流,扩大你的“部落”
  1. 自信坚韧"暴君的极限是由反对他们的人的忍耐力所决定的"
  2. 尽可能无视它,心里默念:这些都是鸡毛蒜皮的小事,我没有时间精力纠缠在上面
  3. 不能无视的话就勇敢举报吧
  • 如果因为种族、性别、宗教、性取向等原因而受到不公平对待,请直面对方亮明底线
  • 威胁/恐吓/说教/乞求 ❌
  • 如何做:记录详细事件、向人力资源/上级部门举报、寻求法律途径

绩效评估

为了安全地度过绩效评估,你需要做以下几件事:

  1. 提前着手准备
  • 你和你的老板首次讨论你的工作表现如何、你还需要在哪些地方做出何种改进......这些事情不应该发生在你的年度绩效评估过程中对临时抱佛脚 say No
  • 循环这个过程,不断迭代:制定计划 -> 询问改进 -> 着手去做 -> 定期汇报进度(任何事情)-> 回顾检查修正
  • 同时,记录和老板的对话,表明日期、时间和确切的对话内容。
    • “人们有强烈的意愿要保证他们过去所说的与所做的完全一致。”如果你的老板说你做得很棒,而且你现在也没有什么需要改进的,他在绩效评估的时候也会迫使自己说出同样的话。
  1. 让你的目标众所周知
  • 你对本次评估的期望或目标是什么?
  • 你想获得升职吗?
  • 你想得到完美的评估结果/员工排名?
  • 为了努力克服去年评估中的某一项不足,你希望它今年能成为一项优势?
  • 不管是为了什么,都需要让老板和同事了解到你对自己的绩效评估结果的期待是什么,并且你正在为此努力
  1. 跟踪和记录进展
  • 不止周报和“高光时刻”,你还可以记录读书、培训以及其他任何能展现你正在稳步迈向目标的所有进展
  1. 写文档,记录“你需要做什么”、“你是如何做到的”、和所有其他相关的内容(数据指标上的提升、同事的赞赏......)
  • 万一受到不公正的待遇,走到申诉的流程时,这将是你证明自己能力的证据之一


当然,绩效评估也有给自己打分的这个步骤。在这方面,你需要做的是在其他所有领域尽可能高地评价自己,只有在你最弱的那箱给自己一个低于“完美”的分数。不用管别人是如何打分的,也不要被“公司对评级这块要求有特别高的要求”这种说法吓到请勇敢地给自己打A或者S
❗️需要提醒的是,如果你还需要给同事打分,请打上完美的分数。不要中伤你自己,也不要中伤你的朋友。

提拔和晋升

如何在绩效评估过程中取得优异成绩,并不代表着你就可以获得提拔或者晋升。你必须更有战略意识,更仔细地谋划此事。 以下是你需要做的事:

  1. 选择职责,职责就是权利
  • 找出那些没人愿意触碰的项目和领域,接管它们
  1. 积极主动
  • 投资对自己的教育(读书、听课、专业培训、参加研讨会/行业会议......)
  • 直截了当地说出自己的目标在绩效评估之前
  1. 打造个人品牌,让自己在公司之外有更多的价值
  2. 成为资产,让公司赚更多的钱
  3. 确切地提出你想要的加薪数额
  • “更多”听起来更贪婪,“更多”缺乏确切的定义
  1. 不要制造威胁说你要离开没有谁是不可替代的
  2. 不要谈论你为什么需要钱,同情牌在商业上并不好使


当然,如果你做了以上的所有,还是没有得到自己想要的结果,那就去别处你总归是有选择的

身为领导之道

如果你成为领导,那就不再是单纯的代码仔了。写代码和做管理是两回事。
以下是给你的建议:

  1. 以身作则先自己做到,再要求他人
  2. 成为楷模,在你想让你的团队跟随的每一个领域
  3. 让自己承担最大的责任,多走一公里,甚至十公里
  4. 不仅为自己的错误负责,还要为团队中其他人所犯的错误负责
  5. 合理授权,不要事必躬亲
  • 步骤一:交代任务 & 意图尽可能清晰和简洁
  • 步骤二:明确操作流程(相当于规定个大纲,其他让团队成员自由发挥)
  • 步骤三:花精力培训和指导成员
  • 步骤四:定期检查成果
  1. 做一些牺牲,背负更多的期望OKR你背

ea2c10305003852069e6e9d8288b2f92.gif

科技女性

作者单拎了一节出来聊科技领域中的女性以及她们是如何被看待的,他还表明了自己的担忧。哈哈哈哈,果然不管是在什么地方,两性话题都需要谨慎。

我心里想:“如果写下这么一章,那么我到底会失去什么?”然后我想象着一群愤怒的“暴徒”举着干草叉追着我,但因为我是一个热爱真理、喜欢不顾危险帮助他人而且还有点儿愚蠢的人,所以我还是决定把本章写出来。

给女性的建议:

  1. 不要去自寻被冒犯的理由,让事情越少影响你
  2. 不要忽视真正的问题,确定底线
  3. 不要成为男人,要成为你自己
  4. 利用性别的优势"如果你拥有它,那就好好利用它吧"
  • 你自己的优点和能力是你立足于工作场所的首要价值,你的女性优势只是锦上添花而已
  1. 要学会谈判,推荐阅读 📚 《掌控谈话》(book.douban.com/subject/303…

给男性的建议:

  1. 不要施恩施惠
  2. 知道男女有别,关注并尊重差异
  3. 不要把感情上的挫折都发泄在女人身上(我觉得这个有点多虑了😂)
  4. 保持平常心,平等待人

思维导图

截屏2023-07-04 下午5.50.27.png