【方法論】2017要來了,如何設定目標,如何制定計劃?

原發表於公眾號joyreadrun:YetAnotherThoughts.

本筆記來自於《程序員的思維修鍊》的第六章:主動學習。

今天看到《好奇心日報》推薦的一個系列,2017來了,你的年度計劃怎麼樣了?最近在看《程序員的思維修鍊:開發認知潛能的九堂課》,作者就是《程序員修鍊之道》的作者Andy Hunt。感觸挺多,自己也去review了一下自己的計劃,不僅僅是完成度,而且是計劃和目標本身,是否是一個合理的計劃,它的完成度是不是跟它本身有關。

當然,雖然書是程序員相關的書,知識都是通用的,書中只有舉的一部分例子來自程序員界,我覺得大部分想要通過主動學習提高自己競爭力的理工科甚至文科小夥伴都可以看看這本書。自己最近看的一些書也有些有趣的想法。本文接近於讀書筆記和自己的一些想法,比較粗糙。

有效的學習需要:

  • 主動學習。

  • 結合實踐。

  • 及時獲取反饋,並針對反饋做針對性的訓練、學習。

    這也是任何一個具備足夠心智的人的老師/導師對你學習最重要的形式*,在《萬萬沒想到》、《暗時間》等書籍都有提及, *

只是掌握知識的提綱並不會提高你的專業水平。掌握當然有用,但是對你現實日常工作並沒有貢獻很多。

知識本身並沒有那麼重要,大腦構建的模型、為構建模型所提出的問題和你日常經驗對你的業績更加重要,它們才能提高你的競爭力和專長。僅有知識是不夠的。

為了做到這些,需要持續的目標,需要及時的反饋以了解你的進展,需要更加主動的學習。

使用SMART目標和實用投資計劃(Pragmatic Investment Plan)管理目標和計劃。PIP來源於金融投資管理,使用在個人計劃與目標管理也很合適。

設定SMART目標

如果你不知道去往何處,那麼你必須多加小心,因為你很可能無法到達那裡。

-- yogi Berra,前美國棒球手

為了實現你的願望——職業生涯和個人生活中的學習和成長,你需要目標。目標不能保證你成功。

相信你自己也有過目標,年度目標,季度目標,whatever。這樣的例子不少:

  • 我要減肥。
  • 我要換個學區房。
  • 我要牛逼。
  • 我要在母校做演講。
  • 我要學Scala,Haskel。。。

這樣的目標都很好,尤其是能夠做到的時候。

問題應該是:它們有沒有被你做到?

如果有,這篇文章也對你沒有價值了。這些目標,都是一個模式——泛泛而談,崇高的,但是雲里霧裡。『我想要在XX方面更好。』這只是一個願望,並不是一個明確的目標。

比如:我想減肥。你想減多少斤?你想通過無氧訓練還是有氧的跑步減肥?你每天想跑多少公里?霧霾天耽誤了計劃怎麼辦?需不需要結合無氧訓練?如何分配精力?你想學習Scala,想學習來做什麼?學習到什麼程度?如何開始?怎麼學?

一個泛泛而談的目標,大多數時候都只會泛泛地存在於你的計劃里,你朋友圈裡。如果想要更好地專註於它,更好地實現它,你需要一個可操作的、可實現的目標。來源於《管理實踐》(The Practice of Management)的SMART方法可以幫助你制定目標。

SMART代表:Specific(具體的),Measurable(可度量的),Achievable(可實現的),Relevant(相關的),Timeboxed(時間可控的)。對於你雄心勃勃的任何目標,你都需要制定一個計劃,制定出一系列幫助你實現目標的任務(objective)。每一個任務都應該具有SMART特性。

Specific 具體的

要把任務具體化,比如,『我想學習Scala』,就可以具體為:『我想用Scala編寫一個scalable和reliable的實時計算框架』。

Mesurable 可度量的

如何知道你何時完成?制定計劃和目標之前,問自己這個問題。

為了實現目標任務,不管用什麼方法,必須要能夠度量它。它與具體的相輔相成。

度量你的目標任務,但是要採取步步為營、增量進步的方法。

軟體開發中,可以分解任務,設定很多小的里程碑,作為一步一步的方向,也是項目進度的度量。及時你現在可能只能看到近期的一兩個可做的里程碑。

Achievable 可實現的

自己無法做到的不是目標,比如泡到世界小姐。或許是可能的,但是需要過度地付出時間和資源。

你需要確定目標是否合理。從你現在的情景和需求著手,讓每一個目標都可以實現。

Relevant 相關的

