首頁>情感>

寫在前面的話

很多時候,你的努力在別人眼裡就是一個傻瓜。但是,天道酬勤,你的努力終會在某一天以另一種方式回饋給你。

我有一個朋友,漂泊半生,碌碌無為,直到一手把他拉扯大的奶奶離世前把他罵一頓,他這才開始真心悔過,開始奮進。那一年,他已經虛歲三十了。三十而立。“你說的這個‘朋友’到底是不是就是你自己?”

講個笑話,有人30歲了轉行做Android 開發……關鍵還成功了。

當事人背景

我的朋友是農村出身,家庭條件不好,小時候父母私下做鞭(泡)出了事故,後面就一直跟著奶奶過日子。

但是,這一切並沒有讓他立志上進。失去親人後,他只是一味的放縱自己,拉幫結派,打架鬥毆,曠課上網打遊戲……最後,他成為了老師最頭疼的學生,但是他們總是念著他是一個孤兒而多了很多寬容,但是這樣的寬容只是讓這個處於叛逆期的孩子越走越遠。

結果可想而知,不管是中考還是高考,他都是名落孫山,最後憑著那麼一點點天分進了一民辦的三本院校——學費最貴的那種,學了個計算機專業。

“好歹也是一個本科學歷吧。放心,奶奶一定供你讀……”他的奶奶這樣笑著安慰他,殊不知他根本就不曾上心過。對他來說,什麼都無所謂。

碌碌前半生

進入大學後,少年也沒有什麼特別的改變,不過是有了更多的玩樂時間,學習也就一般般。最後就那樣勉勉強強的畢了業,進入了社會,隨隨便便找了一份測試的工作,也算是專業相關吧。

到現在,一晃走過了14個年頭,嚐盡途中的酸甜苦辣,默默望著窗外,掐指一算,從事計算機行業已近6個年頭。其中三分之一的時間在做測試,也是從事過時間最久的一份職業。為什麼能做這麼久?他說因為自己沒有目標,只想勉強度日。

那你現在轉行是有目標了嗎?

“是的,我要轉Android開發。”

轉行導火線

最近《你好!李煥英》這個電影很火,主角的媽媽在孩子不爭氣的事情後意外去世了,做孩子的心懷愧疚,意外回到過去後一直想讓媽媽開心,為媽媽做了很多事情。

我的這位朋友是奶奶一手帶大的,卻沒有給奶奶爭一口氣,還讓老人為了送他上學辛苦還債,沒有過上一天安生日子,他一直很愧疚。

他從來沒有見過老人罵人,但是她走的時候,說了我:混賬——連自己都照顧不好!

後面老人跟他說了幾句些話,意思是不放心,要他好好活出個人樣兒。

他想,自己能為這個偉大的老人做的最後的事情就是好好在這個世界上活著了吧。

看官:你說的這個“朋友”到底是不是就是你自己?筆者:是的。而且我現在已經進入阿里,這也算是轉行成功了吧?

轉行流的汗

轉行之難

我這裡不是搞歧視,但是測試做久了技術真的會退化。

我大學裡本來也沒有學到什麼東西,剛畢業的那段時間本來是學習技術,個人成長的黃金時期,我也沒有好好把握,說不後悔是騙人的。

後面我向公司提出了內部轉崗,但是公司不同意。這個也能理解,畢竟現在市場上的Android開發人力資源已經供過於求,尤其是初階的,競爭特別大。看不上我也是情理之中。

這裡也給大家提個醒,要轉行就要做足準備,在不瞭解行情的時候不要輕舉妄動。

由於我轉行的時候已經32歲了,當時身邊的人都在勸我好好做好當下的事情,不要輕易冒險,關鍵是,現在“Android 已經涼了”,我身邊的人不止一次跟我說這些內容。

但是我還是這樣一路走下來了。我想要堅持一次,為自己。

我去報了輔導班,和很多非專業的朋友一起學Android開發,他們很多都是有基礎的,而我的基礎遠遠跟不上他們,這讓我不得不付出更多的時間和精力去學習。

所幸,我得到了很多大佬的幫助。

我的學習經驗分享

下面這段簡述自己的過往經歷,作為一個轉行的人,我深知轉行的不易,而根據我多年的工作經驗,高Android開發的很多都是非本專業的。

以下是我轉行Android 學習成長的心得體會。

我對那些想轉行的人的建議

俗話說:幹一行,愛一行,學一行,專一行。

