《软技能》读书笔记

周末花了两个下午的时间看完了《软技能-代码之外的生存指南》,用了15个番茄钟。

简介

这本书的作者John Sonmez是个有着健硕肌肉的非典型程序员。十八、九岁就开始投资房地产,当过模特,为在线培训网站录过50多期视频课程。可以访问他的网站Simple Programmer感受下,上面有很多视频,包括自我营销、编程、健身等等内容。

这本书分七篇70章,分别从职业、自我营销、学习、生产力、理财、健身、精神七个方面,针对程序员给出了建议。第1章名称便是“为何这本书与你先前度过的任何书籍都迥然不同”。通篇读下来,收获比较大。有点像把70篇文章按主题总结在一起,有一定联系,但是不影响分开阅读。和一般鸡汤不同,作者分享的大多是他总结出来的“干货”,确实能开拓思路。更难能可贵的,在每章结束,通常会有一些可操作的相关练习,跟着练下去,收获会更大。

第一篇 职业

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

职业毕竟是作为程序员的基础,John用了17章来讲职业。其中有一些我认为很棒的想法,比如:

把雇主当作是你的软件开发企业的一个客户,并学习如何像企业一样思考:专注于你正在提供怎样的服务,以及如何营销这项服务;想法设法提升你的服务;思考你可以专注为哪一特定类型的客户或行业提供特定的服务;集中精力成为一位专家,专门为某一特定类型的客户体用专业的整体服务。

思考和设定目标,不要随心所欲地生活,也不要随遇而安地行走在职业生涯的漫漫长路上。

人际交往方面,用表扬代替批评;换位思考;避免争吵,试着认输(在非原则问题上);避免与“苛性碱人”交往。

通过面试最快捷的方式是让面试官对你怀有好感,而这项工作大部分都可以在面试之前完成,比如通过评论开发人员的博客。修改单调乏味的简历,把它放到网上,要尽量有创意。

在任何公司里能让你脱颖而出的最重要法宝就是承担更多的责任。金钱也总是追随着责任。没人愿意涉足的领域是搜寻机会最好的地方。另一种间接承担责任的方式是成为团队中其他人的导师。远离办公室政治。

请勿陷入对技术的狂热之中。努力尝试过新东西后再评价。没有理由去强烈坚持自己选择的技术就是最好的,而轻视甚至无视其他技术。

书中还介绍了有关创业和远程工作的相关内容,介绍了选择辞职的时机、如何开始创业、怎样成为专业人士等内容。

第二篇 自我营销

营销就是一场争夺人们注意力的竞赛。 –Seth Godin

在读本书之前,作为一个程序员,至少我对于营销是有偏见的。之前总觉得营销往往和没有诚信、不择手段、急功近利挂钩,书中也说“似乎每天都有无良的营销人员为了一己私利而兜售新骗局”。

但其实在现实生活中,“优秀的营销会将人们的需要或者期待与能够满足此愿望的产品或服务关联起来”。说白了,营销只是让人们认识你的产品的手段。它本身并没有,只不过有好有坏,坏的营销才会让人们因此利益受损。

自我营销,其实就是让人们认识到你的才华–但首先你得有才华,能够给别人带来价值–这样你的才华和能力才可能有更多发挥的空间。而成功进行自我营销的关键在于:“如果想让别人喜欢你,想和你一起工作,你就必须要为他们提供价值”。正如阿尔伯特·爱因斯坦所说:

不要努力成为一个成功的人,而要努力成为一个有价值的人。

自我营销的方式有在博客上发表有价值的文章、在YouTube上传分享视频、给杂志投稿、著书、参加技术演讲会、维护自己的微信公众号等等。

书中尤其重点讲了博客的重要性,如:

  • 面试之前方便面试官了解
  • 可能带来客户
  • 推销自己的平台
  • 为你带来业界声望
  • 提升你的沟通技巧

以及坚持写博客、提升访问量的相关方法。

本篇的最后,作者也告诫我们,“如果你想成功,你必须要学会收起自己脆弱的自尊心,勇敢走出去,别害怕让自己出丑。”

在我的职业生涯中,我一共错失了9000多次投篮,输掉了近300场比赛。我本来有26次绝杀的机会却投球不进。我失败了一次又一次。这就是我能够成功的原因。 –迈克尔·乔丹

第三篇 学习

教育就是一个人把在学校所学全部忘光之后剩下的东西。 –阿尔伯特·爱因斯坦

学习的重要性不言而喻,作者在本篇中主要介绍了“十步学习法”,主要思路是LDLT,即“学习-实践-掌握-教授”。

我总结如下,为了更好的说明每个步骤该作什么,我以最近感兴趣的机器学习进行了举例:

