工作中大部分時間在寫業務代碼,2~3年以後,感覺在做機械重複勞動,技術沒有長進。因此陷了極度的迷茫中。
看到了公衆號“碼農翻身”的《程序員七問》一文,感覺非常受用。
1、我是否對系統的業務有了整體的瞭解?
我能不能向其他人(如面試官)描述該系統的業務:
1)系統有哪些角色,這些角色如何跟系統交互。
2) 系統有哪些主要流程、次要流程,都要那些角色參與其中。
能否對現有的業務進行提煉、流程優化,更好的爲客戶解決問題,讓自己的產品處於行業領先。
2、系統的整體架構是什麼樣子?
系統分爲那些模塊、組件、如何部署,怎麼交互的,用的什麼協議?要能夠熟練畫出系統整體框圖、關鍵流程圖、交互圖等。
不能夠只守着自己的一畝三分地,要放眼整個系統。
3、系統用到了哪些技術和框架,我是不是都已經精通了?
技術和框架選型的場景,解決了什麼痛點問題。有沒有優化的空間和替代方案。
4、我是不是已經精通了多個模塊甚至整個系統的代碼?
在精通自己負責模塊的代碼後,有條件一定要熟悉整個系統代碼。對於一bug,能否快速定位到源頭,不管是不是自己的模塊。
對於“爛代碼”,“坑”,我是否有能力,有勇氣去重構。或自己私底下寫出更好的開源項目。
5、對於系統的非功能需求,我是不是掌握了?
安全、性能測試、高可用、可擴展等是怎麼實現的
6、我是不是已經瞭解、甚至掌握了系統使用的工程實踐?
系統怎麼做集成構建、測試、部署、監控?用的哪些工具?
現在有什麼問題?我能不能改進它?
7、我在團隊的地位如何?
同事有技術或業務問題,會不會第一時間想到找我來幫忙?
我能不能再團隊討論中發出自己的聲音和見解,並且被別人尊重?
我是不是經常可以給大家做技術分享?
我們要脫離自己的“一畝三分地”,aim higher,慢慢成爲一名有影響的Leader