引子
最近一直在思考,作為一名軟件開發(fā)工程師九火,到底應(yīng)該如何實現(xiàn)自我成長赚窃,是否有捷徑而言?其實斷斷續(xù)續(xù)有過很多思考岔激,也有和各種年齡段的同學(xué)們做過不少交流勒极,結(jié)合自身的經(jīng)歷,有一些感悟和思考虑鼎。本文可能可以適用到其他端辱匿,不過由于自己是一名 Android 開發(fā)工程師键痛,所以就姑且從一名普通的 Android 開發(fā)工程師的角度來進行表述吧。
整篇文章可能讀下來會比較啰嗦和白話匾七,但句句真言絮短,字字真心,歡迎大家一起交流昨忆。整文也只代表個人觀點丁频,同學(xué)們都可以發(fā)表自己的觀點即可。
由于感悟文字很多邑贴,所以今天來第一篇文章就是:工程師所必經(jīng)的三個階段席里。
工程師必經(jīng)的幾個階段
我認為每一名軟件開發(fā)工程師都需要必經(jīng)三個階段:
- 不知道自己不知道啥
- 知道自己不知道啥
- 不知道自己知道啥
看起來很繞,但實際真實如此拢驾。
不知道自己不知道啥
對于大多數(shù)剛剛接觸到 Android 開發(fā)的學(xué)生來說奖磁,軟件開發(fā)是一片浩瀚的海洋繁疤,這是一片全新的領(lǐng)域,有著自己的生態(tài)圈嵌洼。所以初入開發(fā)行業(yè)的學(xué)生們封恰,完全不知道自己還有哪些是需要學(xué)習(xí)的麻养,所以這些同學(xué)通常會陷入一個非常迷茫的階段诺舔,尤其是在校學(xué)生。
自己當(dāng)初也是如此低飒,天真的以為計算機專業(yè)就是開發(fā)游戲,倒騰電腦的專業(yè)褥赊,所以自己就成了計算機學(xué)院的一員。上大學(xué)后拌喉,才發(fā)現(xiàn)和自己想象的完全不一樣,依然要學(xué)習(xí)好多的數(shù)學(xué)專業(yè)課和語言專業(yè)課尿背,只是這個語言不再局限于英語了,而是一些從未聽過的 C/C++田藐、C#吱七、Java、Python踊餐。
在學(xué)校的時候完全不知道自己應(yīng)該學(xué)習(xí)什么,只能按照教學(xué)的安排一節(jié)課一節(jié)課的學(xué)習(xí)和實踐市袖,學(xué)校老師布置的任務(wù)也一如既往的簡單,然而大家一片茫然苍碟,依然有很多的同學(xué)完全學(xué)不明白。努力得不到結(jié)果的感受微峰,讓一些同學(xué)越來越厭倦去上課,越來越厭倦考試蜓肆。尤其是遇到編程操作性科目,更是大腦一片空白仗扬。
大學(xué)階段學(xué)生們的普遍情況是,不知道社會需要怎樣的人才早芭,需要怎樣的情況才能做一名合格的軟件開發(fā)工程師,在懵懵懂懂中就畢業(yè)了退个。
一部分在校學(xué)習(xí)刻苦,比較有遠見的同學(xué)在即將畢業(yè)的一年抓住了公司的實習(xí)機會语盈,這時候他們先人一步接觸到了商業(yè)項目。會發(fā)現(xiàn)公司的軟件開發(fā)又是另一番景象刀荒,也許在學(xué)校學(xué)習(xí)的 Java 和 Python,但在公司卻要承擔(dān)起一名 iOS 開發(fā)的角色照棋,于是在這里開始了他們的二輪學(xué)習(xí)。
因為身邊有一群有經(jīng)驗的導(dǎo)師烈炭,這時候?qū)W習(xí)起來比學(xué)校輕松了很多,但依然是大多數(shù)時候不知道應(yīng)該學(xué)習(xí)什么符隙,對于自己而言趴捅,哪些是需要現(xiàn)在學(xué)習(xí)的霹疫,哪些是未來應(yīng)該學(xué)習(xí)的。
如果這些同學(xué)足夠幸運丽蝎,遇到一個優(yōu)秀的 mentor,可能會輕松許多屠阻,應(yīng)該 mentor 會授人以漁,在給你安排工作的同時国觉,還會教給你做自己的職業(yè)規(guī)劃的方法論。
有了一個詳細的學(xué)習(xí)規(guī)劃麻诀,會輕松很多,自己的學(xué)習(xí)還有 mentor 的定期 review 和反饋蝇闭,這時候成長起來更快。這也是為什么我建議職業(yè)生涯初期的學(xué)生擠破頭皮也應(yīng)該進入大廠的原因呻引。
大廠通常都有足夠完善的新人成長機制,而且身邊的同學(xué)都是足夠自驅(qū)和優(yōu)秀的苞七,在這樣的環(huán)境中成長挪丢,真的是如同腳踏白云蹂风,一飛沖天乾蓬。
通常而言,職業(yè)生涯的前兩年也會一直有這樣的狀況任内,不清楚自己到底還有哪些知識需要學(xué)習(xí)撵渡,在完成了交代的開發(fā)任務(wù)后死嗦,就會陷入一個懷疑人生的階段,不知如何提升自己的能力越除。
這時候大多數(shù)同學(xué)就會靠踩坑提升自己的實力外盯,踩一個坑記一次,有的坑記憶不夠深刻踩 3 次怎么也夠了饱苟,但這些同學(xué)會發(fā)現(xiàn),職業(yè)生涯成長非常緩慢箱熬,如果不幸,可能 10 年的開發(fā)經(jīng)驗城须,不過是一年的經(jīng)驗重復(fù)使用了 10 年而已。
學(xué)習(xí)填充
在這個階段的同學(xué)如果看的自媒體文章比較多酿傍,可能會陷入一個恐慌的階段,因為制造焦慮的文章實在是太吸引眼球了赤炒,它們是心靈雞湯,不斷地博取你的共鳴莺褒,從而消耗你的信心。
這時候遵岩,對自己要求比較高的同學(xué)就開始不斷學(xué)習(xí),卻沒有任何規(guī)劃尘执。他們可能會選擇看很多博客,給自己收藏很多標(biāo)簽誊锭,看到優(yōu)秀的博主就趕忙關(guān)注,不關(guān)心博客的每一篇文章的質(zhì)量丧靡,而盲目地迷信權(quán)威,反正別人說的温治,就一定是對的,很少有自己的思考熬荆。所以只要文章涉及范圍越廣,就越容易得到別人的認可惶看,GitHub 上的 Star 也從來不會吝嗇捏顺。而我就是這樣一個博主纬黎,早些年靠文章的數(shù)量取到了數(shù)百萬的閱讀量,在 GitHub 上也有了 12k 的 Stars本今。
但我之前寫的大多數(shù)文章,都是毫無知識涵養(yǎng)的冠息,所以,我一度斷更了很久逛艰,雖然當(dāng)初我每一篇文章都有很認真的寫躏碳。
除了博客學(xué)習(xí)散怖,一些同學(xué)還會選擇一些在線教學(xué)視頻網(wǎng)站,比如 mooc 網(wǎng)镇眷,網(wǎng)易云課堂,騰訊課堂欠动,扣丁課堂等。這些網(wǎng)站上通常都有成套的語言教學(xué)具伍,老實說,這上面的部分課程質(zhì)量確實比學(xué)校教學(xué)的更加全面一些人芽,但知識內(nèi)容真的很多,一頓學(xué)習(xí)下來少了實踐確實性價比不高啼肩。
所以一部分同學(xué)把希望寄托給了書籍衙伶。
讀書是一個好習(xí)慣祈坠,書籍也是一個好東西矢劲。很多專業(yè)性的書籍,都寫的非常好芬沉,也非常全面阁猜,因為是文字性的描述,所以相對于視頻學(xué)習(xí)起來時間成本更低剃袍。但書籍的內(nèi)容質(zhì)量也是良莠不齊,除去其他同學(xué)的推薦民效,自己很難真正感悟到書籍的內(nèi)容對自己的幫助。這時候可能你就需要看一下《如何閱讀一本書》畏邢,提升自己的讀書效率。但又發(fā)現(xiàn)舒萎,讀書真的很難堅持。
大多數(shù)人把上面這種方式歸咎為沒有學(xué)習(xí)氛圍臂寝,無法驅(qū)使自己認真學(xué)習(xí),加上沒有健全的交流群交煞,沒人給自己解惑,有些書籍偏向于基礎(chǔ)知識的講解素征,根本學(xué)不到真正的實踐技術(shù)。
所以一部分同學(xué)把希望又寄托給了培訓(xùn)機構(gòu)和一些專注于提升能力的收費課程御毅。
大部分知識付費的項目還是非常不錯的,比如扔物線朱凱的 HenCoder Plus端蛆,比如極客時間上的 Android 開發(fā)高手課等。但比較遺憾的是今豆,它們可能都是為大多數(shù)人制定的,而缺乏私人定制呆躲,可能并不適合現(xiàn)在的你。
知道自己不知道啥
大多數(shù)人工作 3 年后插掂,會陷入這個階段:知道自己不知道啥,明白自己的薄弱之處辅甥。
這個時候其實很好辦酝润,因為自己知道問題出在哪里璃弄,當(dāng)然好對癥下藥,剛好我也就是處于這個階段谢揪。
這個時候不管是去選錄播直播加答疑形式的 HenCoder Plus,還是付費專欄式的極客時間拨扶,都是合適的凳鬓。
不過依然有其他方式患民。這個階段的同學(xué)最大的問題是時間不夠用,大多數(shù)這個階段的同學(xué)可能都已經(jīng)瀕臨成家養(yǎng)家的壓力匹颤,生活中的瑣事和壓力都多了起來,工作中可能也已經(jīng)成為主程印蓖,除了要完成一些技術(shù)難題的攻堅,可能還需要指導(dǎo)一下新人赦肃,所以一定會出現(xiàn)時間極度不夠使用的情況。
時間不夠是最難解決的問題他宛,可能也是最好解決的問題。時間確實就像海綿厅各,擠擠總是有的,即使有時候我們會出現(xiàn)擠不動的情況队塘,但那一定只是一個短期狀況。
這個階段的同學(xué)最需要讀書憔古,因為這些同學(xué)通常都已經(jīng)有了自己的知識體系,也明白自己的薄弱之處在哪里投放,這時候就需要做專項提升适贸,越到這個階段灸芳,就會越發(fā)現(xiàn)基礎(chǔ)知識的重要性。很多東西烙样,真的需要學(xué)懂本質(zhì),這也是為什么大多數(shù)面試官都喜歡考察基礎(chǔ)問題谒获,因為真的基礎(chǔ)才是根本,一個基礎(chǔ)優(yōu)秀的同學(xué)從來都不會太差批狱。
我也是最近半年通過部門開展的讀書活動才愛上了讀書,書讀百遍赔硫,其義自見是真理。很多書籍需要你反復(fù)軟磨硬泡幾次爪膊,每一次閱讀都是一次認知的提升,而認知的提升最終會帶給你財富的變現(xiàn)推盛。
我希望自己在這一個階段能產(chǎn)出更多有價值的文章,在這之前耘成,我當(dāng)然也需要做知識的基礎(chǔ)夯實,于是有了系列凿跳,掃盲。
接下來控嗜,我還會從設(shè)計模式等開始,給大家?guī)硪幌盗形恼碌漠a(chǎn)出疆栏。
是的,設(shè)計模式就由于武功秘籍的內(nèi)功壁顶,可能大多數(shù)時候我們都用不上或者足夠理解它們,但這些招式在某些時候真的就是會讓你的程序足夠精美和安全若专。
我們不需要去糾結(jié)每一個設(shè)計模式的使用場景,我們只需要始終記住,設(shè)計模式就源于生活自阱,我們不需要去背誦每一個定義,只需要弄清楚它們大概的意義即可沛豌。
不知道自己知道啥
工作很久后,不少工程師會陷入第三個階段:不知道自己知道啥加派。
這時候,因為大多數(shù)知識已經(jīng)成為了自己的血肉芍锦,很多設(shè)計理念和架構(gòu)都會讓自己覺得理所當(dāng)然,但真要較真起來飞盆,可能自己也弄不清楚到底是源自于哪里。
很多時候桨啃,這些同學(xué)會更加明白自己的不足之處在哪里。但時間卻更不夠用了照瘾,他們大多數(shù)都已經(jīng)成為了團隊的領(lǐng)袖,成為了隊伍的靈魂析命,開始負責(zé)起團隊的大小事務(wù),不能只關(guān)注到技術(shù)本身鹃愤,而要關(guān)注很多技術(shù)之外的東西,比如產(chǎn)品感软吐,項目推動能力,管理能力凹耙。大多數(shù)時候,Leader 決定了團隊的天花板肖抱,一個好的 Leader 能讓團隊的天花板更高。
但非常尷尬意述,這個階段的同學(xué)基本都有了自己的孩子吮蛹,需要拖家?guī)Э诎杵粒枰幚砣饲槭拦势ヤ蹋茈y再把技術(shù)做的足夠純粹槐壳,即使很明白自己的技術(shù)不足之處在哪里,卻很難抽出時間去處理务唐,因為這時候,可能軟素質(zhì)的提升才是當(dāng)務(wù)之急枫笛。
總結(jié)
總的來說刚照,一名工程師都會經(jīng)歷上面的三個階段刑巧,我們不能去扭轉(zhuǎn)什么无畔,我們唯一能做的啊楚,就是讓每個階段提前浑彰,這樣才可以讓自己的精力在技術(shù)上投入更多。