步骤 说明 举例
1 了解全局 一次性。粗览内容,基础性研究,全局性的了解 机器学习概念,用来做什么?
2 确定范围 一次性。确定学习重点和学习范围,将大主题分解成可控的子主题 学习机器学习的监督学习和无监督学习,掌握聚类分析
3 定义目标 一次性。定义可量化考量的成功标准 寻找白马股的特征
4 寻找资源 一次性。书籍、博客、视频、专家、github等 书籍、互联网、优矿、Kaggle
5 创建学习计划 一次性。思考如何从A到Z,可以参考多本书的目录结构 1.了解基础概念 2.Kaggle范例学习 3.上手项目练习
6 筛选资源 一次性。根据第5步的计划,在众多资源中挑选最有价值的资源 书籍、Kaggle、github
7 开始学习,浅尝辄止 循环往复。了解基础操作后即可开始 了解python基础库和科学计算相关概念,使用Anaconda搭建Python科学计算开发环境
8 动手操作,边玩边学 循环往复。在实践中学习,思考 上手Kaggle项目titanic
9 全面掌握,学以致用 循环往复。深入学习,以第3步定义的成功标准检验是否完成。 白马股的特征是什么,和业界共识是否一致?
10 乐为人师,融会贯通 循环往复。撰写博客、YouTube、演讲、与朋友爱人对话探讨、线上回答 博客、与朋友探讨

实际的操作可在此基础上做删减。

第四篇 生产力

本篇讲的是提升生产力相关的方方面面,包括思想理论、实际操作、注意事项。

提升生产力,其实相当于让自己更专注于计划做的事。“一切始于专注”,专注有非常大的魔力。在具体方法中,作者给出了自己的“私房计划”:

  • 季度计划。先列出季度计划,把想在每个季度完成的大项目列出来,记录在Evernote中;
  • 月计划。在每一个月开始,根据季度计划和之前完成的情况,列出月计划;
  • 周计划。在每周开始,列出本周要完成的任务,记录在Evernote上方便检查完成情况。作者推荐使用Trello或Kanbanflow。
  • 日计划及执行。在每天工作之前,先准备好,比如做一些健身活动。之后就全身心投入到要完成的任务中。

番茄工作法

关于计划的执行,作者推荐了番茄工作法。番茄工作法的概念早就存在了,之前我也没有给予足够的重视,这次决定实际体验下到底怎么样。

从我自己的实践情况来看,番茄工作法确实能够提高我的生产力。在每个番茄钟里(通常是25分钟工作+5分钟休息),能够主动屏蔽干扰。一件事刚刚做了会儿,可能碰巧到了专注发挥魔力的时候,突然别人叫你去做其他的事,或者你看到了听到了什么感兴趣的东西,这时候放弃这种状态真的是前功尽弃了。

番茄工作法还有一个作用是可以记录你成功完成多少工作。上周末我使用番茄工作法用两个下午的时间读了这本《软技能》用了15个番茄钟,共7.5小时。如果没有番茄工作法的帮助,我肯定是完不成的。

通过这两周的实际体验,我觉得在使用番茄工作法时,应该注意:

  • 必须对自己负责,诚实严肃地对待每一个番茄钟,如实记录。
  • 番茄钟的开启要简单,推荐手机App的方式,在开启一个番茄钟后,就把手机放在一边(安卓推荐番茄Todo)
  • 主动屏蔽干扰。必要的时候和身边的同事、朋友、爱人说明情况,尽量不要在一个番茄钟里受到太多干扰。

推荐大家使用番茄工作法。

本篇还讲了一些其他提升生产力的方法,如定额工作法,规定好每天要做的事,按时完成。还讨论了多任务并行的利弊、在职业倦怠时的解决之道(忽略倦怠继续前进)、时间是怎样被浪费的(最大的时间杀手-看电视)、分解任务的方法,以及当我们犹豫不决时,“任何行动都比不采取行动好”。

本篇总结下来,不管是设定计划、执行计划、戒掉电视、培养习惯等等,最重要的就是对自己负责。我现在喜欢把一件大的任务划分到很小的任务里,设定了不同的番茄钟,每天/每周完成这些番茄钟就可以了。“我觉得我不能完成这么大的项目”,“我觉得做这个时间太长了,我坚持不下来”。跑步的时候,坚持不下去了,我就想“就跑到前边50米那辆汽车的地方”,“既然已经到了就再跑50米到路口”,最终一步步到了终点。高手做俯卧撑一做就是几百个,我不行,就从墙壁俯卧撑开始练,每组25个一共3组,还是撑不住,就5个一组5个一组的坚持下去。目标小到自己能完成的程度,坚持下去,总有能完成全部的一天。

第五篇 理财

金钱只是一种工具,它会带你去往任何你想去的地方,但不会取代你成为司机。 –爱思·然德

程序员的薪资普遍不低,但这个薪资能持续到什么时候呢?外部大环境在变,我们本身也在一点点老去,我们怎么去做退休计划、理财计划呢?本篇给了一些建议。

首先应该分清资产与负债。《富爸爸穷爸爸》的作者罗伯特清崎说“任何能把钱装在你口袋你的东西才是资产,而任何需要你把钱从口袋里掏出来的东西都是负债”。定义未免有点严苛,但就理财而言,就是最大化资产,最小化负债。

