《软技能-代码之外的生存指南》读观有感

内容纲要

概要:这是一本真正从“人”(而非技术也非管理)的角度关注软件开发人员自身发展的书。书中论述的内容既涉及生活习惯,又包括思维方式,凸显技术中“人”的因素,全面讲解软件行业从业人员所需知道的所有“软技能”。本书聚焦于软件开发人员生活的方方面面,从揭秘面试的流程到精耕细作出一份杀手级简历,从创建大受欢迎的博客到打造你自己,从提高自己工作效率到与如何与“拖延症”做斗争,甚至包括如何投资不动产,如何关注自己的健康。本书共分为职业篇、自我营销篇、学习篇、生产力篇、理财篇、健身篇、精神篇等七篇,概括了软件行业从业人员所需的“软技能”。

file

关于作者

首先,不得不提一下这本书的作者John Sonmez,毫不夸张的讲,他是程序员里肌肉最发达的,房地产投资者里模特资历最久的,模特里代码写得最好的。从这本书中,可以窥探到他的一些经历,十八、九岁就开始投资房地产,当过模特,为在线培训网站录过50多期视频课程,可以访问他的网站Simple Programmer感受下,上面有很多视频,包括自我营销、编程、健身等等内容。从他的经历中,我们可以学到很多东西,可以看到他对生活的热爱,对新事物的热情,同时又非常有目的有计划的去组织每一件事。书中的每一章看似不相关,却引出一个主旋律:程序员,特别是优秀的程序员如何处理生活中的一些问题,如财务管理,如身体健康,如营销自己,而John Sonmez却是把这些我们普遍遇到的问题做成闪光点的人。

第一篇 职业

职业的定义

因为职业定义,我们有了软件开发人员这一称呼,或者说叫『程序员』,而社会上已经有了很多对于程序员的刻板印象:穿着格子衬衫,蓝色牛仔裤,稀疏而凌乱的发型和不分昼夜的作息规律,大概如下图所示:
file

而作者从自身角度给程序员一个新的定义,作为一名出色的程序员,我们应该对自己的职业生涯包括生活有一定规划,用作者的话说:你需要通盘考虑之后再决定——要做什么,什么时候做,以及如何义无反顾。

把自己当成一个企业

把自己当成一个企业,把雇主当作是你的软件开发企业的一个客户。当然,你可能只有这么一个客户,你所有的收入都是从这一个客户处得来 的,但是这种诠释雇用关系的方式可以将你从仰人鼻息的弱势地位转换成为自我治理和自我引导的主动地位。(事实上,许多 真正的公司也就只有一个大客户,这个客户给它带来了大部分的收入。)

把自己当成一个企业可以转变你的很多思维方式,比如:如何工作,处理自己的财务的方式和如何找工作。作为一个『企业』,你也应关注如下几点:

  • 专注于你正在提供怎样的服务,以及如何营销这项服务;
  • 想方设法提升你的服务;
  • 思考你可以专注为哪一特定类型的客户或行业提供特定的服务; 集中精力成为一位专家,专门为某一特定类型的客户提供专业的整体服务(记住,作为一个软件开发人员,你只有真正 专注于一类客户,才能找到非常好的工作)。

为自己设定目标

无论因为何种原因你没有为自己的职业生涯设定目标,现在都是时候设定目标了。不是明天,也不是下周,就是现在。没 有明确的方向,你走的每一步都是徒劳的。不要随心所欲地生活,不要随遇而安地行走在职业生涯的漫漫长路上。

“如果这条路错了我该怎么办呢?”“如果我不喜欢自己选的路又该怎么办呢?” 这些问题确实有些可怕。为自己设定目标需要勇气,于是大多数人选择既定的职业发展路线,或许我们应该思考一下这个问题,5年之后自己应该是什么状态,10年之后呢,那么现在应该做些什么?

学会与他人相处

在软件开发领域,我们大多数时候是与人而非与计算机打交道。甚至我们所写的代码首先是供人使用的,其次才是让计算机可以理解的。如果不是这样,我们干脆直接把代码写成0/1这样的机器语言好了。如果你想成为一名出色的软件开发人员,就得学会高效地与他人相处(即使写代码是你工作当中最为享受的一部分)。

笔者个人来讲,我也认为写代码包括与计算机打交道是相对容易的,因为对错非常明确,一旦你编译不通过,计算机会给你一个error,而任何bug都是可以被修复的,只是成本大小。而与人相关的事情,往往存在更多的不确定性,这些不确定性使得事情变得复杂。

