程序員的能力拓展模型

聽人說了一個詞兒,叫作“Comfirtable Zone”,中文是“舒適區”。

    這個詞兒讓我瞬間聯繫到程序員的能力邊界問題,我畫了能力拓展模型圖。如下:



    我覺得這個能力拓展模型,適用於一個人的方方面面,但這次我打算只拿程序員來扯一下。

能力拓展模型

    圖中左側是我們的現狀,最內層的原型是我們感到舒適的區域,我稱之爲“舒適區”。

    以程序員爲例,當程序員的技術能力和解決問題的能力達到一定水平之後,就能夠輕鬆勝任某些開發任務,解決特定實際問題,給用戶帶來某方面的便利。他的能力與他接觸到的問題匹配,此時程序員處於舒適區。這個舒適區的大小是由他解決問題能力的大小定義和界定的。

    當問題超出程序員先有技能和經驗說明,他能看到並瞭解,但還不能解決。那這些問題就是這個程序員隨時可能面對的挑戰區,也就是圖中的***圓型。

    圖中的大片的紅色區域,對程序員來講,就是未知區域,未知即迷茫,未知即痛苦。這個區域往往是程序員看不清或看不到的,是百慕大三角的一片未知而神祕的區域,貿然跳入,可能折戟沉沙鎩羽而歸。

    假如一個程序員願意跳出舒適區,踏入挑戰區,接受一定的不適,那他就能夠有機會拓展他的能力,將自己的舒適區擴展得更大,他的能力模型就變成上圖右側部分,舒適區變大,挑戰區變大,痛苦區變大,這也是符合人類認知規律的:知道的越多,不知道的也越多。

    如果一個程序員連輕微不適都不願意接受,那他就會漸漸固步自封,落後於別人,落後於時代,漸漸被這個日新月異的時代所拋棄,成爲一個別人眼中沒什麼用的老傢伙。

在開發過程中擴展舒適區

    一個程序員的能力,是可以通過鍛鍊不斷變強的。就像人的肌肉,一段時間讓鍛鍊強度超負荷一點,適應了,習慣了,肌肉變得比原來強了,就再超負荷一點,通過這樣的螺旋式遞進,肌肉就會越來越強。程序員也是一樣的,你的學習能力、代碼能力、設計能力、溝通能力、管理能力等等,都是可以通過鍛鍊來加強的(我們得考慮一個人適合做什麼,如果他沒有某方面的才幹,雖然通過鍛鍊也可以加強,但違背天性的事兒通常爲事倍功半)。

    在軟件開發過程中,一個程序員,他會什麼語言懂什麼框架水平如何,自己心裏有數,項目經理通過他的表現也認爲自己心裏有數。那麼在有新的項目要做時,通常的做法是,哪個程序員熟悉實現Tx任務相關的技術,就讓這個程序員做Tx任務,這通常又是出於交付期、生產率、成本等各方面的考慮。

    在這種情況下,每個人都做自己駕輕就熟的事情,對整個項目來講,自然是最經濟的。可是對程序員自己來講,卻是不經濟的。因爲你無法接受新的挑戰,你的能力邊界的拓展就會很慢。所以,合理的情況是,項目經理在劃分任務時,要對程序員負責,既給一個程序員能輕鬆完成的任務,也要給他需要費點兒勁兒才能完成的任務,通過具有挑戰性的任務來鍛鍊這個程序員,讓他更好更快的成長。但是這樣做的管理成本太高,所以,現實當中,很少公司的項目經理會主動這麼做(沒合適人手take某個任務時會被動這麼做)。

    鑑於這種現實,作爲程序員自己,如果你想更快地成長,就要表現得勇敢一些,主動走到挑戰區域,去搶具有挑戰性的任務。(如果不好意思主動,也可以在有挑戰性的任務落在自己頭上時屁顛屁顛地接受。)一旦你拿到了對你來講具有挑戰性的任務,那你就賺到了。沒錯,我是故意這麼說的,你賺到了。雖然你會爲此殫精竭慮,雖然你可能爲此加班,雖然你可能爲此在別人看不見的地方付出,但是你擁有了機會和更多可能性,如果你順利完成了,那你的舒適區會擴大,你接觸新挑戰的機會也會變大,你就進入了良性循環,你會越來越強大。你終將走上七龍珠中悟空的變身之路,成爲賽亞人,超級賽亞人,超級賽亞人2,超級賽亞人3,……直到成爲超級賽亞人之神。

    想想看,這是多麼美好的事!

    So,某個技術沒搞過?不是問題。某個語言沒學過?不是問題。軟件結構太複雜,一時掌控不了?不是問題。業務不熟悉?不是問題。如果你覺得這些是問題,OK,請坐看雲起,等待時光帶走一切然後把你丟在原地。

    在渴望成就自我的程序員眼裏,問題即機會。只有抓住機會,我們解決問題的能力纔會在痛苦的歷練中像雪球一樣越滾越大。

轉載自:http://blog.csdn.net/foruok/article/details/46628159


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章