推荐一本程序员软件开发人员职业生涯指南的书

Posted 人邮异步社区

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了推荐一本程序员软件开发人员职业生涯指南的书相关的知识,希望对你有一定的参考价值。

当我说到“优秀的软件开发人员”时,我并不是说要精于编码之道,善于解决缺陷,通晓单元测试。相反,我所说的“优秀的软件开发人员”,是那些能够把控自己的职业生涯、达成目标、享受生活的人。当然,其他技能都很重要,不过我还是假定你已经精通如何使用C++语言实现排序算法,或者知晓如何确保写出的代码不至于让你的后继维护者恨不得驾车从你身上碾过……

《软技能:代码之外的生存指南》(第2版)讨论的是“你自己”——关于你的职业生涯、你的生活、你的身体、你的思想以及你的灵魂——如果你确信灵魂存在的话。如果你想真正成为一个更好的软件开发人员(或者其他真正优秀的人才),你需要把重点放在整个“人”上,而不只是你生活中的一两个领域。

《软技能:代码之外的生存指南》(第2版)

程序员、软件开发人员职业生涯指南,凸显技术中"人"的因素,聆听软件开发人员人生导师JohnZ.Sonmez的经验之谈,讲解IT行业从业者所需要知道的"软技能"

七大主题,帮助软件开发人员职业发展

指导“泛IT”行业从业者自我提升

《软技能:代码之外的生存指南》(第2版)共分为七篇,每一篇都聚焦在软件开发人员生活的不同方面。如果你想为这些内容分类和分组,最简易的方法是将它们看成是事业、思想、身体和精神四个方面。

我们将从谈论你的职业生涯开始。在第一篇“职业”中,作者将教你到底该如何主动地管理自己的职业生涯,从而达到自己追寻的结果:可能是正在企业内部“攀登职场阶梯”,也可能是开创自己的咨询业务,甚或是成为一名企业家创造自己的产品。

在第二篇“自我营销”中,我们会触及一个我自己很心仪的话题:如何推销自己。“市场营销”,听到这个词组你会有什么感觉?当我提到这个词组时,大多数软件开发人员会觉到很不爽,可能还会有点恶心。但是,当这一篇结束时,你会对这个词组有一个全新的评价,明白它为什么如此重要。人人都是推销员,只是有些人把销售这项工作搞得臭名远扬。

与职业生涯相关的内容讨论完毕,这一次将过渡到你的心智境界,我们来到第三篇“学习”。学习是每一位软件开发人员生活中的重要的一部分。可能并不需要我来告诉你,软件开发人员或者任何一位IT专家最常见的特质之一就是学习。学习如何学习,或者说如何自学,这是你能掌握的最有价值的技能。掌握自学能力能够让你做想做的事情。

接下来还是与心智有关的主题,第四篇“生产力”。你猜对了,这一篇是关于如何让工作更加富有成效的。这一篇的目的就是助你一臂之力,督促你让你火力全开。对于许多软件开发人员来说,生产力都是一场巨大的斗争,也是阻碍你成为成功人士的最大障碍(没有之一)。你可以让生活中的一切都井井有条,但是,如果你不知道如何克服拖延症、混乱症和懒惰病的话,你将很难开足马力全速前进。我曾把自己的那份动力消磨殆尽,好在最终我想出来了一个方法,令我可以在人生的高速公路上以最快的速度巡航。在这一篇中,我将与你分享该方法。另外,我还将解决一些困难的课题,例如倦怠,看电视太多,如何寻找动力去探究并完成那些无趣老套的脏活累活。

在第五篇“理财”中,我们又会论及另一个常常被完全忽略的话题——个人理财。你可以成为这个世界上最成功的软件开发人员,但如果你不能有效地管理你赚到的钱财,可能终究会有那么一天,你要站在街角,举着一个牌子,上面写着“写代码换晚餐”。

现在,我们得谈谈这有趣的一篇了——关于你的身体。你准备好参加新兵训练营了吗?保持好身材可不只是让你穿上泳装依然好看,还会给你带来很多心理和认知方面的益处。在第六篇“健身”中,我将教你如何减掉脂肪、增加肌肉、给身体塑形。我认识的大多数软件开发人员,不是超重就是亚健康或者体虚乏力……

