主頁 > 移動端開發 > 2021轉行Android程式員 我做到了

2021轉行Android程式員 我做到了

2022-01-02 08:47:19 移動端開發

決定

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哥語言又不通,加上業務需求又緊,我也只能直接上手做需求了,很多時候都是看著需求,不知如何下手,然后去GoogleGoogle不到然后去請教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

標籤:其他

上一篇:Android【ListView使用】

下一篇:一個應用啟動另外一個應用的Service

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 【從零開始擼一個App】Dagger2

    Dagger2是一個IOC框架,一般用于Android平臺,第一次接觸的朋友,一定會被搞得暈頭轉向。它延續了Java平臺Spring框架代碼碎片化,注解滿天飛的傳統。嘗試將各處代碼片段串聯起來,理清思緒,真不是件容易的事。更不用說還有各版本細微的差別。 與Spring不同的是,Spring是通過反射 ......

    uj5u.com 2020-09-10 06:57:59 more
  • Flutter Weekly Issue 66

    新聞 Flutter 季度調研結果分享 教程 Flutter+FaaS一體化任務編排的思考與設計 詳解Dart中如何通過注解生成代碼 GitHub 用對了嗎?Flutter 團隊分享如何管理大型開源專案 插件 flutter-bubble-tab-indicator A Flutter librar ......

    uj5u.com 2020-09-10 06:58:52 more
  • Proguard 常用規則

    介紹 Proguard 入口,如何查看輸出,如何使用 keep 設定入口以及使用實體,如何配置壓縮,混淆,校驗等規則。

    ......

    uj5u.com 2020-09-10 06:59:00 more
  • Android 開發技術周報 Issue#292

    新聞 Android即將獲得類AirDrop功能:可向附近設備快速分享檔案 谷歌為安卓檔案管理應用引入可安全隱藏資料的Safe Folder功能 Android TV新主界面將顯示電影、電視節目和應用推薦內容 泄露的Android檔案暗示了傳說中的谷歌Pixel 5a與折疊屏新機 谷歌發布Andro ......

    uj5u.com 2020-09-10 07:00:37 more
  • AutoFitTextureView Error inflating class

    報錯: Binary XML file line #0: Binary XML file line #0: Error inflating class xxx.AutoFitTextureView 解決: <com.example.testy2.AutoFitTextureView android: ......

    uj5u.com 2020-09-10 07:00:41 more
  • 根據Uri,Cursor沒有獲取到對應的屬性

    Android: 背景:呼叫攝像頭,拍攝視頻,指定保存的地址,但是回傳的Cursor檔案,只有名稱和大小的屬性,沒有其他諸如時長,連ID屬性都沒有 使用 cursor.getInt(cursor.getColumnIndexOrThrow(MediaStore.Video.Media.DURATIO ......

    uj5u.com 2020-09-10 07:00:44 more
  • Android連載29-持久化技術

    一、持久化技術 我們平時所使用的APP產生的資料,在記憶體中都是瞬時的,會隨著斷電、關機等丟失資料,因此android系統采用了持久化技術,用于存盤這些“瞬時”資料 持久化技術包括:檔案存盤、SharedPreference存盤以及資料庫存盤,還有更復雜的SD卡記憶體儲。 二、檔案存盤 最基本存盤方式, ......

    uj5u.com 2020-09-10 07:00:47 more
  • Android Camera2Video整合到自己專案里

    背景: Android專案里呼叫攝像頭拍攝視頻,原本使用的 MediaStore.ACTION_VIDEO_CAPTURE, 后來因專案需要,改成了camera2 1.Camera2Video 官方demo有點問題,下載后,不能直接整合到專案 問題1.多次拍攝視頻崩潰 問題2.雙擊record按鈕, ......

    uj5u.com 2020-09-10 07:00:50 more
  • Android 開發技術周報 Issue#293

    新聞 谷歌為Android TV開發者提供多種新功能 Android 11將自動填表功能整合到鍵盤輸入建議中 谷歌宣布Android Auto即將支持更多的導航和數字停車應用 谷歌Pixel 5只有XL版本 搭載驍龍765G且將比Pixel 4更便宜 [圖]Wear OS將迎來重磅更新:應用啟動時間 ......

    uj5u.com 2020-09-10 07:01:38 more
  • 海豚星空掃碼投屏 Android 接收端 SDK 集成 六步驟

    掃碼投屏,開放網路,獨占設備,不需要額外下載軟體,微信掃碼,發現設備。支持標準DLNA協議,支持倍速播放。視頻,音頻,圖片投屏。好點意思。還支持自定義基于 DLNA 擴展的操作動作。好像要收費,沒體驗。 這里簡單記錄一下集成程序。 一 跟目錄的build.gradle添加私有mevan倉庫 mave ......

    uj5u.com 2020-09-10 07:01:43 more
最新发布
  • 歡迎頁輪播影片

    如圖,引導開始,球從上落下,同時淡入文字,然后文字開始輪播,最后一頁時停止,點擊進入首頁。 在來看看效果圖。 重力球先不講,主要歡迎輪播簡單實作 首先新建一個類 TextTranslationXGuideView,用于影片展示 文本是類似的,最后會有個圖片箭頭影片,布局很簡單,就是一個 TextVi ......

    uj5u.com 2023-04-20 08:40:31 more
  • 【FAQ】關于華為推送服務因營銷訊息頻次管控導致服務通訊類訊息

    一. 問題描述 使用華為推送服務下發IM訊息時,下發訊息請求成功且code碼為80000000,但是手機總是收不到訊息; 在華為推送自助分析(Beta)平臺查看發現,訊息發送觸發了頻控。 二. 問題原因及背景 2023年1月05日起,華為推送服務對咨詢營銷類訊息做了單個設備每日推送數量上限管理,具體 ......

    uj5u.com 2023-04-20 08:40:11 more
  • 歡迎頁輪播影片

    如圖,引導開始,球從上落下,同時淡入文字,然后文字開始輪播,最后一頁時停止,點擊進入首頁。 在來看看效果圖。 重力球先不講,主要歡迎輪播簡單實作 首先新建一個類 TextTranslationXGuideView,用于影片展示 文本是類似的,最后會有個圖片箭頭影片,布局很簡單,就是一個 TextVi ......

    uj5u.com 2023-04-20 08:39:36 more
  • 【FAQ】關于華為推送服務因營銷訊息頻次管控導致服務通訊類訊息

    一. 問題描述 使用華為推送服務下發IM訊息時,下發訊息請求成功且code碼為80000000,但是手機總是收不到訊息; 在華為推送自助分析(Beta)平臺查看發現,訊息發送觸發了頻控。 二. 問題原因及背景 2023年1月05日起,華為推送服務對咨詢營銷類訊息做了單個設備每日推送數量上限管理,具體 ......

    uj5u.com 2023-04-20 08:39:13 more
  • iOS從UI記憶體地址到讀取成員變數(oc/swift)

    開發除錯時,我們發現bug時常首先是從UI顯示發現例外,下一步才會去定位UI相關連的資料的。XCode有給我們提供一系列debug工具,但是很多人可能還沒有形成一套穩定的除錯流程,因此本文嘗試解決這個問題,順便提出一個暴論:UI顯示例外問題只需要兩個步驟就能完成定位作業的80%: 定位例外 UI 組 ......

    uj5u.com 2023-04-19 09:16:23 more
  • FIDE重磅更新!性能飛躍!體驗有禮!

    FIDE 開發者工具重構升級啦!實作500%性能提升,誠邀體驗! 一直以來不少開發者朋友在社區反饋,在使用 FIDE 工具的程序中,時常會遇到諸如加載不及時、代碼預覽/渲染性能不如意的情況,十分影響開發體驗。 作為技術團隊,我們深知一件趁手的開發工具對開發者的重要性,因此,在2023年開年,FinC ......

    uj5u.com 2023-04-19 09:16:15 more
  • 游戲內嵌社區服務開放,助力開發者提升玩家互動與留存

    華為 HMS Core 游戲內嵌社區服務提供快速訪問華為游戲中心論壇能力,支持玩家直接在游戲內瀏覽帖子和交流互動,助力開發者擴展內容生產和觸達的場景。 一、為什么要游戲內嵌社區? 二、游戲內嵌社區的典型使用場景 1、游戲內打開論壇 您可以在游戲內繪制論壇入口,為玩家提供沉浸式發帖、瀏覽、點贊、回帖、 ......

    uj5u.com 2023-04-19 09:15:46 more
  • iOS從UI記憶體地址到讀取成員變數(oc/swift)

    開發除錯時,我們發現bug時常首先是從UI顯示發現例外,下一步才會去定位UI相關連的資料的。XCode有給我們提供一系列debug工具,但是很多人可能還沒有形成一套穩定的除錯流程,因此本文嘗試解決這個問題,順便提出一個暴論:UI顯示例外問題只需要兩個步驟就能完成定位作業的80%: 定位例外 UI 組 ......

    uj5u.com 2023-04-19 09:14:53 more
  • FIDE重磅更新!性能飛躍!體驗有禮!

    FIDE 開發者工具重構升級啦!實作500%性能提升,誠邀體驗! 一直以來不少開發者朋友在社區反饋,在使用 FIDE 工具的程序中,時常會遇到諸如加載不及時、代碼預覽/渲染性能不如意的情況,十分影響開發體驗。 作為技術團隊,我們深知一件趁手的開發工具對開發者的重要性,因此,在2023年開年,FinC ......

    uj5u.com 2023-04-19 09:14:08 more
  • 游戲內嵌社區服務開放,助力開發者提升玩家互動與留存

    華為 HMS Core 游戲內嵌社區服務提供快速訪問華為游戲中心論壇能力,支持玩家直接在游戲內瀏覽帖子和交流互動,助力開發者擴展內容生產和觸達的場景。 一、為什么要游戲內嵌社區? 二、游戲內嵌社區的典型使用場景 1、游戲內打開論壇 您可以在游戲內繪制論壇入口,為玩家提供沉浸式發帖、瀏覽、點贊、回帖、 ......

    uj5u.com 2023-04-19 09:08:34 more