決定
2017年6月29號下午四點,我剛剛結束了大三所有課程的期末考試,迎來人生的最后一個暑假,
但留給我的休息時間其實只有兩天,因為,我在一個月前就規劃好了暑假,找好了實習,是一家機器人培訓公司,去當培訓老師,
兩天后,我就屁顛屁顛的去實習公司報道去了,公司老板是我之前代表學校去參加展會認識的,人很好,作業的同事也很nice,幾天后,老板就帶著我到西安參加一個為期半個月的夏令營活動(公費旅游),第一次連續坐了24個小時的綠皮火車,在西安城里到處找膜吃,去了回民街、大雁塔、陜西歷史博物館、大唐西市,,
在我7月初再次回到學校時,我發現我的很多同學都沒有選擇回家或者找份實習作業來充實自己的暑假,而是整天泡在學校圖書館或自習室,喊他們打球都喊不出來,他們一部分人是在為考研努力著,另一部分是為考公準備著,看著他們都有著自己長期的規劃,這也讓我反思了自己的職業規劃,懷疑找這份實習作業的正確性,
轉折
產生了自我懷疑后,我就去找我做運維的堂哥聊了聊,他覺得我現在做教育培訓根本不合適,現階段的我需要知識輸入,而不是進行知識產出,并推薦我學習Python,轉行開發崗,并甩給我幾十G的視頻學習資料,
我覺得他說的很對,因此我開始了自學Python之路,好在我的實作作業比較清閑,每天按時下班,所以下班后,我就看視頻學習,從最基礎的開發環境搭建開始,折騰Ubantu,安裝各種軟體包,到學習基礎語法,再到學習Scrapy爬蟲框架,每折騰出一個小東西,就會帶給我成就感與快樂,
第一次面試
很快11月份學校的校招招聘會就開始了,我依然清晰地記得那天我早早的起了床,到學校列印店列印了我的簡歷,滿懷期待的到了招聘會現場,結果卻發現,沒有幾家公司招Python相關崗位,更多的是Java,最終也就只投遞了一家(現在想想自己當初咋就這么軸呢?不是Python就不能投?天😅),第二天早上就收到了面試邀約,約好當天下午一點半的面試時間,為了留個好印象,我又一次早早的出門,提前了半個多小時到了(還提前半小時,真的絕了,面試官是不需要午休的么😅),然后就是給了我一份試題,讓我自己一個人在會議室做題,半小時后,進來了3個面試官,輪流著問我問題,而我也基本都答不上來,場面一度很尷尬,我真的想找個地縫鉆進去,沒過多久,面試也就結束了,離開了兩個面試官,剩下的另一個面試官是我學長,人很好,他可能看出我的尷尬與失落,主動跟我嘮起了家常,我也主動向他詢問了我的問題,他建議我一定要學好基礎,比如最基礎的Python語法,而不是學Scrapy這種框架,讓我別氣餒,繼續加油,告別學長,坐在回學校的地鐵上,我也對這次面試進行了反思,馬上下單了《Python核心編程》這本書,決定系統的好好的學習基礎,
起點
2018年3月5號,過了這么久依然記憶猶新,因為我在這一天,終于成為了程式員,那天,我穿戴整齊,背上電腦,早早的出門,再一次提前半小時到達了公司,公司的大部分人都還沒來,好在幾個測驗小姐姐提前來了,他們也提前知道了今天要來新同事,領著我到了我的工位,過了沒多久,同事們陸陸續續都來了,等大家都到齊后,主管領著我們做了一個破冰小游戲,就是每個人依次介紹一下自己的英文名,最后我要說出他們的名字,氛圍是愉快且輕松的,之后就是歷時一個月的Python Django培訓學習,由我的主管給我布置需求,從0到1搭建一個自己的博客網站,由于我的基礎是在太差了,沒少挨批,不過這一個月也是我自學編程以來進步最快的一個月了(十分感謝我的主管),
開啟Android之旅
為期一個月的學習培訓很快就過去了,我以為我會繼續做Python開發,但萬萬沒想到的是,由于Android組缺人,我直接分配到了Android組,要命,我可是一句Java都沒寫過的人啊,更要命的是,帶我的組長B哥是個韓國人,我們得用英文溝通,好在B哥人很不錯,沒有放棄我,他讓我去刷Android developer官網,讓我對組件留一個印象,然后等到用到的時候再深入去學習,遇到什么不懂的問題就去問他,讓我不用不好意思,
一度想放棄
無Java Android基礎,跟組長B哥語言又不通,加上業務需求又緊,我也只能直接上手做需求了,很多時候都是看著需求,不知如何下手,然后去Google,Google不到然后去請教B哥以及周圍同事,然后他們告訴我使用哪個哪個組件,或者甩給我一篇文章,在這樣的狀態下導致我給自己的內心壓力很大,甚至一度想著要不放棄算了,反正這樣也轉正不了,何必一直耗著呢,
轉折
這天我下班回到學校寢室,恰巧看到隔壁寢室的同學老費也回到了學校,進去打了個招呼,老費在準備轉專業考研考計算機,我發現他的桌子上放著一本《Java語言程式設計-基礎篇》,我跟老費說了我的近況,他推薦我好好學習一下這本Java黑皮書,說這是Java很經典的一本入門書籍,對我會很有幫助,我隨手翻了翻這本書,確實很好,當晚我就直接下單買了一本,后面,機緣巧合下我又讀到了郭霖大佬的《第一行代碼》,然后學習了B哥推薦我去看Android developer官網
漸入佳境
在刷完《Java語言程式設計-基礎篇》與《第一行代碼》這兩本書后,我發現我的Android開發之路變得平坦了很多,我面對需求抓耳撓腮的次數減少了,也變得比以前自信了,我也可以去跟我的同事主管交流一些我的想法,也嘗試將我學的知識點整理寫成博客,并在公司的技術分享會上分享給大家,慢慢我也開始獨立負責一個需求,成為了主力開發,
離開
有相聚就有離別,為了早日與女友結束異地戀,我也計劃著19年下半年到杭州發展,我要離開這個起點,這次就像是我真正的畢業,
再出發
離開起點后,社會直接就給我上了一課,萬萬沒想到,來杭州的第一家公司是在發不出工資的情況下招的我,第一個月工資延發,第二個月工資發半個月,第三個月直接說發不出來了,本想直接提桶跑路了,沒想到又被老板畫的大餅給留下了,想著也要過年了,那就年后說吧,然后就是2020年初疫情爆發了,在家隔離的日子里我也沒閑著,在家學習,也是那時候開始在掘金分享技術文章,疫情給我那本就氣息奄奄的公司又來上了一腳,拖欠的工資更加發不出了,我也意識到,是時候走了,那是2020年的3月份,疫情剛剛好轉一點,但市場上的崗位需求缺很少,我投出去的簡歷基本石沉大海,終于約到了面試,面試程序也很順利,我也就入職了我現在的這家公司,一直到現在,
這就是我選擇轉行做程式員以來真實的故事,我舍去了很多辛酸與被人看低的經歷,畢竟我把我的故事說給你們聽得目的就是希望能給大家一點正能量,
也正是這段經歷,讓本來開朗自信的我變得自閉與不自信,但好在我不服輸,我不愿接受我比身邊的人差,雖然我不是科班出身,只是一個半路出家的半吊子,但我現在也做到了,成為了Android程式員,
2022年我要讓自己變得更加自信,
最后
我總結了我在日后Android開發的學習程序中應該學習的一些知識模塊
底層技術
目前Android APP開發主流語言就是Java語言,Java語言最大的特性就是提高了軟體的互動可能性,可以說安卓手機幾乎所有應用程式都是利用Java語言來進行撰寫的,
JAVA知識要點:
1、Java序列化、泛型與反射
2、虛擬機底層原理
3、Android記憶體原理
4、Java高級并發原理詳解
5、編譯時技術掌握與實戰
6、JDK高級動態代理
7、高級資料結構與演算法
8、Java IO操作
9、,,,

