0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

一位軟件工程師的成長曲線

工程師人生 ? 來源:網(wǎng)絡整理 ? 作者:工程師吳畏 ? 2018-07-30 18:19 ? 次閱讀

小李畢業(yè)后在一家公司做軟件工程師,轉眼間一年多的時間已經(jīng)過去了。

回想剛畢業(yè)那會,他是懷著無比忐忑的心情進入了這家公司的技術部門。各種新奇的開發(fā)工具,叫不上名字的眾多軟件框架,龐大的代碼庫,井然有序的工作流程,都是小李以前在學校里不曾遇到過的,這讓他感到了前所未有的壓力。于是,在開始的那半年,小李就像一株久旱的禾苗遇到了雨水,拼命地吸收著工作中遇到的每一點知識。他學習新的編程語言,學習新的開發(fā)工具,學習調試和解bug的技巧,也學習處理各種棘手的業(yè)務邏輯。雖然每天工作很累,但每天都是滿滿的收獲。

而現(xiàn)如今,小李儼然是一名很有經(jīng)驗的老手了。對于工作中一般的問題,他都能游刃有余地加以解決,無非是把現(xiàn)有的一些內(nèi)部接口重新組合利用,或者按照原有的套路重新設計改進一番。應付工作既然比以前輕松了許多,工作的壓力也就顯得沒有那么大了。于是小李平常也能抽出時間來上上網(wǎng),看看美劇,或者打打游戲,有時候也帶著女友去看場電影或者球賽。

然而時間長了,小李心里卻隱隱多了一絲不安。他再也找不到開始那種突飛猛進的爽快了,而且當對工作越來越熟悉之后,工作本身開始變得枯燥、沒意思。他決定花更多精力在自己的技術提高上,但卻感覺無從下手,很難突破。每次完成一個新的開發(fā)需求,也只是不斷重復舊有的東西而已。

成長曲線和四大階段

小李的情況其實非常典型。很多技術人員在工作一兩年之后,對工作周圍的事情都駕輕就熟了,就可能會陷入第一個瓶頸期,再難突破。

為了能更清晰地分析技術成長過程中出現(xiàn)的各種情況,我們來對技術的成長曲線做一個總結。如下圖:

一位軟件工程師的成長曲線

技術的成長過程并非勻速線性的,而是分階段的。每個高速增長的突破期后面,都跟著一個平緩的增長期,可以稱為舒適期,也可以稱為瓶頸期。舒適期是針對過去而言的,而瓶頸期的說法則更著眼于未來。

一般來說,突破的過程,絕非輕而易舉,而且有可能伴隨著陣痛。它需要我們付出十分的心力,甚至承擔一定的風險,做成一些原本超出自己能力極限的事情。而一旦過了突破期,各種技能在這個層次上融會貫通,就會給我們帶來極大的自信和成就感。這個時候,處理同一層面的問題,逐漸變得輕車熟路,于是進入了舒適期。

舒適期對人有一種天然的吸引力,我們只要待在這個階段,就能獲得最大的安全感,盡量少地遭受不確定性的折磨。很多人會選擇待在這個區(qū)間,不再走出一步。而另一些人則會對這一階段的緩慢增長產(chǎn)生焦慮,于是舒適期變成了瓶頸期,從而引發(fā)下一輪的突破。

以每一次大的突破為分界,我們可以將技術人員的成長粗略劃分為四大階段:新手、熟手、專家、宗師(開創(chuàng)者)。

新手經(jīng)過半年到一年的工作經(jīng)驗,如果能成功適應這份工作,基本就能有所突破,變成一個熟手。熟手的特點是,能對現(xiàn)成的工具充分利用,勝任大部分日常工作。在技術水平的表現(xiàn)上,他了解大部分的技術概念,但不一定理解真正的含義;在他的眼中,技術還無法自成體系,能理解到的知識架構還有所殘缺。他解決問題所依靠的,更多是經(jīng)驗而非縝密的邏輯。前面提到的小李,就處于這個階段。

熟手再向上突破一層,則成為技術專家。專家,在某個領域擁有足夠全面、系統(tǒng)而深入的知識儲備,對于技術上的疑難雜癥,有能力深入到足夠的層次,指出問題的癥結所在;另一方面,專家還應該能夠完成對具體問題的抽象,擁有“造輪子”的能力。在專家的眼中,技術的黑盒子被打開,知識點也不再是孤立存在的,而是相互枝連,構成一個完整的邏輯系統(tǒng)。

而真正達到宗師這一級別的,整個世上也寥寥無幾。他們是真正的開創(chuàng)者,能夠引領一個技術時代。什么樣的人才配得上“宗師”這個稱呼呢?比如Dennis M. Ritchie(C語言和Unix之父),再比如Linus(Linux內(nèi)核的發(fā)明人)。

但就像前面的技術成長曲線圖所描繪的,技術的成長階段并沒有一個上限。無論你處在哪個階段,前面仍然存在無限的上升空間。

郭靖的進階之路

近日細讀金庸老爺子的《射雕英雄傳》,忽然意識到,郭靖乃是金庸武俠中天資最為魯鈍的一位主人公。然而,郭靖從一個普通少年,終成長為一代大俠,這一過程,正好暗合了前面講到的技術成長曲線。

