Android程序員如何提升自己的技術,快速達到騰訊T3,50W+的標準?

這樣的一個問題,其實說實在的,是我目前比較關注的一個問題,因爲經常有粉絲反應說自己有感覺到,貌似時間過去了很久,但是自己的技術能力卻沒有提高多少,不知道你們是否有這樣的感受。

說到底,自己對技術還是有追求的,不想只做一個普普通通的底層碼農,所以對如何提升自己的技術能力思考的還是比較多的,有些想法自己一直在實踐,比如等會要說的寫博客,當然,有些自己還在嘗試,同樣,有些自己做的並不好。

今天,準備把這些都分享給大家,本着一個互相交流,互相學習的目的,也期待你的分享!

那麼作爲程序員的我們該怎樣做才能提升自己的技術能力呢?

一、刻意練習

有朋友應該知道這個名詞,它是一本書,我們拋開這本書,單單聊聊“刻意練習”四個字,什麼是刻意練習呢?

大概就是有意識的去學習,這裏強調的是主動學習,不過我覺得更重要的是另外一層意思,那就是對某一塊的知識做集中長時間的反覆練習。

我一直覺得方法論的東西都是讓人看了直呼“有用,牛批”,但是過後卻並不知道該怎麼做,這也許就是方法論其實是比較抽象的結果吧,和你說一個方法論的東西,比如這裏的刻意練習,我告訴你學習技術,要想提高水平,你要進行刻意練習,可能你並不知道該怎麼做,倒不如直接跟你說,你要保證每天刷一道LeetCode,這樣你最起碼知道自己該做什麼,該怎麼做。

那你說方法論有用嗎?我覺得有用,只不過對於方法論的東西,你需要結合自己的思考然後給出一個具象的行爲,就是可以指導你實際行動的一套理論,那你說,我總結不出來怎麼辦,對於方法論的東西,也就是看看而已,我提取不出什麼有用的可以執行的東西。

那怎麼辦?有個方法,那就是看別人的解讀,參照別人的,自己去執行一下試試看,適不適合自己,可不可以保持下去,以及在做的過程中,結合效果,或許你就有了新的思考,你就會去改進了,這其實就是一種成長。

那對於刻意練習,我們該怎麼做呢?我這裏談下我的做法,僅供參考。

其實要說這個,就要結合着下一點一起談談。

二、系統化學習

什麼是系統化學習呢?在我自己的自學當中,我一直認爲系統化的學習纔是最有效的學習方式,當然,系統化學習其實是個很深的東西,不同的人理解的含義與層次都是不同的,當然,我這裏會聊下我的看法以及做法。

結合上述第一點的刻意練習,與這裏的系統化學習,我其實覺得他們是相輔相成的,刻意練習要求我們有意識的去主動學習,對某一塊的知識做針對性的重複練習,而系統化學習呢?要求你學習的知識內容是有體系的,不是散亂的各個知識點,而是互相呼應的前後知識點,而且這個系統化的學習,對於你學習的內容也應該是反覆迭代,不斷打磨的。

其實無論是刻意練習還是系統化學習,都有一個要求,那就是你必須得花上足夠多的時間,不然成不了事。

說了那麼多,我是怎麼做的呢?

寫教程,對,我目前對刻意練習和系統化學習的具體做法就是寫教程,這個教程不僅是寫給自己,也是寫給別人,那我爲什麼由刻意練習和系統化學習會讓我採用寫教程的方式來提升自己的技術能力呢?

首先,一份教程的最基本要求,知識要求體系化,不是零散的知識點,而是有關聯有聯繫的知識點,當然,一份教程包含的知識點一定是足夠全面的,內容相對比較豐富,同樣在寫的過程中,你會發現很多問題,這就需要你反覆的打磨和不斷的迭代了,因此,足夠的時間必不可少,所以,這樣的學習模式在我看來就是系統化的一個學習。

至於刻意練習呢?刻意練習講究的是什麼?要有意識的去對某一塊的知識做重複性的練習,那寫教程符合嗎?一份教程,包含的是一個大塊的知識體系,要想完成這樣的一個體系化的內容,需要反覆打磨,不斷迭代,這其實就是在重複,追求更好,這和刻意練習的理念不就不謀而合了嘛!

我們常常覺得知識多而雜,覺得學不完,記不住,腦袋一片混亂,這其中有一點原因就是,你學的太多了,很多知識在你腦海裏是隨意安放,沒有什麼連貫性,有些害羞的知識躲在小角落裏,時間長了,你都忘記它的存在了,那怎麼辦?

你需要對你所學的知識做整理,不能讓他們在你的腦海裏那麼隨意沒有秩序,你需要去規定它們 ,什麼樣的知識該待在什麼樣的地方,那怎麼做?沒覺得寫教程是一個很好的管理模式嗎?把相同特性,有極強關聯屬性的知識都聚合在一塊,一份教程必然追求詳細完整的,那麼那些躲在角落的某些知識,也會被相應的屬於他的教程給召集過來。

我常常覺得,學習其實是最簡單的,難的其實是對知識的運用,也就是說,你學那麼多知識其實不重要,重要的是當你需要的時候,你可以調用它,否則,學再多,用不起來有何用?

