提升程式設計師生產力的 10 個提示

發表於2013-06-08

在參加了一些以生產力和時間管理為主題的研討會並閱讀了一些關於這個話題的圖書以後,我瞭解了一些深奧的概念並且對我曾經的工作方法產生了一些深刻的領悟。運用這個新的知識,我完全重新設計了我的工作流框架,而這極大地推動了我的生產力。

我想與你分享一些最重要的技巧,它們可以幫助你推動你的生產力,提升你的總產量,而且可能最重要的,使你空閒出時間從事其它的活動。

注意下面的技巧可以用在個人和專業兩個方面,本質上這些原則是一樣的。

所以,我們開始吧……

永遠、永遠、永遠不要把閱讀郵件當做早上的第一件事

如果有一件事要排除在本文之外,那麼就是這件事。重申一遍,永遠不要把閱讀郵件當做早上的第一件事。如果你這樣做了,你會自動進入一種反應和被動的模式,而不是我們想要的、積極而富有創造性的模式

只在一天中預定的時間檢視和回覆郵件。這些時間應該在午飯之前,我們假設大概12:00-13:00,之後16:00左右再來一次。在這些時段,你的活力等級總會降低,所以你不會失去任何具有創造性的活力。不用擔心,那些“緊急”E-mail,並不是那麼緊急。

如果可以,儘量避免開會

在企業環境中,會議是生產率的頭號殺手。我這樣說,你明白,我明白,每個人都明白(但也許不會承認)。

“會議是一種令人沉溺的、高度自我放縱的活動,企業和其他大規模組織習慣性的參與其中,僅僅因為他們真正的振奮自己。”——Dave Barry

確實,這是對其的概括。最有趣的是,會議同時扼殺了許多人的生產率。令人驚歎。所以,如果不是參加絕對重要的會議,就忽略它。比如說你手頭有很多工作(這可能是真的)並且計劃會後與同事見面來了解一些重要的事情。

如果開個會真的很重要(這是很罕見的事情),那麼記住這些:

  • 下午晚些時候再開會,那是你的生產率總是很低。
  • 總要有一個關於討論話題的議程,不要忽略這一點。
  • 設定一個嚴格的結束時間,到時間就結束會議。
  • 在得出一系列清晰的、可操作的步驟之前,不要離開會議室。

消除干擾

這很艱鉅。資訊時代的世界充滿了干擾,它們來自各種可能的渠道,阻止你完成事務。我會將干擾分為兩大類:我們自己產生的干擾和別人產生的干擾。

先來看我們自己產生的干擾。這想起來看似有些古怪,但事實是,我們成功的讓自己不能保持高產,即使我們這樣做是無意識的。有很多例子:把我們的E-mail和社交媒體賬戶,設定成當有“重要”的事情發生時就“通知”我們;像瘋子一樣在不同的事務之間切換;在Hacker News或者Reddit上設定一個快捷“關注”等等。

問題是,你應該以這樣的方式配置你的工作環境——當你著手於一項工作時,沒有什麼能讓你分心。首先,關閉你的手機、Facebook更新等等上面的訊息提醒。下一步,關閉你的E-mail軟體,如果你決定開著它,確保沒有開啟自動傳送/收取選項。之後,消除任何可以訪問那些不高產站點的渠道,包括你經常泡在上面的DZone、Hacker News等等。注意,我並沒有說“不要用”。我說的是“消除訪問渠道”。我們這裡都是極客,所以我相信你們能夠找到一個技術上的辦法來搞定這件事。你可以使用一個低階的方法——編輯你機器上的Host檔案來讓facebook.com指向127.0.0.1,或者使用一個外掛暫時限制對這些站點的訪問。我個人使用 Blocksite plugin。通過這樣的配置,你將能達到這樣一種的狀態——消除大多數你帶給自己的干擾。

我們來看看由別人產生的干擾。你可能會爭辯,說前文中的一些干擾是別人產生的;但是事實是,你自己產生的,因為沒人強迫你瀏覽Twitter或者Facebook。在這裡,我要說的是“強加於別人”的干擾。例如,多少次這樣的案例發生在你身上?你收到一份你老闆的E-mail,之後他打電話問你是否收到了他的郵件。這是在說生產率。或者這樣的情況:你的同事在你除錯程式碼的時候戳了戳你,並問你一些瑣碎的東西怎麼在Java中實現,而你想到的第一種回答是:“Google一下,混蛋!”

事實上,那些干擾躲避起來有點麻煩,因為很可能過分並逾越人們認可的界限。建議如下:使用耳機(儘管我發現有時這樣也沒用);把來電放入語音信箱,之後再接聽;在你的電腦上掛一張紙,寫著“請勿打擾,程式設計中”等。你必須判斷在你當下的工作中哪些是適合的,並依照執行。目的是能夠形成一個不會被打擾的工作流程。

前一晚準備一個待辦事項的列表

前一晚,你應該列一個明確的事務列表,它在第二天能夠實現是很重要的。我說的不是有很多專案的大表,這永遠不管用。而是精確的指出2-3個重要的任務,它們一旦完成,你的專案將有重要進展。比如像這樣問:“如果我今天只完成了這兩個任務,我會感到我的一天很高產嗎?”如果是的,把它們記下來。

