Android,你從入門到放棄了嗎?程式設計師:你不知道我經歷了什麼!

yilian發表於2020-04-09
Android,你從入門到放棄了嗎?程式設計師:你不知道我經歷了什麼!

從安卓入門的那一天,我們就見過一本書《Android,從入門到放棄》,隨著這麼多年的開發,有放棄、有堅持的,我相信堅持的人佔了多數。

這個多數人,已經是專業的大牛了,而有人還停留在菜鳥階段,為了讓大家都成為別人眼中的大牛,我給大家找找原因。

最大的原因就是沒有效率!

看似每天忙成狗,回頭卻發現,月復一月,日復一日,薪資沒漲一點,年齡越來越大了。不知道時間都到哪裡去了,明明是每天兢兢業業的工作,可是怎麼就得不到提升呢?

就是我們的學習效率太低,沒有合理 的規劃而已~

Android,你從入門到放棄了嗎?程式設計師:你不知道我經歷了什麼!

總結了一下為什麼效率這麼低,完全規劃不起來呢?我們在上學以來一直都羨慕那種玩的多但是考的又好的人,他學習的時候你也在學習,他玩的時候你也在學習,但實際上每次考試他都能領先你一大截,有的時候我們看似都在安安靜靜的學習,但是效率卻是個很大的差別,你學習兩個小時的效果都不一定有別人半個鐘頭的學習效果好,這就是效率問題,那麼為什麼學習效率會有如此的差別呢?

在我看來,最重要的原因就是:方法

在這個知識膨脹的時代,每天面對鋪面而來的海量資訊,我們的學習也不再是按照以往傳統的學習模式了,更重要的是我們要進行科學學習,什麼是學習?學會學習才是根本,如何學會學習,那就要講求方法了,我們經常看到一些學霸等傳奇人物,聽他們的經歷,學他們的方法,路有千千萬,但是你想過沒有,也許適合你走的只有一條而已,所以,別人的不一定適合你,適合自己的才是最好的,但是學習效果不佳的原因卻大致有以下幾個:

沒有正向反饋(學習到什麼程度自己心裡沒數) 學習方法不對(用錯誤的方式去學習) 知識不成體系(學的知識很雜,東一塊西一塊) 有效時間不多(感覺沒有多餘的時間用在學習上)

關於“沒有正向反饋”

這應該很好理解,這裡的沒有正向反饋指的就是我們在學習的過程中並不能看到感受到因學習而真正給我們帶來有什麼不一樣的東西,哪怕是一種感覺,又或者是物質上的東西,總之,這是能夠讓我從內心覺得“學習真好”,可是我們往往卻很少遇到。我們總是希望付出了就能立馬看到收穫的,一旦達不到自己的期望,我們也就失去了激情,甚至開始抱怨,自然學習效率就會下降,所以學習中,我們一定要對正向反饋加以重視,這裡說幾點關於我學習中用到的正向反饋吧!

  • 我學習程式設計有寫部落格的習慣,當我剛寫完一篇部落格的時候會有點小小成就感,隨後我會發給我認識的一些前輩,很多都給予了肯定,哪怕是鼓勵我我也高興!

  • 有的時候我也會給一些大牛投稿,一旦被採用,那種心情是相當的說不出口的(太高興了)

  • 在專業上我會幫別人解答一些問題或者分享一些知識等

以上都是我的一些正向反饋,這些都能激勵我更有動力的去學習,學習,你也有該有自己的正向反饋!

關於“學習方法不對”

這幾天特別中意一句話“當你找到了適合自己的努力方式,你就如同萬千牛人一樣走在了光彩奪目掌聲陣陣的人生征途上”,這句話就強調了方法是多麼的重要,有的時候我們很專案那些學霸,覺得是自己智商不夠,其實不然,最重要的是那些所謂的學霸都有自己的一套學習方法。我們可以捫心自問,我們大多數人每天都在學習,但是又有多少人真正思考過自己學習方法的問題呢?我只是機械式的去學習而已,並沒有想著找尋一套屬於自己的方法體系,這就是我們與學霸的差別吧!