郭靖從六歲開始,在蒙古大漠接受江南六怪傳授武功,花了整整十年。后又得全真教掌教馬鈺傳授內(nèi)功一年有余,武功初入門徑,獲得了武學上第一個突破(熟手期)。處于這個階段的郭靖,在武功上與同齡的楊康不相上下。

郭靖在武學上的第二個突破,起因于兩個事件:一個是“北丐”洪七公傳授他降龍十八掌,另一個是老頑童騙他背誦《九陰真經(jīng)》。經(jīng)過一番歷練,在華山頂上,他已經(jīng)擁有了分別與“東邪”和“北丐”過手三百招而保持不敗的戰(zhàn)績。此時的郭靖,已經(jīng)是高手中的高手了(專家)。這第二次突破,他只用了兩年有余。

而郭靖的第三個突破,已經(jīng)是在《射雕》之后了,終于成長為一代武學宗師。

為什么天資并不出眾的郭靖,卻能夠接連取得突破呢?至少兩個原因不容忽視。一個是勤奮,“人家練一朝,我就練十天”,所以根基打得好;另一個原因是他恰好學對了東西,降龍十八掌和《九陰真經(jīng)》都是正宗武學,有幸學到自然是突飛猛進。

突破的要領

技術成長的關鍵在于突破。

然而,在技術成長的路上,越到后面,突破的難度就越大。大部分新手,只要保持足夠的勤奮,總能達到熟手的程度。但很多人卻止步于此,他們或流連于舒適期的誘惑不肯走出來,或長期卡在瓶頸期卻找不到突破的出口。能夠突破達到專家這一階段的技術人員,已經(jīng)足夠成為各大公司技術部門的翹楚了。而要達到宗師的級別,則不光靠個人的努力,還需要時代的機遇才有可能。

那么,為了達到真正的突破,有哪些因素是我們需要重視的呢?

第一,根基。

在接觸一門新技術或者一個新的技術領域時,良好的基礎有利于我們快速突破,抵達下一個階段。不同技術之間,基礎卻是相通的。比如,對于計算機軟件學科的基礎知識——數(shù)據(jù)結構和算法,處于熟手期的程序員可能多半會認為它們在工作中根本沒有用。這是因為這個階段的技術人員主要靠孤立的經(jīng)驗解決問題,一些基礎的知識自然就用不上。但對于技術專家層次的人來說,數(shù)據(jù)結構和算法卻是在系統(tǒng)設計的很多方面潛移默化地發(fā)揮作用。對于其它計算機基礎學科,這個道理也同樣適用。

再比如,現(xiàn)在人工智能機器學習技術比較火,似乎全民都在學習。但要想學好這些技術,至少應該對于微積分、線性代數(shù)、概率論、統(tǒng)計學等數(shù)學知識有比較扎實的基礎,才能走得更遠。

第二,外因,一個不疾不徐的環(huán)境。

過于寬松的環(huán)境自然不利于人的進步,而盲目的緊張也不利于人的成長。

突破的過程需要付出巨大的精力,所以需要投入足夠的時間去從容地完成。我們大概都經(jīng)歷過這樣一種場景:新產(chǎn)品上線在即,但還有很多問題需要解決。如果距離預定上線時間還有數(shù)天,那么我們可以相對從容地用比較優(yōu)雅的方式來解決這些問題,并做一些長遠的打算;但如果我們碰到的情況是,兩個小時以后就要上線了,那么我們多半會想一些歪點子來規(guī)避這些問題。

產(chǎn)品開發(fā)和技術優(yōu)化,有時相輔相成,有時又互相矛盾。如果你所處的工作崗位,只是要求你不停地修改業(yè)務流程,盲目地試錯,那么,可能公司根本沒有給你留出技術突破的空間。試想,一個主旨不清,功能點做了新的就扔了舊的,而沒有長遠的目標,也不去持續(xù)優(yōu)化體驗,這樣的一個產(chǎn)品,又怎能有持續(xù)的生命力呢?

第三,正確(正宗)的學習資料。

新手剛開始工作的時候,通常只要看一些入門教程(Tutorial),跑幾個Demo,掃除了表面上的技術疑問點,再針對業(yè)務代碼向老員工請教一番,基本就能開始工作了。然后一邊編碼,一邊查閱所需要的API Reference,時間長了,經(jīng)驗和技巧足夠多了,就自然變成熟手了。

而從熟手向專家的突破,則需要系統(tǒng)地去補習知識架構。技巧應該建立在對于普遍規(guī)則的理解之上。這里不得不提及Spec,它是涉及某項技術的完備的、系統(tǒng)的描述,包含該項技術涉及到的方方面面(具體參見我的另一篇文章《技術的正宗與野路子》)。在奔向技術專家的路上,閱讀Spec,是不可逾越的一道功課?!渡涞瘛分泄傅奈涔ν黄疲艽蟪潭壬暇褪且驗樗喿x了《九陰真經(jīng)》這份大大的Spec。當然,除此之外,你可能還需要通讀重要部分的API Reference以及Source Code。