先做重要的事務

正如前文提到的,E-mail從不該是首先處理的。那麼,應該是什麼呢?列表中最重要的事務!你已經找到了一個最關鍵性的事務,那麼你就坐下來搞定它,而不考慮任何其他的事情。理論上,你應該在“一坐”中完成它。休息片刻,之後處理你列表上第二重要的事務。我會在後面的部分談談如何為了優化結果而配置工作和休息。

批處理不僅用在資料庫上

我確信你們中的大多數很熟悉查詢批處理。簡單來說,你“批量處理”許多相似的DB查詢,而只向資料庫傳送一個請求,這實現了更佳的效能。進行最好的優化。你猜怎麼著,你可以在你的事務上使用類似的原則!通過這種方法,你能夠將活動經費和從特定事務中產生的各種日常開銷最小化。事務批處理的一個好例子,就是檢視郵件(想到辦法了嗎?)、電話和幾乎任何枯燥重複的工作。

自動化處理,就像沒有明天

另一個可以加到你的“生產率工具箱”中的東西,就是自動化的概念。作為程式設計師,我們就生活在一個相當自動化的環境中,但是我還是看到了許多“小插曲”——人們決定人工處理一些枯燥、平凡的事務,而這些事務可以輕易的被自動化處理。瞧,人類衰退了,比機器更不可靠了,當手頭的事務無趣而又微不足道的時候就更加衰退了。讓儘可能多的事務自動化處理。例如:實現一個只需單擊一下的完整應用;只用一個指令碼就能部署到生產伺服器等等。說真的,不要為了那些機器能夠處理的更快的事情,而損失精力和體力,沒有你參與更可靠。

為了結果最大化,調整“工作”和“娛樂”

好,現在是時候說說怎樣真正的配置一個工作框架了。我的建議是,分配特定的時間段給“工作”,並分配特定的時間段給“休息”,或者更好的“娛樂”。

例如,你會花費連續的45分鐘,專注於處理特定的事務;之後緊跟著休息15分鐘,在這段時間裡你可以上網、檢視你的社交媒體資訊更新、閱讀最新的Java Code Geeks文章等等。確保在休息期間把你的目光從螢幕上移開,並真正的做一些身體的輕微活動。說真的,“久坐會害死你”(sitting can kill you),站起來走一走。

概念上是這樣的,撇開其他的東西,在自律並痛苦的經過了時間更長的“工作”時段之後,“娛樂”時段將扮演一個自我獎勵的角色。我們的思維是難以理解的東西,但我可以向你保證,設定一個像這樣的獎勵機制,將幫助你在完成更多事情的同時,享受一些快樂時光。

有數不清的計時應用,來從技術的角度達成這一機制,並且你也可以用Pomodoro technique進行實驗。

把所有東西記錄下來

這裡我想說的,是養成把所有東西記錄下來的習慣。不管是你的一個新主意、一個你打算用來解決你手頭的問題的新方法,或者是你明天要付的一個賬單。你必須確保你的大腦容量不會被“記憶東西”消耗掉,而是專注於你正嘗試達成的特定目標。

把你的大腦想象成一個電腦的CPU。你分配給他的“事情”,就像把許多程式載入到後臺。這最終會導致掛起並無法正常工作。記錄下東西的過程,會降低你大腦的負載,並讓它表現的更理想。

列一些分開的列表,並把你的思想分類。這些列表可以包括“潛在專案”、“要買的東西”、“開發”等等。因此,過後你可以很快的瀏覽他們。

撬動“流逝” —— “在區域中”工作

這是聖盃。這是我們想通過適當的設計我們的工作框架來嘗試實現的。這是所有上述的提示想要讓你實現的。我確信你已經經歷過“流逝”的狀態和“在區域中”的狀態,因為它廣為程式設計師所熟知。它就是,當你大腦完全專注,聚焦於特定的事務或者程式,而你基本上失去了對時間的感知的那個時間段。你寫程式碼、寫程式碼、寫程式碼,其他什麼都不存在。外部的刺激甚至不會在你的大腦中留下痕跡,只有你和你最喜歡的IDE。我敢打賭,在我們程式設計工作的所有進展中,80%出現在“流逝”的狀態中。

Heck, 我在寫這篇文章的時候,達到了“在區域中”的狀態!

這裡的底線是,你需要把自己擺在這樣一個位置,你可以輕易地進入"流逝"的狀態,並儘可能長時間的留在那裡。這是我們的大腦進入工作狀態的模式,並且這會使得你的生產率暴漲。我喜歡"在區域中",並且我確信你也喜歡,那麼為什麼不給我們自己一個體驗更多的機會呢?

因此,你會擁有它。關於你花費時間的一些建議。請在短時間段內進行嘗試(比如一到兩週),之後在討論中告訴我進行得怎麼樣。你甚至可以發給我一封E-mail,我將會很高興收到你的訊息!

並且像以往一樣,分享是關懷。如果你發現這些建議有幫助,和同事分享一下,讓我們把我們的工作環境變更優越。

相關文章