半路出家的人員心態都比較走兩個極端,一是看中他的前景;二者是不喜歡原工作(薪水低或幹得不爽)。我自己就是屬於二者。但不管是你已轉行了,還是將要轉行做Android,我都建議您靜下心來思考下面幾個問題:

我能做什麼?我不能做什麼?我的優勢是什麼?我的劣勢是什麼?做前端對我有何好處?做前端我要付出何種代價?我能不能堅持做下去?

如果你不能好好的,清楚的回答這些問題,我建議你還是不要輕意轉行做Android。

Android需要學哪些?

知識體系

廣度

對新技術充滿熱情,樂於嘗試閱讀一些課外書籍

深度

探究設計模式,演算法,框架底層原理學習、探索並總結屬於自己的Android開發方法論一顆不滿足於淺嘗輒止的心

學習路線

根據對應的知識點找對應的學習資料(如影片、書籍、文件、文章、專案實戰等),學習路線圖想必大家都見過,精華詠流傳。

架構師築基語言基礎

目前Android APP開發主流語言就是Java語言,Java語言最大的特性就是提高了軟體的互動可能性,可以說安卓手機幾乎所有應用程式都是利用Java語言來進行編寫的。

知識要點:1、Java序列化、泛型、反射2、虛擬機器底層原理3、Android記憶體原理4、Java高併發原理詳解5、編譯時技術掌握與實戰6、JDK高階動態代理7、高階資料結構與演算法8、Java IO操作

Android R Frame Work原始碼與UI

在Android中,Framework泛指系統架構層。Framework的中文意思是“框架”,在軟體開發中通常指開發框架,在一個系統中處於核心層之上,為頂層應用提供介面,被設計用來幫助開發者快速開發頂層應用,而不必關心繫統核心執行機制,通常Framework都會隱藏main函式等應用程式必須的元件,開發人員只需把精力放在功能程式碼的實現上。說簡單點,Framework具體的工作也就是為android應用開發的開發人員提供了一系列的服務和API的介面。UI其實並不是單純指使用者看到的效果。因為在Android開發中,每個控制元件背後都有一套深層次的體系在支撐,自然而然,會UI不單純指的是會自定義控制元件,我們還應該知道自定義控制元件背後的執行流程,包括從Activity的建立,XML的解析,到每個控制元件的測量、佈局、繪製。當然在中間還夾雜著比如動畫、事件分發機制、巢狀滑動機制等知識點。還有谷歌提供的一些UI框架也使我們要掌握的物件,比如Jetpack元件庫、Material Design等。

知識要點:1、FrameWork原始碼解析2、Android常用元件深入解析3、UI的深度剖析與自定義4、Jetpack全家桶5、Android R6、RXJava響應式程式設計框架設計

360°全方位效能調優

效能最佳化是針對整個app開發而言的。一個好的專案被開發出來,不單是產品要好,開發者也需要知道,為什麼我開發的這個app能夠在絕大多數的手機執行,為什麼使用者在使用的時候絕大部分的手機不會出現bug。我們的apk檔案可以最佳化到很小的,比如你做一個專案,打包之後可能是10m,但是經過最佳化之後可能就只有8m,甚至更小。另外,我們做的專案安全性如何?我們憑什麼斷定我們做出來的app安全性好。這都是效能最佳化中會涉及的。

1、設計思想與程式碼質量最佳化

一個app的效能好不好我們需要從兩個層面努力。第一個層面:從寫程式碼的時候就需要注意,讓自己的程式碼是高效能高可用的程式碼,這個過程是書寫高效能程式碼;第二個層面:對已經成型的程式碼透過工具檢查程式碼的問題,透過檢查到的問題來指導我們進行程式碼的刪改,這個過程被稱為調優。如何寫出高效能的程式碼呢?那就需要我們具備深厚的程式碼功底,這就是程式碼的基礎,如:資料結構達到可以根據應用場景寫出符合當前場景的特殊結構,比如google針對Android平臺特徵研發了sparseArray替代HashMap。另外,對常用的演算法有自己獨到的見解,leetcode上有刷個上百道題,這樣差不多可以達到精通最常用的排序查詢動態規劃等演算法的能力。再者,高效的演算法以及節省記憶體的資料結構如果配合優秀的符合應用場景的設計模式,那麼,這些就為高效能的程式碼提供了實現依據。另外一個就是對寫好的程式碼進行調優,那麼調優的方向就是使用Profiler工具進行測試和檢查,看哪裡有效能消耗大的操作,然後分析對於程式碼的問題。調優的方向就變成了如何對記憶體調優,對耗電調優,對網路流量調優,當然,還有對啟動速度,頁面切換效果與速度,開機白屏體驗,閃屏方面的原因等進行分析和調優。最後再加上一個螢幕適配相機適配。