其次作者谈到了“薪酬谈判”的建议,归结起来,就是不要先出价,无论如何要让对方先出价,这样在薪酬上才不会陷入被动。

有了钱当然要投资,作者以期权和房地产为例,简单介绍了投资的方式方法。做任何事都是有目标的,大部分人工作挣钱的目标还是以一个退休计划作为目标的。所以设定一个切实可行的退休计划也是必须的。

最后作者以自己“如何做到33岁退休的”为例,讲了自己的理财投资故事。主要是投资房地产,每年买一套房并租赁出去,在拥有多少套之后卖出,这样保证有一定的存量。结合国内实际情况,还是较难实现的。不过作者的思维可以借鉴。

以我自己的经验,平时养成记账的习惯,知道支出的流向。时间长了,就会养成定额定量的习惯。理财上可以组合持有一些基金(货币基金、混合基金、股票基金按需分配)、股票、ETF等。可以去简七理财多了解些基本的投资知识。

再说一句,“把钱看得越重,就越难以在理财方面做出明智的、成功的投资选择”。

第六篇 健身

健身这块其实是大部分程序员最需要加强的。但很多时候,因为目标的不明确,导致效果甚微。

可能的健身目标:

  • 减肥(减掉脂肪)
  • 增肌(增长肌肉)
  • 增加力量(不一定是肌肉)
  • 增加肌肉耐力(改善运动表现)
  • 改善心血管健康
  • 在某项运动上表现更好

在选择了一个大目标之后,一定要设定详细可执行的目标。比如先选择减肥,再定“减肥10kg”,最后定“每周减掉1kg”,并作出可执行的计划。如果没有什么计划,就去跑步吧。

除此之外,作者还讲了卡路里的相关知识,想增长肌肉进行举重练习的同学可以学到举重的基础知识,以及获得完美腹肌的要素。

作者关于“不要过早奖励自己”的理论我和认同。比如我们准备去定期跑步,可能就先给自己准备一双不错的跑鞋。然而买了跑鞋真正开始跑,可能过不了几天就坚持不下去了,跑鞋也扔到了鞋柜里吃土。其实可以反过来,先让自己坚持两周,如果跑了两周没有任何松懈,到时候再奖励自己一双跑鞋。这样效果可能会更好。

第七篇 精神

终于来到了最后一篇(如何不算附录的话)。在本篇里,作者讲了心灵和身体的相互影响,怎样使用积极的心态对大脑“重新编程”,还点了“爱情与恋爱”话题(看来美国程序员也大量单身啊),同时列出了不少名人名言以及成功书单,我总结如下。

如果你不征服自己,你就会被自己征服。 –拿破仑·希尔

信念决定思想,思想决定言语,言语决定行动,行动决定习惯,习惯决定价值,价值决定命运。 –圣雄甘地

自我提升和励志类图书

  1. Steven Pressfield - The War of Art [Black Irish Books, 2002]
  2. Dale Carnegie - 《人性的弱点》How to Win Friends and Influence People [Gallery Books, 1998]
  3. Napoleon Hill - 《思考致富》Think and Grow Rich [Wilder Publications, 2007]
  4. Maxwell Maltz - 《心理控制方法》Psycho-Cybernetics [Pocket Books, 1989]
  5. Norman Vincent Peale - 《积极思考就是力量》 The Power of Positive Thinking [Touchstone, 2003]
  6. Ayn Rand - 《阿特拉斯耸耸肩》 Altas Shrugged [Signet, 2005]

软件开发类

  1. Steve McConnell - 《代码大全》 Code Complete [Microsoft Press, 2004]
  2. Robert Martin - 《代码整洁之道》 Clean Code: A Handbook of Agile Software Craftmanship [Prentice Hall, 2008]
  3. Eric Freeman、Elisabeth Robson、Bert Bates、Kathy Sierra - 《HeadFirst 设计模式》 Head First Design Patterns [O’Reilly Media, 2004]

投资类

  1. Gary Keller - The Millionaire Real Estate Investor [McGraw-Hill, 2005] 房地产投资
  2. Robert Kiyosaki - 《富爸爸,穷爸爸》 Rich Dad, Poor Dad [Demco Media, 2000]
  3. Kerry Given - No-Hype Options Trading: Myths, Realities, and Strategies That Really Work [Wiley, 2011] 期权交易

最后还嘱咐我们,“学会拥抱失败、期待失败(主动去尝试)、接受失败,并准备直面失败”。

跌倒七次,爬起来八次。 –日本谚语

附录

在附录中,作者还贴心地给我们讲了金融的相关知识(“如果你能写代码,你就能理解金融”)、股市如何运作以及健康的饮食和营养知识。

总结

这本书通篇读来,酣畅淋漓,使我能够从稍远一点的地方看一看世界–除了代码如何生存,如本书的副标题“代码之外的生存指南”所言。

希望你也能成为一名成功的软件开发人员–不能只编写代码,还要有精彩的人生。