SOFT SKILLS: The Software Developer’s Life Manual

1 minute read

Published:

阅读 《软技能:代码之外的生存技能》 的笔记. 这本书内容还挺丰富的, 包含了从职业到日常生活的方方面面, 非程序员应该也可以通过这本书了解点什么.

一本从 “人” 的角度关注软件开发人员自身发展的书

这篇笔记主要内容摘录自该书, 主要是防止看完就忘的恶习, 并顺便记录一点碎碎念

职业篇

你所能犯的最大错误就是相信自己实在为别人工作. 这样一来你对工作的安全感已然尽失. 职业发展的驱动力一定是来自个体本身. 记住: 工作是属于公司的, 而职业生涯却是属于你自己的. —— 厄尔$\cdot$南丁格尔

从非同凡响开始: 绝不要做他人都在做的事

  1. 当你为了谋生一头扎进写代码的世界时, 其实你和中世纪小镇上开铁匠铺的铁匠没什么差别.
  2. 转变心态: 把自己当作一个企业去思考. 把雇主当作你的软件开发企业的一个客户. — 新的诠释雇佣关系的方式. (但现在是买方市场啊)
  3. 如何像企业一样思考.
    • 企业是什么构成的 — 你的 产品/服务 是什么, 你能提供什么;
    • 营销自己, 如何更好地找到你的客户;
    • 不断改进和完善自己的产品;
    • 集中精力称为一位专家;

思考未来: 你的目标是什么

  1. 现在, 你已经将你的软件开发职业当作是一个商业活动, 那么, 是时候着手制定你的业务目标了.
  2. 大多数软件开发人员都害怕为自己的职业生涯设定一个长远地蓝图. 因为惧怕选定后要一往无前, 他们希望自己有各种选择. “如果这条路错了我该怎么办呢? 如果我不喜欢自己选的路又该怎么办呢” (是我没错了)
  3. 起步阶段最简单地就是在心中树立一个大目标, 然后再建立能帮你达成这个大目标的小目标. 大目标不一定要非常具体, 只要足够给你提供清晰地方向即可.
  4. 设定达到大目标的路线. 反推一下如何从大目标到当前的情况: 如果你已经达到了大目标, 那么沿途你都经历了哪些里程碑 (生活中有哪些里程碑)?
  5. 追踪你的目标. 你应该定期追踪并更新自己设定的目标, 必要时还要调整.

人际交往能力: 远比你想象的重要

  1. 几乎所有职业都是与人打交道.
  2. 以自己为核心, 每个人都希望自己很重要.
  3. 不要轻率地否决别人.
  4. 对他人而言, 什么才是最重要的, 什么才是他们需要的.
  5. 在小事情上, 任何放弃立场或承认错误的机会对你而言可能没什么大不了的, 但对他人却可能是举足轻重的.

就业选择: 列出你的选择

  1. 做雇员时, 学习后续职业发展所需的技能, 不只是技术, 还有技术之外的东西, 如产品, 营销, 管理, 商业, 理财 等.

你是哪类开发人员

  1. 专业化很重要. 只有少数人才想雇一个”通才”, 大多数潜在客户都倾向于聘请”专才”.
  2. 一些帮助你选择专业的技巧:
    • 在你现在或以前工作的公司里, 有哪些主要的痛点? 你能成为一名专门解决这些痛点的专家吗?
    • 有没有一种特定的工作是无人能做, 或者缺乏经验丰富的人? 成为这个领域的专家;
    • 在各种会议上和用户组中哪些话题最常出现;
    • 哪类问题你回复的最多;
  3. 学富五车, 或者灵活变通并同时仍有专长让自己卓尔不群. 如果你非要二选一, 那么先从专业化开始, 再拓展分支.

攀登晋升接替

  1. 在任何公司里能让你脱颖而出的重要法宝就是承担更多的责任.
  2. 承担更多责任的方式:
    • 没人愿意涉足的领域是搜寻机会的最好地方;
    • 成为团队中其他人的导师. 为任何有需要的人提供帮助, 介入和解决别人的问题;
  3. 记日志, 记录每天都把时间花在哪儿了. (却是很有效, 实习期间每天写日报, 让我的实习轨迹一目了然)