攀登晋升阶梯

作者关于晋升给出五点建议:

  1. 承担更多责任:承担责任意味着使自己变得更重要
  2. 引人注目:如果你一直默默无闻,你的成就不为人知的话,即使你是团队中最聪明、最努力、最出色的开发人员,那也一文不名。如果找不到方法让你的老板或高层管理人员知道你在做什么,那你的所有努力都是徒劳的。
  3. 自我提升:现在的自己比之前更有价值
  4. 成为问题的解决者:如果你能解决别人无法解决或不愿解决的问题,无论在哪家公司,你都能轻而易举地成为最 有价值的人。
  5. 关于政治:有时候也要学会站队

成为专业人士

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

我们可以从下表窥探一二,无需多言。
file

第二篇 自我营销

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

自我营销意味着什么

营销的核心在于将一些人所需要的所期待的产品或者服务与产品或服务本身连接起来。所以“自我营销”也就是把希望得到 你提供的产品或者服务的人和你自己连接起来。尽管营销经常声誉不佳,但如果你能以正确的方式营销自己并没有错。

相信很多开发者都没有意识到这一点,有时候你的客户能够给你开出的价格就会受此影响,看看自我营销最成功的那些技术牛人和明星大腕他们的收入就能明白自我营销的重要性。

自我营销应该怎么做

作者从自身实战讲述了几点:

  • 创建博客
  • 创造有价值的产品并成为你营销的范例
  • 善于使用社交媒体
  • 演讲报告和培训
  • 著书立说

除此之外,还有为社区贡献源代码,发布开源项目等方式,但是无论哪种方式,都需要我们有坚持和毅力,因为他们一开始的效果可能都远低于你的预期。

第三篇 学习

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

在这个飞速变化的世界里,学习的能力是至关重要的。软件开发人员如果选择固步自封,忽视自己的技能发展,那么他们很快就会落在后面,错失未来,只能被派去维护过去的遗留系统。如果想摆脱这种宿命,你就需要学会如何学习。

学习怎样学习

可以换个角度思考一下这个问题:你可能看遍了教你如何正确骑车的书,也可能看过别人骑自行车的视频,我也可以给你 培训正确骑车的机械原理,但是,如果你从来没有骑过自行车,那么当你第一次骑的时候你一定会摔倒。你可能对自行车无所 不知,熟悉骑车的机械原理,知道哪种自行车最好,但是直到你将自己所学的东西用于实践,你才算真正学会了骑自行车。

作者这里给了一个比较实用的十步学习法:
file

寻找导师

在你的软件开发生涯中,拥有一位导师可以说是一笔巨大的财富,因为一位优秀的导师能够让你无需亲身经历现实的重重考验就拥有丰富的经验。你可以从导师的成败中汲取丰富的营养,他为你照亮了前进的道路。优秀的导师可以帮助你迅速地掌握一门技术,比你自己摸索要快很多。

三人行必有我师,你的周围一定能够找到可以向他学习和请教某些问题的人,时刻保持谦卑的心态,学会向他人请教,像海绵一样吸收有用的知识。

第四篇 生产力

外行静坐等待灵感,其他人则唤起激情努力工作。
——斯蒂芬•金,《写作这回事:创作生涯回忆录》(On Writing: A Memoir of the Craft )

一切始于专注

提高工作效率并没有什么了不起的秘诀。如果想让工作更加富有成效,就要让更多的工作尽快完成。现如今,生产效率高并不能保证你是高效的。产量多只表明生产效率高,只有完成正确的工作才会成为高效的人。但现在,我们只专注于讨论如何提高生产效率。首先,我要假设你能解决在工作中遇到的所有问题,所以你一旦开始工作就可以持续不断的交付工作产品。

我们可以回顾一下自己的工作时间,有多久是持续高效的工作,我确信你有过这样的状态,你全心工作,感觉毫不费力。要想进入这种状态常常需要费点儿时间,但是一旦找到这种状态,你就能在短期内完成很多任务(除非你为了找出一个难以找到的bug在原地打转)。但是在一个嘈杂环境中,这种状态变得非常奢侈,于是耳机成了一些人的工具,有时候它们并没有在放音乐,知识告诉别人说:我在认真工作,别来打扰我。

番茄工作法

