程序員容易焦慮,普遍的原因是:技術、社會在發展,害怕自己的“成長”速度趕不上。那么如何有效成長呢,尤其是對于普通程序員來說?
目前我們看到的文章多是從“技術”的角度分析程序員成長路徑,最近阿里巴巴技術專家李建(甫田)在“技術瑣話(ID:TheoryPractice)”發文,嘗試用邏輯分析“普通程序員如何成長”,以下是他的方法:
分析問題JTBD(Job to be done)是一個非常好的用于分析問題的方法。需要明確用戶在特定場景下必須解決的問題或完成的任務,也就是目標用戶(Who)、在什么場景(Job context)以及完成什么任務(Jobs)。回到“普通程序員如何成長”的問題:任務很清楚,就是“成長”;而目標用戶呢,普通程序員是誰?還有用戶場景也不清晰。
普通程序員是誰?這里采用的方法是“典型用戶”,用一個人來描述一群人,就像用中間值(median)描述一組數一樣。不同點是典型用戶在現實世界上不存在,只是為了理解和交流的方便故意把描述寫得很真實。
普通程序員的典型用戶是:小明,大學畢業,在 IT 企業上班。小明每天工作很忙碌,朝九晚十,像很多在一線城市奮斗的年輕人一樣,小明面臨著房貸、養家糊口等壓力。IT 技術發展很快,已有經驗過時也很快,小明很困擾,每天瞎忙碌,成長卻不多。如何才能擺脫眼前的茍且,獲得理想的成長?
從用戶場景找“矛盾”假設小明 9:30 到公司,打開電腦,處理郵件;10:00 開會匯報進度或是其他會議;11:00 線上出現緊急事故,需要修復 Bug;15:00 繼續開會,到了 19:00 開始寫代碼,做需求;忙到第二天 0 點才睡覺。從場景中發現用戶訴求和現狀間的矛盾:成長的訴求與“瞎”忙的現狀之間的矛盾。具體來說就是:朝九晚十,日常工作已經占滿了小明的時間,如何才能“擠”出時間,做能讓自己“成長”的事情?
有邏輯地解決問題邏輯框架能幫助我們系統地思考問題,尋找解決方案。這里使用的邏輯框架是:從“問題”出發,提出假設,明確度量目標,過程中不斷總結、迭代,解決問題。
回到“程序員如何成長”的問題:
問題:繁瑣的日常工作占用大量時間,卻沒有獲得想要的成長;假設:如果成長了,可以承擔更有挑戰的工作,擺脫低水平的重復,也能獲得組織認可;度量:度量和目標相關,成長的目標可拆解成各個階段性目標,例如:掌握 DDD、提升提問水平、某個時間內達到目標職業層級等;認知:在過程中不斷總結原因 / 經驗,進行相應調整。用影響地圖尋找解法影響地圖是一種結構化拆解目標達成路徑的有效方法:需要明確目標是什么(Why)、為了達成目標需要哪些人(Who)、為此需要做什么(What)去(How)影響這些人。使用影響地圖拆解“普通程序員如何成長”的達成路徑:
用戶故事地圖組織優先級用戶故事地圖就是通過組織寫有“用戶故事”的卡片,幫助分析需求核心價值和成本,從整體視角規劃需求優先級。用一句話描述用戶故事就是:某角色,通過完成用戶需求,實現了什么價值。基于影響地圖梳理出來的用戶需求,根據價值進行分類:
效率是第一優先級,提高效率才能擠出時間。做正確的事情是第二優先級,方向對了才可能成功。這需要提高判斷能力,有正確的思考方法等。正確做事情是第三優先級,學習并掌握正確的流程和方法,結果才能保證。持續學習了解了“普通程序員”如何成長的達成路徑和優先級,可是要怎樣實現具體的事項?
例如:有哪些提升效率的方法?怎樣才能快速提高判斷正確與否的能力?回答這些問題,需要不斷學習,提升認知水平,因為學習是最高效的成長方法。
推薦使用學習三步法:
學:明確學習目標,收集資料,堅持“系統”學習;練:熟能生巧,掌握一門技藝需要反復練習;教:通過把自己所學內容教給他人,既是檢查學習熟練度的標準,也能獲得反饋發現不足進行彌補。此外,唯有持續學習,多學多知,不斷提升認知水平,才能獲得成長,擺脫焦慮。以上就是今天的內容,希望對你有所幫助。