最后,在第七篇“心态”中,我们将一头扎进形而上学的世界,来找寻海市蜃楼般的“机器中的精灵”。

目录

第1章 为何这本书与你先前读过的任何书籍都迥然不同

第一篇 职业

第2章 经营自己的职业生涯就像经营一家企业

第二篇 自我营销

第19章 自我营销基础课

第三篇 学习

第27章 学习怎样学习

第四篇 生产力

第36章 一切始于专注

第五篇 理财

第49章 合理支配你的薪水

第六篇 健身

第56章 健身的好处

第七篇 心态

第66章 心智是如何影响身体的

样章摘选:番茄工作法

多年来,我尝试过不少提升生产力的方法,目前我用的是各种方法的组合,但对我工作效率影响最大的还是“番茄工作法”(Pomodoro Technique®)。如果我只能向你推荐一种提升生产力的方法,那一定是番茄工作法。

然而,我也不是一直都对番茄工作法推崇备至。我第一次尝试使用番茄工作法的时候,我认为它太基础了,不大会有效果的。直到我尝试使用了一周之后,效果立竿见影,我才真正体会到了它的过人之处。

在本章中,我会介绍番茄工作法,并展示为什么这种看似相当简单的方法如此有效。

番茄工作法概述

番茄工作法是由弗朗西斯科·西里洛(Francesco Cirillo)在20世纪80年代末发明的,在20世纪90年代获得大规模应用。该方法的核心其实很简单,简单到你可能会觉得不值一提,就像我当初认为的那样。

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

在25分钟结束的时候,设置一个5分钟的定时器,休息一下。这就是所谓的一个“番茄钟”。每4个番茄钟后,你都需要休息一会儿,通常为15分钟。

番茄工作法的流程

从技术上讲,如果提前完成任务,你应该将剩余时间设置为“过度学习”时间。也就是说,你需要继续对已完成的工作做出小幅改进,或者重新阅读材料以便于你能够再学一些新东西。我往往会忽略这部分,立即跳转到下一个任务。

这就是“番茄工作法”的基本流程。它就是这么简单。弗朗西斯科最初使用了一个番茄形状的厨房定时器给自己设置番茄钟(意大利语里Pomodoro表示番茄的意思)。现在,已经有了大量的应用用于追踪和记录番茄钟。我使用内置了番茄钟的Kanbanflow App来追踪我的番茄钟。(其实,现在我就正在用一个番茄钟在计时。)

有效利用番茄工作法

第一次使用番茄工作法的时候,我并没有严格做到它规定的要求。我只是每天用它来设置若干个“25分钟”的番茄钟。我并没有留意自己每天完成了几个番茄钟,也没有估算某项任务要用掉几个番茄钟;因此我并没有从中受益。我认为整个方法就是让你在一个扩展的时间段内保持专注。我觉得这个方法不错,但是我并不理解为什么我需要做的远远不止“集中精力工作10~15分钟”这么简单。

我并没有看到番茄工作法的真正价值,直到后来我决定严格地使用这一方法。我的朋友,也是我的软件开发合作伙伴Josh Earl当时使用这种方法已经非常有效了,他说服我再试试看。通过使用番茄工作法,他高效地追踪自己一天内完成了多少个番茄钟,并为每天要完成的番茄钟的数量设定目标。事实证明这样运用番茄工作法的效果确实极为不同。

番茄工作法只有被当作估算和评估工作的工具使用时,才能发挥它的真正威力。通过追踪自己在一天内完成了多少个番茄钟,以及为每天要完成的番茄钟的数量设定目标,你瞬间有能力去真正评估自己每日工作的努力程度,也能知晓自己的工作能力。

一旦我开始以这种方式使用番茄工作法,我发现自己的收获比以前多很多。我能够更好地利用番茄工作法,不但让自己全天保持专注,而且可以计划每天和每周的工作,找出每天自己的时间都用到哪儿去了,激励自己尽量工作得更富有成效。

