恭喜你,遇到瓶頸了!

最近和兄弟們閒聊,聊到一個瓶頸的問題。開發 3 年多了,作過的項目和產品也有好幾個了,感受移動端的知識基本也都瞭解了,最近好像遇到了瓶頸,感受不知道如何提高了。體如今跟別人技術交流的過程當中,大方向業務層面的東西基本沒有什麼問題,但是一旦就某一點深聊的時候,發現本身知識點好像仍是停留在表面,不能深刻其中。

既然聊到,索性整理了這篇文章。由於本身也是從一個普通的開發人員過來的,站在個人角度,聊一聊職業或者工做生涯中的一些困惑。由於我的技術棧的緣由,這裏只舉 Android 端的狀況。那些大牛程序員不按套路出牌,不在討論範圍。程序員

其實須要恭喜你,當你意識到遇到了技術或者發展的瓶頸,感到比較困惑時,代表你來到了工做或者職業的一個分界點,一旦突破瓶頸,你又會達到另一個境界。這個很像長跑,長跑的人在跑步的過程當中都會出現幾個極點。到極點的時候你會以爲腿特別沉,雖然有力氣,可是就是感受擡不動腿。通常的人可能到了極點以後就放棄了,可是有經驗的人到了極點後,他會慢慢的調整,突破這個極點。突破以後,跑步就變成了一個機械的過程,甚至不須要去關心是否有在用力,整個腿步肌肉會自動帶着你往前跑。也就是說,這時候達到了另一個境界。算法

不管是工做仍是人生,咱們的成長過程就像是在不斷攀登一座巨大的山峯。若是山腳表明你出生的那一刻,那麼山頂表明你死亡的那一刻。而你遇到瓶頸的時候,猶如你爬到了山峯的某一層,你發現彷佛沒有能夠攀爬的地方,沒法再往上。每一層都會有不少人,你要作的就是利用你以前的經驗、知識、認知,去發現你的落腳點,爬上去。這時候你就又達到了一個全新的高度。數據庫

因此,遇到瓶頸不用太慌,你甚至應該爲即將碰見全新的本身而竊喜。canvas

遇到瓶頸後的困惑是天然的,大部分是由於不瞭解產生瓶頸的緣由,當你瞭解了以後,一切也就那麼回事。設計模式

程序員,通常會經歷幾個瓶頸(時間段):安全

1. 工做經驗的瓶頸(1~2 年)

這個階段剛剛學校畢業,帶着書本里的知識,投入到了工做當中,除了一些研究性的工做,大部分的工做會跟着產品的業務線走。這時候你會發現不少東西和學校裏學習的有很大差異。這時候的瓶頸,是實際工做經驗的缺少。可是突破的方法也很簡單,學就是了。難度也不大,由於這時候的你,應該是學習速度最快的時候。對於不少的業務內容,和書本的知識不太同樣,會有很強的新鮮感。書本更多傳授的是理論知識,而公司的項目和產品要解決的大部分是工程問題。這是一個能夠充分把理論的東西結合實踐的階段,你終於發現了學校裏學習的那些東西的真正用處。性能優化

2. 項目管理的瓶頸(2~3 年)

通過了第一個時間段,若是產品自己比較好,基本上移動端 Android/iOS 的邊邊角角都會涉及到。UI、網絡、數據庫、安全、適配、性能優化、第三方庫的使用等等。這時候的挑戰會慢慢從技術上變成項目管理上。由於這個時候你對業務比較瞭解,不少的技術也基本掌握了,會天然的承擔部分項目管理的角色。這會是另一個挑戰,從跟機器打交道變成了和人打交道。這時候考慮的不必定是要把某一塊技術作的多好,而是須要綜合各個業務,達到項目總體上的最優。微信

好比項目的前期,時間是第一位的。首要的任務是如何在最短的時間內產出最小可行性產品(Minimun Variable Product:MVP)。質量和代碼的架構重要性就會相對變低。最主要的是考慮如何最快的把產品推出去。可是,等 MVP 驗證經過後,就須要不斷迭代,一方面優化功能,一方面須要償還以前快速開發欠下的技術債。網絡

3. 技術深度的瓶頸(3~5 年)

作了不少的產品,項目管理也作過了。這時候會面臨幾個抉擇,繼續作技術仍是轉管理,仍是拓展其餘的職業。對於那部分技術上想要繼續深刻的同窗就會有這種困惑。由於作了不少的項目,或者在摸個產品或者項目中作了不少的功能,大部分的知識點都覆蓋到了。可是因爲平時主要仍是圍繞業務展開,因此潛意識裏是解決了what的問題。好比數據庫會選用 GreenDao,也會使用 SQLite,網絡會使用 OKHttp + Retrofit,圖片會使用 Glide 或者 Frasco 等等,這個階段不少的時候咱們會由於業務二陷入怎麼用的階段。這也是爲何你們以爲好像各個方面都懂一些,可是深度不夠的緣由。怎麼突破,須要去了解它是如何實現的,有哪些小的功能模塊組成。架構

瞭解的時候不要貪多,有一句話形容一些讀書人:買書如山倒,讀書如抽絲。一樣也能夠形容開發對技術的態度。不能想着這也要了解,那也要明白。一我的的精力有限,就像作產品,須要找一兩項核心的功能去深刻打磨,而不是全部的功能都作一遍。

怎麼去找那個點。根據本身的愛好。一句話,你對哪方面感興趣,或者目前你擅長哪塊,就深刻下去。

舉個例子,有的人喜歡 UI,那麼佈局,動畫,事件這些基本的東西確定是瞭解的。這樣的話就是屬於第一個階段了。第二個階段,你須要關注一些自定的 UI ,須要瞭解 View 的繪製過程,熟悉canvas,熟悉paint,對於一些比較有意思的 UI ,可以仿寫。開始關注性能方面的東西。如何可以減小繪製次數,如何減小內存使用等等。第三階段,就要從源碼入手,去了解背後實現的原理,好比 TextView 究竟是如何實現繪製在屏幕上的,都作了那些優化。通過這三個階段,基本上 UI 相關的東西就沒有什麼可以難倒你了。

在第三個階段,雖然看似只在某一個點深刻了解,可是須要補充不少相關的邊緣知識進來。好比說設計模式,GPU 的工做方式,算法等等,這個過程也就完成了從點到面的擴展。相信突破這個瓶頸,跟別人聊起技術,不再會以爲本身仍是那個什麼都懂一點,又好像什麼都不夠深刻的工程師了。

4. 職業轉型的瓶頸(5 年以上)

這個階段,就須要考慮的更加長遠。是繼續往技術方面深刻,仍是考慮其餘方面。技術方面,好比全棧、技術經理、架構師、技術總監、CTO等,管理方面,好比項目經理、團隊Leader 等,其餘如產品經理、產品總監等等。

遇到瓶頸,說明你知道了本身不知道。不少的時候,咱們的悲哀不在於不知道,而在於不知道本身不知道。

雅典人說,蘇格拉底是雅典最聰明的人,他什麼都知道。

蘇格拉底說,「我惟一知道的就是我不知道,而大家也不知道,可是大家不知道本身不知道。」

當遇到瓶頸,知道本身不知道的時候,也是提高本身,讓本身知道的好機會。跨過去,美好的風景在等着你。

完!

想獲得及時信息,歡迎關注「ibrothergang」微信公衆號。

相關文章
相關標籤/搜索