FrameWork原始碼與UI
在Android中,Framework泛指系統架構層,Framework的中文意思是“框架”,在軟體開發中通常指開發框架,在一個系統中處于內核層之上,為頂層應用提供介面,被設計用來幫助開發者快速開發頂層應用,而不必關心系統內核運行機制,通常Framework都會隱藏main函式等應用程式必須的組件,開發人員只需把精力放在功能代碼的實作上,說簡單點,Framework具體的作業也就是為android應用開發的開發人員提供了一系列的服務和API的介面,
UI其實并不是單純指用戶看到的效果,因為在Android開發中,每個控制元件背后都有一套深層次的體系在支撐,自然而然,會UI不單純指的是會自定義控制元件,我們還應該知道自定義控制元件背后的執行流程,包括從Activity的創建,XML的決議,到每個控制元件的測量、布局、繪制,當然在中間還夾雜著比如影片、事件分發機制、嵌套滑動機制等知識點,還有谷歌提供的一些UI框架也使我們要掌握的物件,比如Jetpack組件庫、Material Design等,
知識要點:
1、 FrameWork原始碼決議(SDK 30)
2、Android常用組件深入決議
3、JetPack全家桶
4、Android R新特性決議
,,,,,

大廠內部APP調優方案
性能優化是一個專案必須要經歷的程序,你的應用好與壞都是在用戶使用的程序中反映出來的,如果性能優化沒有做好,對于你的應用來說影響是非常大的,尤其是現在的Android市場競爭非常激烈,如果你的應用體驗沒有競品的好,那么用戶流失是必然的,
性能優化不是一件簡單的事情,每個應用的性能好與壞無法由一個人來決定,因為性能優化的維度有太多了,從我們專案的整體架構,到我們代碼的每一個細節,再到應用使用環境的測驗,只有步步為營,才能做好一個專案的優化,
大部分開發者把性能優化指向與不閃退就行,但是實際上性能優化包含了很多方面,比如從簡單的啟動優化、 UI優化、 卡頓優化、 崩潰優化、 安全性優化,到深層次的弱網優化、 大圖加載優化、 儲存優化、 高效傳輸優化、 極限瘦身優化,再到實際開發程序中的OOM問題原理決議、 ANR問題決議、 Crash監控方案,要想把這些優化流程做好,我們不僅從專案架構、代碼規范等方面入手,還用學會利用第三方的檢測工具來檢測專案性能,最主要是,我們需要一套完整的性能優化方案,這正是我們所缺少的,所以我們必須要把缺少的補上, 打造一套真正的完整的性能優化體系,把性能優化流程化,常態化,
知識要點
1、 APP基礎優化
2、APP深度優化
3、開發焦點問題優化
4、編程效率優化
5、專案實戰
- 抖音在APK包大小資源優化的實踐
- 優酷回應式布局技術全決議
- 網路優化
- 手機淘寶雙十一性能優化專案揭秘
- 高德APP全鏈路原始碼依賴分析
- 徹底干掉OOM的實戰經驗分享
- 微信Android終端記憶體優化實踐