使用番茄工作法,你可以把每周看作是由有限个番茄钟组成的。想在每周完成一定数量的任务?你要搞清楚自己一周能工作多少个番茄钟,并相应地设置任务的优先级。通过计算自己完成的番茄钟的数量,可以确切知道自己一周完成了多少任务,也就不会觉得自己没完成足够量的任务。如果你没能完成自己设定的任务,但是却用完了足够数量的番茄钟,那么问题就不是工作量是否饱满,而是给某个任务项设置的优先级是否正确。

正确使用番茄工作法教会我“设置优先级”的真正价值。当每周我只有这么多番茄钟可分配的时候,我必须小心翼翼地使用这些宝贵的番茄钟。在使用番茄工作法之前,我一直幻想着自己可以在一周内完成超出自己实际能力许多的工作,过高地估计了自己的时间而低估了完成任务所需的时间。但是,开始使用番茄工作法后,我能准确知道自己一周工作了多长时间,也知道自己完成了多少个番茄钟的任务。而在开始我都不能告诉你这一方法的真正价值。事实上,我对自己需要多长时间才能写完这本书有着准确的估算。我知道这本书每章要花多少个番茄钟,我也对自己每周可以给写书分配多少个番茄钟了如指掌。

自己试试吧。现在最好放下这本书,试着把番茄工作法用于今天要完成的工作。体验一下,然后再回来读完这一章。

心理游戏

到目前为止,我只谈到番茄工作法可以通过增强计划能力提升你的工作效率;其实,因为“时间盒”效应,番茄工作法还可以在心理上对你产生巨大影响。

有一个大问题一直困扰着我:我总为自己没有做更多的事情而感到内疚。这与我一天完成多少工作无关,就好像我永远不能放松似的。我总觉得自己应该在做事,以至于坐下来玩游戏(我最喜欢的消遣之一)时我都无法享受其中,因为我觉得自己在浪费时间,我本应该做更多的工作。也许你也有同感。

这个问题的根源在于,你无法准确地评估每天到底自己完成了多少任务,也没有为自己每天到底要完成多少任务设定明确的目标。也许,像我一样,你也试图通过列出一份每日任务清单来解决这一问题。这看起来似乎是一个好主意,但是,当你完成某些任务耗费的时间比你预计的要长的时候,你将备受打击。就算你每天累得像狗一样,还是无法完成清单上的任务,所以即使你竭尽全力还是觉得自己很失败。这可真令人很沮丧。

我们不一定能够控制完成一项任务到底需要多少时间,但是我们可以控制自己这一天中愿意为某项任务(或某些任务)花多少时间。如果你努力工作一整天,就会感觉很好;如果在这一天中你工作松懈却又完成了列表中的所有任务,那只不过是因为任务比预期的简单而已,你还真不应该为此而沾沾自喜。制订任务列表全凭主观臆断,每天能够专注完成的工作量才是最重要的。

这正是番茄工作法的真谛之所在。当你在一天中为自己设置了x个番茄钟的工作目标(这一目标你完全可控)并且达成的时候,你就可以知道自己一天到底可以完成多少工作,这会让自己感觉良好,更重要的是,还能让自己放松身心。

对番茄工作法的正确理解令我的工作生活大为改观,它不仅能帮我做更多事情,而且能让我可以尽情享受业余时间。一旦我完成了当天的目标(以番茄钟来度量),我就可以自由自在地做自己想做的事情。如果我觉得自己状态不错,我可能还会多做一些工作。但是,如果我想坐下来玩游戏,甚至看电影消磨时间,或者其他不费脑子的活动,我也不会感到内疚,因为我知道我已经努力工作一整天了。

我们已经讨论过专注的话题,这里我就不再赘述。不过,专心致志地工作与三心二意地工作之间确实存在着巨大差异。番茄工作法能够让你保持专注,如果你使用番茄工作法度过充实的一天,你完成的工作要比平常完成的多很多。好消息是,你的生产效率更高;坏消息则是,你需要花一段时间才能适应它(我没骗你)。在一天的大多数时间里都保持专注是非常困难的,可能远远超过我们之前遇到过的困难。