至於很多人調用不起來,一是知識混亂,調用繁瑣,導致錯誤,致使腦袋一片空白,二是很多知識被你放在陰暗的小角落,你早就忘記它的存在了,而寫教程可以把一整塊的知識整理起來,因爲是一大塊的內容,包含體系化的知識,所以不容易遺忘的,因爲它足夠“大”,內容足夠豐富,所以一些可能被放在角落的知識現在有歸屬了,你也就不容易遺忘了,當你需要調用他們的時候,你就會很容易的找到他們了。

給大家看下我寫的《Android開發核心知識點筆記》:

PS:點擊這裏即可獲取我整理好的PDF。

現在的最新版,包括了十大知識點板塊:

  1. Java知識點彙總
  2. Android知識點彙總
  3. Android擴展知識點
  4. 性能優化知識點彙總
  5. Android開源庫源碼分析
  6. Kotlin知識點彙總
  7. 設計模式彙總
  8. Gradle知識點彙總
  9. 計算機網絡基礎
  10. 常見面試算法題彙總

相信你可以從中獲益

並且!目前仍在利用下班時間補充修正,如果你看到有哪裏不對的話,還麻煩私聊告知我一下,我馬上會去修改~

這樣的一份筆記寫一寫,真的就感覺對知識的掌握清楚了很多,覺得對知識的掌控感也就更強了一點。

當然,以上的做法是基於我對刻意練習與系統化學習的思考總結得出的執行方案,對你,是一種參考,而我把這種方法叫做“教程式學習”。

三、寫博客

以上說了提升程序員技術能力的兩種方式,一是刻意練習,二是系統化學習,然後結合這兩點我給出了自己的具體做法,接下來我要說的就是寫博客。

作爲一個程序員,你一定要相信,寫博客對你絕對是有好處的。

上述我說了我的教程式學習方法,但是你得知道,這樣的方式其實是很耗時間的,因爲一份教程哪是三五天就可以搞定的,時間最低得一個月吧,沒有足夠的火候,效果必然是不好的,那麼你有沒有想過,在這一個月的時間,難道我們就不會輸入其他的知識了嗎?

我們在學習工作中,每當我們遇到問題以及不會的知識點,是要及時做總結記錄的,因爲很多時候,同樣的錯誤我們堅決不能讓自己犯第二遍,因爲成本真的太高。

所以平常多總結很重要,那對於程序員的我們,寫博客就是最好的方式,遇到問題,要總結記錄,不會的知識點,要花時間學習一下,然後總結記錄,下一次碰到的時候,因爲自己之前總結過,所以沒啥大問題,即使忘了,翻看一下自己的博客,也可以立馬明白回憶起來。

我們在學習的時候,想必大家也都有這樣的感覺,就是很多知識看似會了,真的讓自己實際動手操作起來,很大機率,垮掉。

編程的學習就是這樣,很多知識,不能想當然的覺得自己會了,你自己總結一遍,寫出來,效果槓槓的,關於寫博客這塊,這裏就不聊那麼多了。

總的來說,程序員要想提高自己的技術,其實離不開博客的,我們每天接觸的知識點其實很多,要學的也很多,教程式學習做不到面面俱到,其實你發現沒,我上述說的教程式學習更多的其實就是一種系統化學習,那很多零散的知識點怎麼整,最好的辦法就是寫博客,而這個,我稱作“博客式學習”。

哈哈,我是真的喜歡命名啊!雖然有點low,反正有內味兒了!

四、不斷的學習

這點真的是應了那句話了,好好學習,天天向上,這裏要說的一點,其實很簡單,也不想高談闊論的談太多,說白了,也很簡單,那就是作爲一個程序員,一定要多多學習,學習足夠多的知識。

你可以多看書,多看博客,多看視頻,抓住一切有可能學習的地方。

我之前讀李笑來的文章,記住了這樣的一句話,大致就是“當你的腦海中沒有足夠多的概念,你如何能做到舉一反三”。

什麼意思呢?我們常常覺得有些東西學了忘,記不住,很多知識不會,大概率就是你學的知識太少了。

記住多學習,多看,忘了就再看看,記憶其實是個不斷重現直至成爲長期記憶的一個過程,學的足夠多了,看的足夠多了,很多知識自然而然就記住了,就會了。

所以啊,程序員們,多學習吧!

最後一點,時常回顧和項目實戰真的很重要!

以上巴拉巴拉說了一大堆,學過留存的很多知識,如果你不時常回顧一下,其實效果是要大打折扣的,而且對於教程式學習,也必須要求你不斷回顧,因爲它是需要不斷打磨和反覆迭代的。

因此,溫故而知新,可以爲師矣!

再一個就是項目實戰,這個我曾多次寫文章說明它的重要性,相信我,這是提高技術能力最直接也是最有效的一個方式。沒有任何一個架構師是看書看出來的,架構師都是實戰出來的!

其實無論是回顧還是對於項目實戰,重在一個查漏補缺,發現自己的知識盲點和難點所在,然後加上上述的方法進行集中突破,當然,項目實戰有一個熟能生巧在裏面!

好了,今天的分享就到這裏了,最後還有一些Android方面的面試專題PDF

如果你有需要的話,可以 點這領取

總之,作爲程序員的我們,要多學習,未來可期啊,一起加油吧!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章