它的基本思路是:你规划出打算一天之内完成的工作,然后设置一个时长25分钟的定时器,去完成计划中的第一项任务;在这25分钟之内,你只专注于这一项任务,心无旁骛。一旦有干扰,可以用各种方法屏蔽掉干扰,但是通常你要努力保证自己完全不被打扰。总之,你不希望自己的专注的工作状态被打断。

file

定额工作法

挑选一些需要重复去做的任务,设定的一个定额,即明确 自己在一个给定的时间段内完成该项任务的频率。这一时间段可以是每月、每周或者每天,但是你必须有一个明确的时间段, 在这个时间段内必须完成多少工作。如果你有一个大项目,你需要想办法将其分解为可重复的小任务。

定额工作法实际上就是任务分解,并且定量每个阶段性工作任务,明确一个大任务需要的工作量从而实现长久有效的解决一个大任务。

时间是怎样被浪费掉的

我们都会浪费时间,我们都做过这件事。事实上,根据定义,如果我们能够学会停止浪费时间,我们的生产效率会尽可能地高。如果能最大限度地增加每一天的有效时间,以便绝对没有时间被浪费,你的能力也能发挥到最大。

我们可以试着去记录自己一天得时间,以小时为单位,为了避免忘掉可以每小时设置一个提醒,然后一天结束,一周结束,回过头来看看哪些时间是被用在了本可以不必要的地方,尝试优化自己的工作方式。

培养习惯

成就我们的恰恰就是那些不断重复做的事情。因此,优秀不是一种行为,而是一种习惯。 ——亚里士多德

我们每个人都有习惯,有好有坏。好习惯能够推动我们前进,帮助我们成长;坏习惯则阻止我们前进,阻碍我们成长。培养和养成良好的习惯可以让你不需要刻意努力就保持很高的生产效率。如同惯例可以帮我们缓慢而坚定地每次只砌好一块砖,最终建起一面巨大的墙一样,习惯也可以通过日积月累的努力,让我们前进或者后退。二者最大的区别在于,惯例是我们可以控制的,而习惯却不受我们控制。

任何行动都比不采取行动好

任何行动往往都比没有行动好,特别是当你一直停滞在不愉快的情势下很长时间的时候。如果这是一个 错误,至少你学到了一些东西。这样一来,它就不再是一个错误。如果你仍然选择停滞不前,那么你就学不到任何东西。
——埃克哈特·托利,《当下的力量》(The Power of Now )

执行力强调的是执行,我们需要有前期规划,没有执行均是空中楼阁,当我们无法明确要做的事情应该需要多久或者是否现在做好准备时,去做并且及时复盘、回顾、总结然后继续这一过程是最好的方法。

第五篇 理财

软件开发是当今薪酬最高的职业之一,而且在未来,随着世界上运行在计算机和软件上的事务越来越多,这一行当的价值 只会不断看涨。但是,如果你不知道如何打理钱财,那么世界上所有的金钱都不会让你从中获益。诸多彩票中奖者、电影明星 和著名运动员曾经坐拥万贯家财,最后又钱财尽失,就是因为缺乏财商去打理自己的财富。

在《财富自由之路》中提到,我们大多数人都活在仓鼠之轮中,赚钱多并不能让一个人在财务上更精明。那些从我朋友那里获得短期贷款的医生和律师们,受困于短期思维,和我在职业生涯早期保有相同的心态。他们靠薪水过活,因为每个月他们都花光自己赚到的那么多钱。他们挣的越多,花的也
越多。因为他们觉得理所应当,所以他们会透支所有信用去买更大的房子、更好的汽车。

作者在这里强调了资产与负债的重要性,资产意味着保值甚至增值,而负债就是消费,弄清楚这点,再看看自己的资产与负债(当房产不做投资使用便是负债),列出自己的资产负债清单,并给自己确定一个目标。

薪酬谈判

你的薪酬谈判能力很大程度上受声望的影响。想想看,著名的运动员或电影明星,他们的名声带来的谈判能力有多强?同样的原理也适用软件开发人员或任何其他领域。你的名字越为人所知,你在谈判时掌握的主动权也就越大。

善于营销自己的人,往往更能够占据主动地位

房地产投资

尽管房地产价格可能会大幅波动,但是我建议投资的是可租赁房产。这种房产的稳定的收入就是 —— 租金。

作者是一个成功的房地产投资者,利用房产投资,他做到了33岁退休。在后面的章节,作者详细讲述了他是如何做到这一点。

退休计划