目標需要與你相關,與你想要的東西相關,對你重要,你對此要有熱情,是在你自己控制之下的事情。

『我想要特朗普下台。』就是不相關的,你沒有綠卡還不趕緊寫代碼去?

時間可控的

這是對目標最重要的特性。你需要一個明確的Deadline。如果沒有Deadline,目標便會衰退,永遠被每天更緊急的事情排擠。它永遠不會實現。

*『老師,我就差60分一分,就讓我及格吧!』『老師,我就差59分1分,你讓他59分及格了,你也讓我也及格了吧...』。。。 * 永遠不要把任何學習推到等我有空,事實證明,你永遠沒空,時間無法被創建,都是分配出來的。你需要定期的安排。

你的目標需要放到更大背景上看它的重要性。

設定目標只是第一步,下一步行動是創建小任務以幫助你每天或者每隔一段時間都能達到某種程度。你創建的小任務越多,就越容易看清自己與目標的距離。

*當你完成一個大的任務時,可能你根據任務開始時的預測與設計,分解出了多個裡程碑和小任務,而在任務進行中,卻發現了更多的複雜性,更多的里程碑、小任務會被插入進去是很正常的事情。越早動手越好發現路有多長多難,不要在空想和設計躊躇太多時間。 *

使用實用投資計劃(PIP)制定計劃

《程序員修鍊之道》作者建議大家把技術和才幹看做一個知識投資組合。像任何投資一樣,用金融投資管理的方法論,把自己的時間與經歷投資與知識與學習中,學會管理。

我們大多數人都會陷入一種默認的日程表:等我有空了我要好好學習一下Scala;我要好好學習一下分散式系統。

然而你有空了嗎?把學習活動流放到『空閑』時間去,就等同於計劃失敗。

*這個挺常見的,看看你的Pocket的reading list有多長,稍後閱讀(Read It Later) ~= 永遠不讀(Read It Never)。 *

時間是無法創造或者銷毀的。時間只能分配。

管理你的知識投資有很多要點:

  • 制定具體的計劃。
  • 多樣化。
  • 主動投資。
  • 定期投資。

制定具體計劃

使用SMART法則,在一個時間跨度內,設定你的目標。比如:半年內,自學完成MIT 6.824 分散式系統課程,完成全部lab作業和閱讀論文,這樣具體的具有時間跨度的目標。

做計劃比計劃本身重要得多。

多樣性

當選擇投資領域時,你需要有意識地多樣化,不要把所有雞蛋都放在一個籃子里。

多樣化同樣也要考慮風險和投資回報率的。 比如學習流行的Java語言風險非常低,因為它TIOBE排名持續前茅,很多大型互聯網公司,以及銀行都在使用,技術支持、論壇、書籍、課程、資源非常的多。但這也意味著它的投資回報率也非常低,有很多的程序員都在使用,就業崗位面臨大量競爭。你學習它並不會變得特別。

而,高風險的技術也存在。比如NodeJS,依託Chrome V8引擎帶來的高效率和互聯網發展迅速將js推向了後端服務市場,發展迅速,嚴重缺人。這在曾經可能就是一個高風險高回報的投資選擇。

Ruby可能就是下一個Java,WP可能成為移動互聯網的基石。任何技術,都伴隨著高風險降生,有些的回報率能夠保持合理並持續降低風險,有些不能。

說到底,知識投資與金融投資的一個主要區別是:所有知識投資都或多或少有一些價值。即使你的工作里沒有使用某項技術,他也會影響你的思維和解決問題的方式。

主動而非被動地投資

《程序員修鍊之道》的一個主要話題就是反饋。你需要及時地評估你的計劃和執行結果,如實判斷運行狀況。

金融投資講究並非守著你的資產,而是要主動隨時重新評估你的投資,主動積極投資。

知識投資也一樣,主動汲取反饋,以最新發展眼光重新修改目標或者實施步驟。

定期投資(成本平均法)

你需要像金融投資一樣,定期投資最低限度的時間量,養成一種習慣。安排最少需要消費的最低時間來在你對應的投資上。

實踐

  • 看看自己的2016年度計劃/季度計劃,每一個目標任務是否符合SMART原則?
  • 嘗試修改年度計劃,並開始遵循SMART和PIP原則,草擬你的2017計劃。

推薦閱讀:

諾貝爾獲得主教我們如何更聰明的學習,超越智商的限制
知乎生活中的反智主義(下)
請問複雜性研究對人工智慧發展的幫助有多大?
是否以成敗論英雄? 辯論
如何有效區分「還不夠努力」和「努力錯了方向」?

TAG:计划 | 制定目标 | 方法论 |