前幾天在讀美國作家本尼迪克特•凱里的《如何學習》一書,讀完很受啟發,其中書中提到了一種學習方法叫做“分散式學習”,講述的是利用間隔效應去學習,通俗來說就是我們把大塊的學習任務拆分開來去學,書中提到,你花兩個小時一口氣把一個知識點給學了沒有分兩天每天一小時的學習效果好,這就是方法

關於學習方法的探討很多很多,只是我們貌似從來沒有在意過,另外,切記只有適合自己的才是最好的,成功的人有很多,但是他們的路你不一定走得了,去尋找屬於自己的學習方法論吧!

關於“知識不成體系”

不知道大家在學習的過程中有沒有做筆記的習慣,我一直覺得做筆記是非常重要的,記得在高中的時候,我會給每一科都準備一個筆記本,上面寫滿了筆記,但是後來愈發的覺得筆記很亂,經常是一個知識點在很多頁記著,這就導致了很多問題。我們在回過頭來說“知識不成體系”,確實如此,我們每天都在學習,每天都接收了大量的資訊,而且這些資訊又是零散的,不成體系的,如果我們再不加以記錄,很容易遺忘,而且會感覺亂糟糟的,一點也不清晰明瞭,該怎麼辦?很簡單,將我們學到的知識都記錄下來,而且是分門別類的記錄下來,將知識體系化,做一個屬於自己的體系化知識庫,這樣我們不僅會對我們學習的知識有個全面的瞭解,而且非常方便我們的複習鞏固等!還可以讓我們看到哪地方是自己的弱勢,方便彌補!這裡以我自己舉個例子,方便大家理解!

我在學習Android的時候會將自己學到知識都分類別的進行整理,將自己學到的知識體系化,例如我會分成如下類別:

  • 效能最佳化

  • 多執行緒

  • 原始碼分析

  • 資料結構和演算法

  • 設計模式

  • 框架設計

  • NDK

  • APP開發

  • 微信小程式

  • Flutter和kotlin

再比如我在學習中製作的一個學習思路腦圖,由於內容過多,這裡就放上一個大概的思路腦圖分享給大家 高畫質圖可以看文末

Android,你從入門到放棄了嗎?程式設計師:你不知道我經歷了什麼!

有了以上的分類記錄,我就對Android的一個大概的知識體系有個瞭解,以後相關學習都會放在對應的目錄下,平常看看,也知道自己哪方面不熟悉,隨時複習鞏固,做到對學到的知識心中有數,體系化知識構建不可缺少!

關於“有效時間不多”

我們看似每天從早到晚都在學習,但是不知道你與沒有仔細的算過,一天裡,你真正投在學習上的有效時間少的可憐,科學調查發現,你一天若能有效學習8個小時,你將超越百分之98的人,可是又有多少人做到,在每天的學習過程中,影響我們的太多了,有句話說的很好,當你無意間開啟了一個手機網頁,這正是你一天墮落的開始,很多細微的事情把我們的有效時間侵蝕的所剩無幾。

如何提高自己的有效學習時間,從身邊最簡單的開始,學習的時候把手機放一邊,電腦也不要登qq,靜下心來,保持專注,看你一天能有多少有效的學習時間,試試吧!

關於我的Android學習之路

不知不覺自己已經做了幾年開發了,由記得剛出來工作的時候感覺自己能牛逼,現在回想起來感覺好無知。懂的越多的時候你才會發現懂的越少。

如果你的知識是一個圓,當你的圓越大時,圓外面的世界也就越大。

在我學習的過程中,最開始是在網上找了很多資料,畢竟這些資料是我們開始最快速的學習方法,這裡我放上我這些年在網上收集到的資料,然後再以我的工作經驗給大家總結一下,讓你們少走些彎路,提取一些目前網際網路公司最主流的Android開發架構技術,希望能幫助到大家!