對標騰訊T3.3架構師
Android框架體系架構(高級UI+FrameWork原始碼) 這塊知識是現今使用者最多的,我們稱之Android高頻技術,
Android開發者也往往因為網上Copy代碼習慣了而導致對這塊經常“使用”的代碼熟悉而又陌生:熟悉的是幾乎天天在和它們打交道, 天天在復制這些代碼 ;陌生的是雖然天天和這些代碼打交道,但是并沒有深入研究過這些代碼的原理,代碼深處的內涵,
本篇知識要點:
1、架構師設計思想篇
2、 手淘全套架構設計與實作
3、 開源框架
4、OKHttp網路框架
5、一線大廠核心框架剖析與實作

Gradle專案實戰
主要內容
1、Groovy語法
2、Gradle Android插件配置
3、專案實戰

NDK模塊開發(音視頻系列)
NDK(Native Development Kit縮寫)一種基于原生程式介面的軟體開發工具包,可以讓您在 Android 應用中利用 C 和 C++ 代碼的工具,通過此工具開發的程式直接在本地運行,而不是虛擬機,
在Android中,NDK是一系列工具的集合,主要用于擴展Android SDK,NDK提供了一系列的工具可以幫助開發者快速的開發C或C++的動態庫,并能自動將so和Java應用一起打包成apk,
本篇知識要點:
1、NDK開發之C/C++入門
2、JNI模塊開發
3、Linux編程
4、底層圖片處理
5、音視頻開發
6、機器學習

Flutter學習進階
2021 年無疑是 Flutter 技術如火如荼發展的一年,
每一個移動開發者都在為 Flutter 帶來的“快速開發、富有表現力和靈活的 UI、原生性能”的特色和理念而癡狂,從超級 App 到獨立應用,從純 Flutter 到混合堆疊,開發者們在不同的場景下樂此不疲的探索和應用著 Flutter 技術,也在面臨著各種各樣不同的挑戰,
本篇知識要點:
1、Flutter跨平臺開發概述
2、Windows中Flutter開發環境搭建
3、撰寫你的第一個Flutter APP
4、Flutter Dart語言系統入門
…

學習路線配套的資料:Github
學習路線獲得地址:Android技術交流
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/400597.html
標籤:其他
