程式設計師的能力拓展模型

2021-07-31 09:50:54 字數 1867 閱讀 9122

聽人說了乙個詞兒,叫作「comfortable zone」,中文是「舒適區」。

這個詞兒讓我瞬間聯絡到程式設計師的能力邊界問題,我畫了能力拓展模型圖。如下:

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

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

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

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

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

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

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

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

在軟體開發過程中,乙個程式設計師,他會什麼語言懂什麼框架水平如何,自己心裡有數,專案經理通過他的表現也認為自己心裡有數。那麼在有新的專案要做時,通常的做法是,哪個程式設計師熟悉實現tx任務相關的技術,就讓這個程式設計師做tx任務,這通常又是出於交付期、生產率、成本等各方面的考慮。

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

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

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

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

在渴望成就自我的程式設計師眼裡,問題即機會。只有抓住機會,我們解決問題的能力才會在痛苦的歷練中像雪球一樣越滾越大。

程式猿的能力拓展模型

聽人說了乙個詞兒,叫作 comfortable zone 中文是 舒適區 這個詞兒讓我瞬間聯絡到程式猿的能力邊界問題,我畫了能力拓展模型圖。例如以下 我認為這個能力拓展模型,適用於乙個人的方方面面。但這次我打算僅僅拿程式猿來扯一下。圖中左側是我們的現狀,最內層的原型是我們感到舒適的區域。我稱之為 舒...

程式設計師的能力模型與溝通技巧

程式設計師能力模型 程式設計師,大家都是天天埋頭敲 很少對程式設計師這個職業的能力模型有個了解,造成能力上出現嚴重偏頗,通常嚴重偏技術,不太懂人情世故,不懂如何去溝通,很多時候讓客戶或者業務部門誤解,造成一些不必要的麻煩。其實這樣會嚴重影響自己未來的職業發展的。這樣重要的能力模型應該是怎麼樣的呢?見...

程式設計師需要的能力

總的來說,還是因工作性質不同而異,但是就我做過的東西看來,需要以下幾點 1 學習能力,我曾經就接受了一項任務,要完成這項任務,我必須得學習新的語言和技術 而且要在很短的時間內完成 2 細心,我曾經被無數的bug困擾,印象深刻的一次是僅僅漏寫了乙個英文單引號,但是我半天都沒發現錯誤 因為乙個小小的單引...