效能最佳化

  • 1.圖片的三級快取中,圖片載入到記憶體中,如果內潤快爆了,會發生什麼?如何處理

  • 2.記憶體中如果載入一張500*500的png的高畫質圖片,應該是佔用多少的記憶體?

  • 3.WebView的效能最佳化

  • 4.Bitmap如何處理大圖,如果一張30M的大圖,如何預防OOM

  • 5.記憶體機制與GC演算法

  • 6.記憶體洩漏和記憶體溢位的區別?AS有什麼工具可以檢測記憶體洩漏

  • 7.怎麼保證應用啟動不卡頓,黑白屏怎麼處理

  • 8.強引用置為null,會不會被回收?

  • 9.ListView跟RecycleView的區別

多執行緒

  • 1.執行緒狀態和建立

  • 2.執行緒中斷

  • 3.Thread為什麼不能用stop方法停止執行緒

  • 4.執行緒池的種類

  • 5.執行緒同步機制與原理

  • 6.為什麼HashMap執行緒不安全

  • 7.程式執行緒的區別

  • 8.Android單執行緒模型

原始碼解析

  • Java深入原始碼級

  • 1.那些情況下的物件會被垃圾回收機制處理掉

  • 2.常見編碼方式

  • 3.utf-8編碼中的中文佔幾個位元組;int型幾個位元組

  • 4.靜態代理和動態代理的區別,什麼場景使用

  • 5.對解析與分派的人數

  • 6.Java中實現多型的機制是什麼

  • 7.如何將一個Java物件序列化到檔案裡

  • 8.java反射和註解

  • 9.泛型原理

  • 10.java中string的種種

Android原始碼相關

  • Android屬性動畫實現原理

  • 補間動畫實現原理

  • Android各個版本API的區別

  • Requestlayout,onlayout,onDraw,DrawChild區別和聯絡

  • invalidate和postInvalidate的區別及使用

  • Activity-window-view三者的差別

  • 對Volley的理解

  • 如何最佳化自定義View

  • 低版本SDK如何實現高版本api

  • 一次網路請求的流程

  • HttpUrlConnection和okhttp關係

網路程式設計

資料結構

  • 常用資料結構

  • 併發合集

  • java的集合以及集合之間的區別

  • list,set,map的區別

  • HashMap的實現原理

  • ConcurrentHashMap的實現原理

  • Arraymap和HashMap對比

  • HashTable實現原理

  • Hashmap和HashTable的區別

  • HashMap與HashSet的區別

  • HashSet與Hashmap怎麼判斷集合元素重複

  • 集合Set實現Hash

  • Arraylist和LinkedList區別以及應用場景

設計模式

  • 設計模式六大原則

  • 設計模式的分類

框架設計

  • 熱修復設計

  • 外掛化框架解讀

  • 元件化框架設計

  • 圖片載入框架

  • 網路訪問框架設計

  • RXJava響應式程式設計框架設計

  • IOC架構設計

  • Android架構元件Jetpack

NDK開發

  • NDK基礎知識

  • 底層圖片處理

  • 音影片開發

進軍BATJ大廠等(備戰)!現在都說網際網路寒冬,其實無非就是你上錯了車,且穿的少(技能),要是你上對車,自身技術能力夠強,公司換掉的代價大,怎麼可能會被裁掉,都是淘汰末端的業務Curd而已!

現如今市場上初級程式設計師氾濫,這套教程針對Android開發工程師1-6年的人員、正處於瓶頸期,想要年後突破自己漲薪的,進階Android中高階、架構師對你更是如魚得水,趕快領取吧!

上述【高畫質技術腦圖】以及【配套的架構技術PDF】 更多資訊可以點選 Android學習大全 , 非常希望和大家一起交流 , 共同進步!

更多精彩內容可以關注我,檢視個人簡介哦~


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69952849/viewspace-2685158/,如需轉載,請註明出處,否則將追究法律責任。

相關文章