成为专业人士

“专业” 与 “外行” 之间的区别:

成为专业人士是一种心态. 如果我们总是与恐惧, 自毁, 拖延和自我怀疑做斗争, 那么问题就是: 我们正在像外行那样思考问题. 外行毫不起眼, 外行人废话连篇, 外行人屈从于逆境. 专业人士可不这么想. 不管怎样, 他引人注目, 他恪尽职守, 他始终如一.

  1. 专业人士会严肃对待自己的责任和事业, 愿意做出艰难的选择去做自己认为是正确的事情.
  2. 一切都始于习惯. 习惯是成为专业人士的必不可少的部分.
  3. 专业人士必须对工作的优先级做出艰难的抉择. 不专业的开发人员经常浪费时间去画蛇添足, 因为他们要么不确定下一步要做什么, 要么他们得一直让被人来帮自己设定工作的优先级. 专业人士会评估需要完成的工作, 判定优先级后在开始工作.
  4. 作为一位专业人士, 你必须不断改善和提高自己的工作品质. 将品质管理应用到你工作的每个细节. (怎么进行品质管理呢?)

赢得自由 —— 如何辞职

  1. 在考虑辞掉工作之前, 你需要一个切实可行的计划.
  2. 强烈推荐先在业余时间启动你想创建的业务, 等能从这项业务中产生足以维持生计的收入时, 你再转为全职.
  3. 为自己工作比想象中难很多.

假装自己能成功

  1. 暗示自己能成功。不要因为自己没掌握或没见过某项技术,就怀疑自己的能力;
  2. 保持“我以前已经克服过那些困难”的心态,唯一横贯在“现在的你”和“未来的你”之间的是时间;

请勿陷入对技术的狂热之中

  1. 曾经我非常推崇技术,想着自己要掌握更多的技术,掌握的更深,往往就会陷入迷茫。自己要掌握什么技术,掌握到什么程度。痴迷于技术的目的是什么?
  2. 我们中的大多数崇拜某项特定的技术,只是因为自己熟悉这种技术,我们会很自然相信自己选择的是最好的;

针对“码农”的营销基础课

  1. 个人品牌;

打造引人注目的品牌

  1. 品牌的要素:1)品牌所要传递的信息;2)品牌的视觉符号;3)品牌的一致性(要专业);4)品牌的曝光率;

创建大获成功的博客

  1. 如果你的博客有稳定的访问用户,不妨围绕他们的兴趣开发产品;
  2. 坚持写高质量的博客;
  3. 提升访问量:1)评论他人的博客;2)分享你的博客;
  4. 博客改写什么:可以创建一个动态的博客文章主题列表,每当有新想法,就把它添加到这个列表中;
  5. 向优秀的案例学习

你的主要目标:为他人增加价值

  1. 不要努力成为一个成功的人,而要努力成为一个有价值的人;
  2. 人们最关心的还是自己,没人想听你的成功故事;
  3. 给人们想要的东西:人们想要什么,有什么问题需要解决,人们在害怕什么;
  4. 帮助他人实际上就是在帮助自己

百折不挠,越挫越勇

  1. 大多数人不愿意为了收获更多成就而在短期内被看作傻瓜;

学习怎样学习:如何自我教育

  1. 我们几乎是下意识地倾向于学习自己感兴趣的东西。相比其他学习方式,主动学习效率更高的方式;
  2. 自我教育时,应该聚焦在如何让自己切实参与,并尽早付诸实践;
  3. 一旦你已经实践过,并积累了各式各样的问题,立刻回到书本中。找到答案,学习新的知识,再重新应用于实践;