2、程式效能最佳化

啟動速度與執行效率最佳化佈局檢測與最佳化記憶體最佳化耗電最佳化網路傳輸與資料儲存最佳化APK大小最佳化

3、開發效率最佳化

分散式版本控制系統Git自動化構建系統Gradle

4、專案實戰

對標騰訊T3.3架構師必備技術

Android框架體系架構(高階UI+FrameWork原始碼) 這塊知識是現今使用者最多的,我們稱之Android2013~2016年的技術。

Android開發者也往往因為網上Copy程式碼習慣了而導致對這塊經常“使用”的程式碼熟悉而又陌生:熟悉的是幾乎天天在和它們打交道, 天天在複製這些程式碼 ;陌生的是雖然天天和這些程式碼打交道,但是並沒有深入研究過這些程式碼的原理,程式碼深處的內涵。

本篇知識要點:1、架構師必備的程式碼設計準則2、元件化架構設計3、外掛化架構設計4、熱修復設計5、開源框架原始碼解析與實現

高階音影片(音影片系列)

從未來的大趨勢來看,隨著5G時代的到來,音影片慢慢變成人們日常生活中的必需品。除了線上教育、音影片會議、即時通訊這些必須使用音影片技術的產品外,其它的產品也需要加入音訊、影片元素。

正是因為這樣一個大的趨勢,現在除了各大廠之外,其它一些小廠也開始尋找音影片人才。

一名稍好點的音影片人才現在可能會有3-4家公司搶著要、掙著要。對音影片人才的需求從小眾變成了大眾,這更多的是大家對未來市場預期的結果。

音影片人才為什麼難得?

音影片知識龐雜,通俗易懂的資料非常少;

網上部落格,影片充斥著大量的錯誤資訊,使得很多初學者掉到坑裡就爬不出來了。

舉個例子,按照傳統的音影片學習方法:首先接觸大量的音影片開源庫,如FFmpeg、MediaCodec,往往這些API就已經把腦袋弄大了。停留在使用API,不能讓你適應不斷變化的需求。最開始的方向錯了,不管如何努力,都學不好音影片。

本篇知識要點:1、基礎語法2、H264影片編碼3、H265編碼原理4、H265編碼應用5、MediaCode

關於 Android 程式設計師的一些Q&A

借這篇文回答一些剛入Android大門的朋友的一些問題。

自學Android可能嗎?

我個人覺得自學是沒有問題的,關鍵是要有毅力和資源。

程式設計師真的有“35歲危機”嗎?

程式設計師35歲危機是真實存在的,即便有技術傍身,還是難免對自己的生存能力產生質疑和焦慮,這些年職業發展,一直在尋求消除焦慮的依靠。

技術要深入到什麼程度?做久了技術總要轉型管理?我能做什麼,我想做什麼?

永遠不要放棄一技之長,它值得你長期信仰持有。獨立生存的能力,是消除中年危機的終極答案。

最後

我高齡轉行成功了,現在在做技術管理,但始終不會放棄我作為Android 開發者一技之長的根本。

遇到一些中途又轉其他行業的朋友,我想說,當你轉行那一刻起,就把要轉的領域變成了你新的“棧內技術”,然後又要重新走一遍技術沉澱的過程。

匆匆幾年,又過去了,所以不要輕易"換方向",Android 絕對是可以長時間堅持的領域,現在無論是小程式,快應用,甚至區塊鏈,都會需要我們Android 開發者,因為有龐大的使用者群體,所以長期堅持從事移動開發工作,在可預見的未來都不會“過時”。

人生是沒有侷限的,只要你想努力,什麼時候開始都不算晚。盡然選擇了Android,就要做好打持久戰的準備,把基礎打紮實後,隨時關注並學習最新的技術和框架,與時俱進,才不會被淘汰。

技術提升需要一定的過程,腳踏實地走好每一步,先定好一個個小目標,然後去一一實現。

8
最新評論
  • 女子結婚三年被打四次,丈夫一次比一次狠,這次更是骨裂三根
  • 過年回家,面對長輩的催婚,你是怎麼應對的?