當我說到“優秀的軟體開發人員”時,我并不是說要精于編碼之道,善于解決缺陷,通曉單元測試。相反,我所說的“優秀的軟體開發人員”,是那些能夠把控自己的職業生涯、達成目标、享受生活的人。當然,其他技能都很重要,不過我還是假定你已經精通如何使用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)也講過類似的話:每人每天能夠專注地、富有成效地工作的時間是有上限的。你的時間隻有這麼多,要怎麼利用你自己說了算。