规划退休计划的关键就是利用逆向思维,精确计算每个月的生活费用,找出办法来确保自己的收入能满足这一要求,同时还留有余地,以备不时之需。

退休计划就是利用逆向思维,有计划的进行投资,从现在开始为自己攒一笔退休金吧。

健身

你可能会觉得奇怪,一本写给软件开发人员的书为什么会用一整篇来讨论健身,但我丝毫不会诧异。事实上,我反而认为将这一篇内容写入本书是我的责任,因为如果你不注意自己的身体健康,老实说我并不看好你能成为顶尖的程序员。

我们全身心得投入工作,往往会忽略了自己的健康,要知道一个健康的身体才是奋斗的资本,反观当今程序员这一群体,熬夜与不规律的快餐所带来的是长期的“亚健康”,这是职业性质决定,但是我们不能因此放弃健身。

作者在这一章讲述了如何制定健身目标,如何进行卡路里计算,平衡饮食甚至如何让自己长更多肌肉,要做到这些,同样需要一些方法和训练,最重要的是坚持,很多时候我们往往会半途而废,如果能把健身坚持下去,相信在工作上也会同样出色。

精神

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

控制精神,管理情绪,给自己积极的心态是这一章的主题。

心灵是如何影响身体的

如果你不相信自己能够做到,你几乎做不成任何事情。你的思想对身体的影响有多大、对你能够获得成功的影响有多大,这是令人惊叹的。 “ 如果你相信,你就能做到 ” 这个观点很容易被迅速忽视,但是这个观点确实有些道理。至少,这个观点的反面更有道理:如果你不相信,你肯定不会获得成功。

这里不得不引用一下圣雄甘地的原话:
信念决定思想,
思想决定言语,
言语决定行动,
行动决定习惯,
习惯决定价值,
价值决定命运。
—— 圣雄甘地
作者还强调,积极的心态是引导我们走向成功的基础,不仅可以对生活有益, 还对健康有益, 反过来想,消极的思考会产生完全相反的效果。消极思考会对你产生实质伤害,而且会妨碍你通向成功的人生。

爱情

爱情就是一场游戏,这是真的。不管怎么努力尝试,你都无法跳出这个规则。很多人会说: “ 我不想玩这种游戏,我只想做我自己,如实表达我的感受。 ”尽管我能理解这种观点,但是因为你在读这一章,所以我不能不问你,这种想法对你有什么帮助。

可能你还在等待自己的爱情,为何不主动去寻找?如果你能明白大多数情侣关系其实是 “ 你追我逃 ”的微妙心理游戏作用的结果,你就会更容易找到真爱。这不只适用于爱情问题,也适用于各种人与人之间的关系。做一个绝望的、缺乏自信的人,你可能会发现自己真的孤立无援。如果你发现你面试的对象就像大街上一个垂死挣扎的乞丐一样祈求你施舍给他工作岗位,你也会觉得他很惹人生厌。有时候你可能会决定,女人比计算机上的代码更加让人难以理解,或许能够为你女朋友的所有奇怪举动解释的就是你爱不爱她。

我的私房成功书单

我有一个习惯,每次只要一有机会跟非常成功、非常知名的人士谈话,我就会问他们一个问题:在他们的一生中,哪本书对他们的影响最大?难以置信的是,许多人都提到同样的两三本书 —— 这些书我会在第 69 章中提到。

以下是作者列举的书单,同样推荐给大家

自我提升和励志类图书

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

软件开发类图书

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

投资类图书

  • Gary Keller 的 The Millionaire Real Estate Investor [ McGraw-Hill , 2005 ]
  • Robert Kiyosaki 的《富爸爸,穷爸爸》( Rich Dad,Poor Dad )[ Demco Media , 2000 ]
  • Kerry Given 的 No-Hype Options Trading: Myths, Realities, and Strategies That Really__Work[ Wiley , 2011 ]

结束语

希望我的介绍能够让你对本书的全貌有一个大体的了解,如果感兴趣,就买一本来读一读,全文的语言简单通俗易懂,通读全书大概只需要你两到三个下午茶的时光

希望这本书已经让你意识到,全世界都是你的机会,都在你的掌控之下。你可以更好地管理自己的职业生涯,可以从中获益更多,甚至可以把自己的职业生涯带向全新的方向,可以学会实际构建自己的个人品牌、营销自己 —— 把自己的软件开发职业生涯提升到一个认为不可能达到的全新高度,让自己有机会影响更多的人。

发表回复