〓tsh〓地雷:我在办公室里工作,没办法专注25分钟

〓ts〓坐在普通办公室里并不能成为你不能使用番茄工作法的理由。我经常听到这种抱怨:“番茄工作法听起来不错,可是我一整天都不停地被打扰。同事们会经过我的工位,我的老板要找我谈话。我又不能举起自己的手告诉他们等10分钟,等我的定时器叮叮作响。”

〓ts〓其实你还是可以用番茄工作法的,只要提前跟大家打好招呼。如果你饱受打断之苦,不妨告诉你的老板和同事自己在做什么,以及它将如何提高你的工作效率。告诉他们一次最多25分钟,一旦完成一个番茄钟,你就会马上对任何请求做出响应。

〓ts〓我知道这听起来有些疯狂,没人会为此努力;但是一旦你以正确的方式呈现番茄工作法的魅力,你会惊奇地发现很多人会非常支持你。现身说法,告诉大家番茄工作法对团队大有裨益,能帮你提高生产效率,你就会有很大机会成功说服大家。

你可以完成多少工作

自从使用番茄工作法之后,我发现自己对于每周或每天能完成多少个番茄钟的工作都有一个明确的上限。这个上限还会随着时间增长,而且我也能够更加专注,也习惯于增加工作量。但是,一旦我过度加量,超出了自己的能力范围,总会为此付出代价。

番茄钟上限的实际值可能令你大吃一惊。你可能会这么计算,每个工作日你平均工作8小时,一个番茄钟是30分钟,所以理论上讲,你应该在工作时间内能完成16个番茄钟。但实际上,即使是在12小时以内完成16个番茄钟也是极为吃力的。

当我刚开始实施番茄工作法的时候,我发现一天要想完成6个番茄钟都很困难。你会惊讶地发现,一天的时间似乎转瞬即逝,要在一天的大部分时间里保持专注需要极大的奉献精神和意志力。现在,我每天设定10个番茄钟的目标,但这已然是一个非常繁重的工作。我通常需要工作8小时以上才能达到这个目标,有些时候还达不到标准。

我一周的目标是50~55个番茄钟。如果我可以达成目标,我就知道自己做得很好,也希望每周都能持续改进目标。如果我超出了自己的目标,即便只是一点点,我在接下来的一周马上就可以感知到,这也激励着我下周更加努力。

如果你也打算采用番茄工作法,要先确保你对自己的能力有符合实际的预期。你每周工作40小时并不意味着你能完成80个番茄钟。(如果你能实现这一壮举,我会大吃一惊的。而且,坦白讲,我会担心你的心理健康。)

也许你认为我有点故弄玄虚,或者是在为自己的懒惰找借口,那不妨验证一下John Cook对著名的数学家、理论物理学家、工程师和科学哲学家昂利·庞加莱(Henri Poincaré)的描述。John Cook在一篇发表于Cal Newsport的博客中写道:

庞加莱……通常在上午10点到12点和下午5点到7点工作。他发现工作再长时间也鲜有成果。

其他的著名高产人士,像史蒂芬·霍金(Stephen King)也讲过类似的话:每人每天能够专注地、富有成效地工作的时间是有上限的。你的时间只有这么多,要怎么利用你自己说了算。

〓tsh〓采取行动

〓ts〓● 试着用一下番茄工作法。不用担心要给每天设置多少个番茄钟的目标,只是试着使用这种方法,并列出你一整周能够完成多少工作。

〓ts〓● 一旦了解自己一周能完成多少个番茄钟,你就可以给下一周设定目标了,看看能不能达到这个目标。留意自己最后完成了多少工作,以及完成每天设定的番茄钟目标之后自己感觉如何。

以上是关于推荐一本程序员软件开发人员职业生涯指南的书的主要内容,如果未能解决你的问题,请参考以下文章

一个合格的程序员应该读过哪些书

聊聊程序员的软技能

吴永华的博客都有哪些

css(层叠样式表)学习书籍,有一本讲原理的,叫《css权威指南》还是《HTML 5与CSS 3权威指南》?

帮忙推荐一本C#设计模式方面的书

读《我是一只IT小小鸟》有感