技術專家必然將原始文獻(官網(wǎng)Spec、論文等)作為知識的第一來源。相反,跟著某人的博客去系統(tǒng)地學習某方面的技術,是要冒有很大風險的,還需慎重選擇。

最后,要想成為技術上的一代宗師,則需要更高的抽象,做出完全創(chuàng)造性的工作。這份工作不僅僅是閱讀Spec,解決具體的問題了,而是創(chuàng)作Spec,開創(chuàng)全新的天地。

第四,獨立思考,不要自我設限。

現(xiàn)在,很多人喜歡把技術好的人喊作“大神”。這自然是代表一種尊重,很多聽的人也很受用。

但是,“神”的稱呼暗含了一層意思:神是無法超越的,是普通人學不來的。這是人們在潛意識里劃出的一道鴻溝。所以,我就不太喜歡類似這種稱呼。

很多人碰到問題就喜歡找身邊“大神”去問,但殊不知問再多問題,你仍然無法真正地有所提高。普通人和“大神”之間真正的鴻溝在于,能否獨立思考和解決問題。

在追求技術成長的路上,不可能總是一帆風順。我們不免有時沮喪,有時欣喜。

人生苦短,有人窮其一生,就是想要達到理想中的那個狀態(tài)。但不管結果如何,當我們青春不再的時候,只求問心無愧。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 工程師
    +關注

    關注

    59

    文章

    1571

    瀏覽量

    68574
收藏 人收藏

    評論

    相關推薦

    特斯拉招募軟件工程師強化無人駕駛與機器人遠程操作

    近日,據(jù)外媒最新報道,特斯拉正緊鑼密鼓地招募軟件工程師團隊,旨在加強其無人駕駛出租車及Optimus機器人的遠程操作能力。這舉措標志著特斯拉在推動自動駕駛與人工智能領域邁出了重要步。 特斯拉此次
    的頭像 發(fā)表于 11-27 10:26 ?581次閱讀

    尋求專業(yè)工程師幫助設計USB多口充電器

    嗨, 我正在開發(fā)款USB多口充電器,現(xiàn)尋求一位專業(yè)工程師或產(chǎn)品設計的幫助。希望能夠與有經(jīng)驗的工程師合作,共同完成產(chǎn)品設計。以下是我們的需
    發(fā)表于 08-05 12:03

    嵌入式軟件工程師如何提升自己?

    ,可以為自己的職業(yè)生涯打下堅實的基礎,并實現(xiàn)個人的職業(yè)目標。愿每一位嵌入式軟件工程師都能在這個充滿挑戰(zhàn)和機遇的領域中取得成功!
    發(fā)表于 06-12 11:20

    索尼誠邀軟件工程師參與PS免費手游平臺設計

    據(jù)悉,近日,澳大利亞知名媒體TweakTown發(fā)現(xiàn),索尼互動娛樂正在為其旗下的PlayStation Studios Mobile招募名資深的軟件工程師,負責設計PlayStation的免費手機游戲平臺。
    的頭像 發(fā)表于 05-23 17:08 ?746次閱讀

    嵌入式軟件工程師和硬件工程師的區(qū)別?

    嵌入式軟件工程師和硬件工程師的區(qū)別? 嵌入式軟件工程師 嵌入式軟件工程師軟件開發(fā)領域中的種專
    發(fā)表于 05-16 11:00

    大廠電子工程師常見面試題#電子工程師 #硬件工程師 #電路知識 #面試題

    電子工程師電路
    安泰小課堂
    發(fā)布于 :2024年04月30日 17:33:15

    個電源工程師成長路徑

    即將走馬上任電源工程師這個崗位,請問各位大佬,這個崗位的職業(yè)路徑般是怎樣的?
    發(fā)表于 04-08 14:19

    為何國外工程師偏愛使用for(;;)來實現(xiàn)MCU死循環(huán)?

    一位工程師發(fā)現(xiàn),國外工程師在給demo在做死循環(huán)時用的是for(;;),而不是常用的while(1)。這僅僅是個人習慣的問題,還是有更深層次的含義?
    發(fā)表于 04-01 11:26 ?686次閱讀
    為何國外<b class='flag-5'>工程師</b>偏愛使用for(;;)來實現(xiàn)MCU死循環(huán)?

    一位硬件工程師的歷練之路:從入門學習理論到... #搞笑 #硬件工程師 #電子工程師 #揚興科技

    硬件工程師揚興科技
    揚興科技
    發(fā)布于 :2024年03月13日 17:50:21

    Cognition發(fā)布首款AI軟件工程師Devin

    據(jù)報道,Cognition公司今日公布了其首款人工智能軟件工程師——Devin,掀起了打造軟件模式變革的序幕。該產(chǎn)品在SWE-bench代碼測驗中展現(xiàn)出卓越表現(xiàn),甚至超過了部分頂級人類工程師的水準。
    的頭像 發(fā)表于 03-13 10:57 ?641次閱讀

    如何搞崩個硬件工程師心態(tài)?試試對ta說這幾句

    硬件工程師
    揚興科技
    發(fā)布于 :2024年02月20日 18:05:49