不少作 android 開發的同窗都想多快好省,現實是真的是這樣嗎,藉着前人的經驗,咱們的目標能夠更加清晰,能夠計劃劃分階段去學習,可是學習的路是不會變的,別人會遇到什麼咱們也會遇到什麼,別人躺過的坑咱們同樣得趟java
接着這裏,我想表達咱們對 android 學習之路的理解,也分享我收集到的前人經驗,讓前路再也不晦暗,讓腳下的路筆直一些,僅此而已~python
很高興有粉絲在總結本身的路時引用了部分個人思想,這裏不是說抄襲的事,我高興的是被承認~android
我想看我文章的至少都是有1年開發經驗以上的了,至少都是熟練的初級 coder 了吧,在這個階段甚至以後的幾個階段,android 的 coder 們心裏其實都是惶恐焦慮的,一是大環境沒有之前熱了,找工做的難度提高了,對 coder 們的要求也是節節攀升;二是 coder 們在學習過程當中發現了大量的知識點和麪,這些東西實在太多了,看了 A 會勾連出 BCDEF,這裏面又涉及到大量的 java 等其餘知識點,都是比較難搞,耗時的git
種種以上讓你們變得再也不自信了,加之環境趨緊,因此焦慮由此產生。你們也沒必要太過所以而焦慮,焦慮了也沒有啊,這些東西早晚都是咱們的菜,都得學,都得趟過去,固然越早趟過去越好程序員
這裏面就涉及到如何學習的問題了,會學習的 coder 效率會很高,學的會比較透,記得會比較牢,而且還會記錄相關的技術博客,因此學過了基本就不用再重複了github
咱們在學習哪些沒有吸取的知識點時,基本都是遵循如下原則:面試
學會記錄未知算法
平時注意記錄那些沒聽過,不瞭解的點,有連接的要記下連接,而後根據本身的理解分類,分出優先級,難易度,這樣你時刻都能對本身有個清晰的認識,咱們手頭不會的有多少,會了對少了,想看的時候能夠立刻找出相關資料數據庫
學會挑選本身能學會的編程
知識點是無限的,無論咱們水平有多高,能夠學的老是有的是,那麼咱們學什麼呢?那固然是學那些咱們以爲能本身看懂,能夠學會,在工做中用的近,用的上的東西啦,切記去學習本身徹底看不懂的知識點,學了也是白學。若是這個知識點你是一點都看不懂,那說明相關的基礎知識你徹底空白,要從頭從基礎知識看起,這比如技能樹,你還沒點出來呢!對於那些有一半看不懂的知識點,一樣也說明你缺少相關的基礎知識,想要學也得從基礎知識走起,可是相對難度就低不少了
學會成體系的去學習知識點
通常你們都知道,大一點的知識點都有不少小的,相互聯繫的知識點構成,咱們知道的,不知道的,總之確定有一些或不少,那麼咱們碰到一個陌生的知識點該怎麼去學習呢?我建議先去 google,百度,簡書,掘金各大平臺上搜索這個知識點的關鍵字,而後粗看下幾十篇或必定數量的文章,梳理下該知識點下面牽連有多少小的知識點,而後本身記下來,整理分類寫出概述性的文章,而後先從簡單的開始,按牽連順序一個個的學,這樣纔能有效的作到成體系的學習。要不東看一榔頭,西看一斧子,到頭來時間也是花的很多,你們多半仍是有不少漏下的,內心也是感受沒完全學通透的樣子,如今的開發知識都是成體系的,咱們去學習時也必須成體系纔能有效率
學會如何有效的保存學習心得
這是承接上面那條的,某個小的知識點咱們終於搞明白了,學透了以後呢,其實你們會很快遺忘的,我本身也是如此!很是通透的理解過不了幾天就會開始變得模糊不清。目前有效的方法只能是在經過敲 demo 在代碼級別搞通透以後,經過成體系的寫技術博文來實現。這樣的好處:一是落於紙面以後,忘了咱們能夠經過博文立刻回憶起來 ;二是咱們是成體系的去選擇學習的,中途咱們能夠隨時停下來,去作當前手頭更要命的事,完過後再回過頭來繼續這個知識點的學習,由於經過以前的摸底已經制定出了學習順序,繼續這個順序去學習未完的部分便可。你們在工做時,絕大部分空餘時間都是碎片化的,搞得咱們去學習新知識都是一段段的,上面成體系系統的學習方案尤爲適合咱們
我以前但是吃了不會學習,不記技術博文,不成體系瞎學習的大虧啦,早先學的啥我如今是一點都想不起來了,可見如何學習,會學習是個大學問啊,也是一個 coder 變得成熟的標誌,漫漫 coder 路上對咱們產生影響最大的就是如何去學習了,你們多思考下~
19年的冬真冷,你們都在說裁人,其實裁人一直都在,只是19年的確多點。android 10年了,已經積累了太多的技術,知識點,技巧,思路,這些前人都會了,而且正在創造新的思路出來,對於廣大的底層 coder 來講,僅僅是追趕就很難了,更別提去本身創造了,可是現實時咱們嚐嚐學習了不少開源框架,落到實處就是僅僅會用而已,不說源碼看沒看過,甚至原理都不知道,不知道做者用什麼技術實現的,這點就是廣大 coder 的現狀,沒有成長。
在來講大環境,在寒冷的冬天,仍是有不少公司再招聘。在移動設備深刻人心的今天,你們誰能離得開移動物聯網設備,巨大的設備保有量決定了移動端市場需求仍是旺盛的。企業須要什麼的移動 coder,中高端啊。從咱們把頁面 code 出來的入門水平開始,成長到中級水平,說實話仍是很是不容易的,事實是從平均來看,2-3年成長到中級的人也不是很是多的。企業再面試時也只能經過大量面試才能找到一個合心的高級開發,此過程耗時費力,說明你們水平相對需求來講仍是過低,有待繼續增強!
冬天冷的不是市場,是處於行業低端的咱們,移動開發行業,不進步就會死,永遠也不會改變,你們悶頭努力一年,咱們都能有個好收穫的,再去面試機會機會大不少。
安卓中高級開發面試之——將來的路,送給正在迷茫的你 的做者告訴咱們,沒超越 20K ,說明你的安卓作的還不夠好。
一方面,技術能力,知識面太窄了。建議多個模塊功能都嘗試一下。不能僅僅在本身公司的項目上,其餘方面都不太精通。這樣的結果,對本身發展不太好。(好比,對本身公司的功能作的賊好。賊瞭解。問一個其餘方面功能模塊,就不知道了。建議多方面都發展,而且多作數據分析。好比百度指數,阿里指數,APP功能指數,今日頭條指數。而後本身往這些方向發展一下。好比2018年-2020年,項目中小視頻,社區中小視頻,直播,都會在項目中添加。這方面經驗豐富的人需求很高)。
第二:有的同窗是真的有能力,會作;可是能繼續深刻的理解原理,或者知道原理了,本身怎麼去解決問題(而不是百度解決)的能力就差一點了。好比不少人在面試中都面臨的,不會說,可是你會寫,能寫出來。爲何不會說,由於不是清楚系統的理解,因此不能回答的很好。
現實是咱們夯實技術,擴展知識面以後,20K 是比較容易達到的,可是想過 30K 就很難了。那些能在 github 寫本身開源項目,好比 okhttp,retrofit ,rxjava 這樣重量級開源框架的 coder 才能過 50K 。着期中的差距,你們本身體會吧,努力能夠過 20k,長久不停的努力積累以後纔有過 30K 的但願,道路任重道遠,你們努力珍重。再着期中要平衡工做,生活,家庭,健康是個大問題,惟有高效率纔是根本出路~
很高興有一些朋友在滿大街的負面文章中能保持一顆平靜的心,分享一些有正能量的文章,讓我總算是在冬日裏能暖和下了
上帝老是偏心那些愛思考的人,愛思考的人運氣通常也不會太差,在 哪有什麼互聯網寒冬?只是你穿的少而已! 一文中,做者大概聊了聊關於思考的話題,我以爲你們應該去看看,而後思考下本身
技術是咱們的基本盤,但不是所有,最近阿里不是放話了嗎,之後其餘崗位的儘可能挑有技術背景的,我看到這種思想漸漸再國內得到認同,愈來愈多的公司都在更考慮有技術背景的人,這是咱們的機會,年齡大了,年紀到了,老是隻有不多的一部分人才能順利的晉升管理崗位,其餘的同窗必須面臨轉崗,轉崗不是換行業,產品,項目經理,運營等等其餘咱們 coder 均可以幹,這些崗位須要的技術,知識點相比 coder 來講簡直是小巫見大巫,在咱們平時對這些崗位有深刻了解,有深刻的交流經驗,有深入的認識後,咱們 coder 轉這些崗位其實不難,很快就能上手,可是這須要咱們提早考慮好本身轉崗的位置,平時要多去專一,交流, 學習,能再本公司內轉崗是最好的了,這樣公司會對你們比較寬容
coder 們要是打算換工做了,那就不要研究其餘的了,就專心 android 技術吧,python,H5 等穩定下來再說吧,咱們畢竟是作 android 開發的,找的也是 android 開發的工做,其餘方向雖然更好但不是公司考慮的重點。
先活着才能考慮更多,分享些正能量的文章給你們打打氣:
我想只有對 android 開發又通盤瞭解的人才能走的更遠,瞭解本身是首要的,我處於什麼水平,下一步重點的學習方向,目標是什麼,這樣纔能有的放矢,不浪費時間
一般咱們知道 android水平能夠劃分爲:入門,初級,中級,高級,資深。
可是這樣的劃分對咱們沒有什麼指導意義,不一樣層級的Android開發者的不一樣行爲,咱們該如何進階和規劃? 的做者把 android 劃分爲4個層級:
我以爲這樣劃分,不叫有實際意義,你們能夠去閱讀一下看看每一個階段的技術標誌是什麼,有不錯的指導意義,處於做者對於達到每個層級的時間我不敢苟同外,其餘我是比較贊同的
關於技術水準劃分的有不少,我先說這麼多啊,期待我之後的更新吧~
另外一個很 Nice 的 android 水平劃分,爲了避免被鎖定我就不復制了,你們去看源地址:
不知道你們聽到沒聽到,在 「 寒冬 」 今天,還有部分公司員工們經過各類方法爭搶被裁的名額,就是爲了拿到那幾個月的補償呀!面對這種不愁找工做的大佬,男單咱們不該該臉紅作點什麼嗎~
android 開發想進階,下面的點基本漫步過去,都得會,不光是提高咱們的 coder 水平,面試時也是要問的呀
上面這些單獨拿出那一項,都是考試良久的了,你們本身算算,給你多少時間能搞定上面這些,可是一旦你們搞定了上面這些,那麼你們至少不怎麼愁面試了吧,運氣好的還能借此進入一家不錯的有成長,回報優秀的公司,如今最舒服的地方不是打公司,而是那些業務優秀的中型公司了,人很少,事少,組織還沒開始僵化,人少待遇也能保證的不錯,業務優秀有成長沒有裁人的擔心,公司氛圍也有輕鬆愉快,這就是我想去的天堂啊 ~
而後在圖像這塊你們想深刻的話,下面的是跑不了:
正好,我有一份**Android學習PDF+架構視頻+面試文檔+源碼筆記分享,還有高級架構技術進階腦圖、Android開發面試專題資料,高級進階架構資料**
有須要的話能夠關注+點贊,關注微信公衆號【Android開發之家】領取
個人這篇文章比較雜,什麼都記錄一點,都是關於 android 進階的,咱們的目標是成爲一個 NB 的 coder,這裏我儘可能向你們描述清楚一個高玩該是什麼樣子的,有樣學樣,咱們也知道怎麼去進步不是
我借 : offer收割機必備 裏的幾句話
由於若是你僅僅是對各類各樣的技術都熟悉,有技術廣度,也有必定的技術深度,其實是不夠的。若是你的系統設計能力不到位,可能致使你在開發系統的時候會亂用技術
好比說,有的系統他有一些本身特殊的業務場景和技術挑戰,實際上在這個場景之下比較合適的是採用 「緩存 + 數據庫」 的技術方案來應對
可是呢,有的工程師會不少技術,可是缺乏這種準確的分析系統問題,提出合理的技術方案的能力,也就是缺乏系統設計能力,致使他可能會引入Elasticsearch這種技術來嘗試解決這個問題
那麼結果必然是失敗的。因此以前不少人找我問問題,說我在XX場景下,用了XX技術,可是沒有起到我想要的那個結果啊
我幫他一看,這不是必然的麼,你的XX技術應該用在YY場景下,結果你用到XX場景下,確定是不行的。
這就是系統設計能力的重要性
我想這都是你們貫徹始終的終極追求了吧,我記得最深的一句話:無論如何,你的代碼得先能讓人看。這是我在剛剛入行時,一個老司機指導個人,隨着我在學習的深刻,瞭解的更多,咱們在基本功上的追求不就是爲了代碼更加好看嗎,好看的代碼才更好懂,才能好改,設計模式,代碼架構,框架設計,MVP(多端分離) 不都是追求的這個最終結果嘛
好看的代碼除了咱們要學習不限於上述的各類知識,更是體如今咱們平時的對於代碼的態度上,這體如今咱們的平時的代碼規範上,今天我看到一篇文章:程序員:爲何幾個月後前我本身寫的代碼也看不懂了?把我平時想說的都說出來了
這是平時的咱們:
那麼咱們怎麼辦,作到如下:
咱們作到 5-10 年的時候,技術就不是惟一的敲門磚了,甚至不是最重要的了,而是技術之外的東西:人脈,名望、履歷,以及漸漸成型的言行舉止,等等。但這些東西,如何經過「刻意的練習」(新學的詞)來得到,可是隻要在於本身平時有意識的嘗試,積累,提升
好比我平時在公司的技術分享我都是要求每一個人像正式演講一下,聽得人作好,拍好,認認真真拿筆作記錄,講的人配合黑板,大屏幕,在有高度的臺階上努力作到最好的本身,不結巴,思想連貫,能現場發揮,我還經常和講臺上的人互動,帶着他多說說本身的想法,等你熟悉了這個環境,這種氛圍,這種事,無形中你就會說話,會演講,氣場也就培養出來,固然這不是所有,更多的還有,好比你怎麼去和產品,UI,運營溝通,看看別人的工做內容是什麼,有什麼困難,哪些方面涉及到開發,甚至是別人的所有工做內容,工做技能,這樣你就擁有了區別與別人的橫向擴展能力,在公司一個能和不一樣部門之間有效溝通,創建聯繫,解決問題,梳理矛盾的技術人員比一個單純的技術人員要重要的多,同時這樣的人也更容易晉升,職業道路越是網上會走,越是要接觸更多的部門,擁有和這些部門協做的能力將是相當重要的。
推薦:Android學習PDF+架構視頻+面試文檔+源碼筆記
分享一份Android學習PDF+架構視頻+面試文檔+源碼筆記,還有高級架構技術進階腦圖、Android開發面試專題資料,高級進階架構資料幫助你們學習提高進階,也節省你們在網上搜索資料的時間來學習,也是能夠分享給身邊好友一塊兒學習的!
若是你有須要的話,能夠點個贊,關注我,而後關注微信公衆號【Android開發之家】免費領取