写代码水平的几个发展阶段
背景
這篇文章非我原創,是我在公司內部平臺拜讀了我們公司的架構師——杜歡最近寫的一篇文章,也很感同身受,覺得非常值得分享。
杜歡在我的眼中是一名非常出色的全棧工程師,他擁有 10 年以上的開發經驗,無論從技術深度和廣度上都有很不錯的造詣,即使已經做到了部門技術總監的位置,還能始終保持著對技術的熱愛和追求,令我非常佩服。他根據多年的經驗,總結出程序員寫代碼的水平分為以下幾個發展階段:
懵懂
剛開始學習編程或學習一種新技術的時候,會有種霧里看花的感覺,似懂非懂,就算記住了也不會用。要突破這個階段的方法就是“練習”,通過各種項目讓自己熟練起來,做到任何一個不太難的業務需求可以快速想到解決方案并且開始動手實現。
會用
通過 google、stackoverflow、各種專業社區、各種文章等渠道,自己慢慢會發現更大的世界并對這個世界中各種技術產生了興趣,理解一個簡單的新技術不再成為自己的瓶頸,自己慢慢可以駕馭非常多的工具、組件、庫、設計模式、算法、語言等,主動不斷擴大自己的視野,嘗試在項目中使用各種新東西,對引入一個新技術開始變得非常興奮,最終可以做到快速的吸收并理解一個新技術的用法,也知道什么時候該用什么技術。
會看
出于某些機緣,比如遇到了一個比較難以解決的 bug,開始深入閱讀某種日常用到的技術的內部原理,從而開始發現更多自己所不知道的東西,并開始對各種技術的背后實現產生興趣,慢慢建立起一個相對完備的知識體系,對某個領域的所有的相關技術都能夠如數家珍一般的講出來,第一次開始有一種“時間不夠用”的無力感,面對浩如繁星的開源/閉源代碼量深深感覺到自己的渺小,越來越不愿意去輕易重造一個輪子,真正懂得怎么去評估一個開源技術的好壞。
會寫
突然有一天,在鉆研某種技術的時候發現一種突破性的思路,并且通過謹慎調研后發現確實有實現出來的必要,于是就將大量的時間投入在實現理想的過程中去,并且主動的用各種技術來提升自己的工作效率,最終拿出來的成果確實如預計一般站在了業界的最前沿。
會想
當自己已經站在了業界這個領域的最前沿,除了繼續動手實現最核心的代碼,還找到了未來三年的發展方向,并且第一次勇敢的自我否定拋棄了自己原先的想法。
總結
如果長期不寫代碼一定會讓自己的水平下降,如果長期只做當前級別以下的事情也可能會退化。絕對不是說“會想”了就可以每天冥想、指點江山,自己不動手就很容易被后來者超越并且開始固步自封,從“會想”變成自以為是,退化到之前的階段。
杜歡認為他目前一直停留在“會寫”的階段,甚至有可能已經退化到了“會看”階段,距離“會想”還非常的遠。我看完后感覺自己在“會看”和“會寫”中徘徊,也遠沒達到“會想”的階段。
非常多的程序員停留在“會用”的階段,滿足于能夠解決問題,還沒能看的更深更遠。在“會用”的階段很容易產生一種無所不能的錯覺,覺得已經沒什么功能實現不了,開始重復造一些并不怎么好的輪子,造輪子之前甚至都沒有去仔細研究過業界最先進的技術實現細節,如果一直處在這種錯覺之中,基本上就很難再成長了。其實這種現象在大公司中也常出現,很多程序員僅止步于寫代碼的初級階段,還是非常可惜的。
在進入“會看”之后會有一段非常長的痛苦期,這段時間里會非常感覺一個人的渺小,既沒有時間去窮盡所有技術細節,也沒有能力去找到前人沒有嘗試過的突破性創新,簡直是一種煎熬。有不少業界大牛就停留在這個階段,迷失在各種細節之中,成為一個知識豐富但缺乏創造力的人。
我最近認識了一些新朋友,是一些熱愛折騰的年輕人@doodlewind、@工業聚,我關注了他們的一些動態,并在和他們交流技術的時候明顯感覺到技術視野和思路被打開,非常看好他們。雖然我現在在公司也做了一些技術管理的工作,時間精力被分配了一些,但也希望自己也能一直保持著持續的技術學習,在技術這條路上繼續深耕。
希望所有程序員都能筆耕不輟,向著下一個階段進發。
總結
以上是生活随笔為你收集整理的写代码水平的几个发展阶段的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 配置bond和vlan
- 下一篇: Pandas学习笔记1(序列部分)