我的“十步学习法”

  1. 掌握一门技术的三个要点
  2. 如何开始。需要哪些前置知识;
  3. 学习范围。学习的内容包括哪些,包含哪些方面的知识,后续深入时可以做有针对性地扩展;
  4. 基础知识。该项技术地基础知识,学习哪 20% 的内容可以解决 80% 的日常问题;
  5. 学习之前,先了解自己不知道什么(unknown unknowns,即未意识到自己不知道的),关注重点;
  6. 十步学习法:1)了解全局;2)确定范围,明确自己的需求;3)定义目标,学到什么程度算成功;4)寻找资源;5)创建学习计划,列出学习大纲;6)筛选资源;7)开始学习,浅尝辄止。避免“准备过多,行动太晚”;8)动手操作,发现实际的问题;9)全面掌握,学以致用。寻找实践时问题的答案,尝试完成预设的目标;10)了为人师,融会贯通,比如写博客。1-6只需要做一次,7-10乐意重复多次;

传道授业:若要学知识,必得为人师

  1. 能将自己的专业知识教授给别人,是成为专家的一部分要求;
  2. 教学的真谛是与他人分享知识;
  3. 你有没有被别人问过一个非常简单的问题,却震惊地发现自己不能清晰地解答。你刚开始会说:“这个,很明显…”,接下来只有“哦…”
  4. 在教别人的时候,你需要重新组织大脑中的所有数据。在学习新东西时,知识点都是已经组织好的,但是一旦进入你5. 的大脑,它们经常是以非常混乱的形式存储起来的 — 或许这就是别人问你问题时,你明明知道答案却前言不搭后语的原因;

工作法

  1. 番茄工作法基本思想:规划处一天之内要完成的工作,然后设置一个 25 分钟的定时器,去完成计划中的第一项任务,在这 25 分钟之内只专注于一项任务,25 分钟结束后,休息 5 分钟,这就是一个“番茄钟”。每 4 个番茄钟后,休息 15 分钟;
  2. 用番茄工作法追踪自己一天内完成了多少个番茄钟,用以评估自己的工作能力,工作量;
  3. 为自己一天设置 x 个番茄钟的工作时间;
  4. 定额工作法:确立一个明确的目标,规定自己在预先确定的时间段内需要取得多大的进展。这种适用于需要重复去做的任务、例行任务,如每天 200 个俯卧撑、每周写一篇博客等;
  5. 每一天,任何需要做决策的时刻,你都不得不被迫动用自己仅存的有限的意志力;

要不要多任务并行

  1. 批量处理一些任务,一次性完成一系列相互关联的任务,适合批量处理的任务:1)处理邮件;2)打电话;3)修复 bug;4)开短会;
  2. 把可以并行的任务组合起来,同时处理。可能的组合:将一项不费脑筋和一项一定程度上需要精神专注才能完成的任务组合起来,比如边听歌边写作、边运动边听有声读物;

培养习惯

  1. 习惯的三要素:暗示、惯例和奖励;
  2. 找出坏习惯,改掉!改变习惯中的惯例,当被暗示进行坏习惯的惯例时,提示自己干别的 — 改变惯例!

分解任务:如何吃掉一头大象

  1. 任务越大,越难明确定义、难以估算时间;
  2. 将大任务分解为许多小任务时,对于究竟做什么可能并没有足够的信息(大任务不明确)。分解时的关键步骤就是确定出因为缺少了哪些信息而导致无法创建更小、更明确的任务;

怎样支配你的薪水

  1. 资产:任何能把钱装进你口袋里的东西;负债:任何需要把钱从口袋里逃出来的东西;

期权:所有乐趣之所在

  1. 看涨期权:付出权利金,在未来一段时间内以固定价格购买股票的期权;
  2. 看跌期权:付出权利金,在未来一段时间内以固定价格出售股票的期权;
  3. 沽出期权(writing an option):卖出期权获得权利金,必须以某个价格买入或者卖出股票,即期权的提供方;

你真的了解自己的退休计划吗

  1. 精确计算(退休以后)每个月的生活费用,找出办法来确保自己的收入能满足这一要求,同时还留有余地,以备不时之需;
  2. 为退休攒钱最有效的方法就是搞清楚如何缩减每个月的开支;

债务的危害

  1. 你为债务支付的利息要高于你把钱存在银行所得的利息,所以一边欠债一遍存钱是愚蠢的;
  2. 根据利率高低来排清偿债务的优先级;