
大廠offer是每個技術人的追求
我覺得每一個程式員的夢想大概就是能夠找一份大廠的 Offer,我覺得這很正常,這并不是我們的飯后談資而是每個技術人的追求,像阿里、騰訊、美團、位元組跳動、京東等等的技術氛圍與技術規范度還是要明顯優于一些創業型公司/小公司,如果說能夠在這樣的公司鍛煉幾年,相信對自己能力的提升還是非常大的,但不是每個人都能夠進入大廠的,這往往取決于我們的能力、學歷、面試表現等因素,
現在面試大公司你說你沒有大型專案開發經驗估計都拿不出手,jetpack、NDK、插件化、熱修復理論等等已然大廠面試所必須的知識,但是,你真進入大廠了,可能幾年都用不上這些知識,還是老老實實去寫CRUD,
與其抱怨,不如提高自己
相比于前幾年來說,現在的面試難度提升了不少,你說說現在程式員這么多,你投遞的公司可能與你一起投遞的就有300人,可人家只招5人,那怎么辦?簡歷PASS掉一大批,然后面試再PASS掉一大批,從這樣來看,現在流行說的:“面試造火箭,作業擰螺絲”還是很有道理的,提高面試難度只是為了從很多人中招到自己需要的那些人,
很多人都抱怨現在作業越來越難找了,的確,互聯網行業現在確實沒有之前好找作業了,我覺得有很大一部分原因是現在的培訓班培訓出來了太多半路出家的程式員,培訓班打著保障你高薪就職的稱號引誘了很多人進入這個圈子,我并不是對半路出家的人有偏見,只是一個事實就是培訓班出來的一些人是真的無法勝任很多作業,
一是大部分培訓班的培訓水分特別大,說白點,很多培訓班就是為了圈錢;二是半路出家的人的基礎肯定是沒有大學習踏實學習計算機知識的人好的,這就造成很多培訓班出生的人很難往前走;三是互聯網行業確實對年輕的人有一部分偏愛,畢竟剛畢業的大學生還是比較廉價的,但是互聯網行業并不是吃青春飯,
所以,不管是培訓班出生、應屆生還是作業幾年的小伙伴都要對自己有一個清晰的認識,搞清楚你自己所欠缺的能力,搞清楚你自己的優勢(企業為什么要招你),知道自己不足的地方之后,就要去努力!
互聯網行業其實還是挺公平的,雖然面試的時候會將你的學歷作為參考,但是如果你的能力真的厲害,你的簡歷真的豐富的話,面試官還是會很欣賞這樣的應聘者的,
互聯網競爭激烈,但是我們這些移動開發者來說可能競爭會相對于更加強烈一點,畢竟現在大環境形勢也沒有之前好了,下面來講講身為Android開發的那些“悲哀”,

移動開發程式員的那些“悲哀”
移動開發程式員完全是一個刀口舔血的職業!
我今年33歲,身邊熟悉的不少朋友,從事互聯網行業,年齡在 40 歲附近,常常,我通過觀察他們,想象自己的未來的樣子,
這些朋友,更準確的說,是我的老師,師兄,前輩,在40歲的年紀,人生境況各不相同,
有位師兄,打拼多年,現在的職級是阿里 P9,這一兩年和他聯系較多,主要是作為晚輩后生請教問題,阿里集團有十萬員工,在 P9 職級的員工只有寥寥千人,所能夠獲得的工資和股票,遠遠超過了普通人的期望,我問過他,怎么看待這幾年愈演愈烈的中年危機話題,他沒有多說,只淡淡的提了一句,「其實不是像大家講的那樣緊張,如果三四十歲,職級還是 P6,能不中年危機嗎」,這里需要說明一下,阿里的碩士入職定級一般是 P5,
我們來品品這句話,是有一定資訊量的,誠然,以這位師兄取得的成績和社會地位,中年危機對他來說,可能是沒有親密接觸過的,但從以往的交流中,我知道師兄熱愛思考,也熱愛與人打交道,甚至對我這樣一位寂寂無名的晚輩后生都經常保持聯系,所以他對社會百相是有著高于一般人的認知的,他之所以這樣說,其實是想告訴我,在他的觀念里,與其說職場中年危機是一種現象,倒不如說是一種結果,
何出此言,從畢業后的二十多歲,到可能出現中年危機的三四十歲,這十幾年里,有些東西的改變是我們無法阻止的,例如身體機能的下降,精力明顯沒有青年時旺盛了,但有些東西,是我們可以爭取的,
像師兄說的,如果一個程式員,人近中年,還在相對而言較低的職級位置上,這十幾年的時間,基本是處于一種原地踏步的狀態,過著溫水煮青蛙的日子,技術深度和廣度都停滯不前,當公司的效益下滑時,很容易成為優化的目標,
特別是我們移動開發人員,以前小廠需要分別招一個IOS和Android開發人員,Flutter技術的升級使用,實作了跨平臺開發,公司崗位需求變成了只招一個Flutter技術開發人員就可以滿足部分需求了,裁員縮減成本就成了懸在移動開發人員頭上的一把利劍,隨時會降臨到自己身上!

關于移動開發程式員的通病
1、一些馬上畢業的同學和已經畢業一年從事Android開發相關的作業的初級開發者,往往會有這樣的疑惑,不知道要學習什么東西,自己摸索著學習呢,又不知道學習的路線對不對,發愁啊,
實話說這個蠻正常的,咱們Android開發要學的東西也不少,大多數開發者都會有這種時期,當自己專案完成、處于維護階段的時候,作業不忙,想自己學習,但是又不知道(我也想學習,可現實她不允許啊)
從何學起?怎么學?東一榔頭西一棒子,最終識訓甚少,然后開始自我懷疑,厭倦學習,從此墮落,
2、還有一些高級工程師除了代碼,完全不知道這個世界是怎么運轉的,
- 你知道怎么與陌生人打交道嗎?
- 你知道怎么推銷產品嗎?
- 你知道你一個東西做出來,怎么把它推廣出去嗎?
- 你知道除了技術以外,互聯網的眾多行業是怎么掙錢的嗎?
如果這些都不懂,恭喜你,你是純純的程式員,將來被優化以后,你將完全不懂如何生存,
那我們應該怎么辦呢?
只說問題,不講方案,不是我的風格,透過問題看到本質,進而給出解決方案才是,
既然知道了問題的本質,那答案就很簡單了,程式員的小伙伴們,不要兩耳不聞窗外事,一心只讀圣閑書了,
具體怎么做呢?

1、盡量讓自己擁有較長時間競爭力的技能和思想,
比如說,很多年輕人熱衷于學習新的工具,新的編程語言,學習在新的平臺做系統,當然,這是有一定紅利期的,但作為個人的競爭力,稍過幾年,很可能就一文不值,
我應該是中國最早寫cold fusion代碼的人,誰還知道這是啥玩意,是中國最早翻譯asp教程的人,也是中國最早一波寫php代碼的人,從當時看,很牛逼對不對,過不了幾年,這玩意也算競爭力?
什么是競爭力,多理解系統底層的邏輯和思想,諸如記憶體分配的機制,多理解資料結構的原理和設計理念,這些也不能說永遠都有競爭力,但如果理解到位,并且應用得當,至少可以保證二三十年自己的思想不會在業內落伍,
具有發現問題的敏銳度,掌握分析問題的方法和思路,也能讓自己職場競爭力相對牢固一些,
那些中年技術大咖,你讓他們繼續跟年輕人一起比敲代碼,真敲不過,當然個別有還能敲得很利索的,大部分可能已經無法熟練的使用具體的編程工具和具體的特定演算法,跟優秀的年輕人比拼了,但他們知道如何有效的在復雜的系統中發現問題,定位問題,并針對性的給出解決問題的方向,這就是競爭力,這個競爭力,依然可以持續很多年,
2、站的越高,位置越穩,
如果你曾經站在Top 1/1000的優勢位置,雖然來了很多優秀的年輕人,你可能力不從心,掉到了Top 1/100,雖然沒有曾經的光輝,但仍然具有足夠的競爭力,仍然配得上非常優秀的標簽,
如果你沾沾自喜自己現在屬于Top 20%的優秀人群,但年輕人一波波沖進來,你眼看著自己掉到了 Top30%, Top40%, Top50%,對不起,優秀倆字從此與你無緣,
3、即便力不從心,也要奮力向前,
你說一代更比一代強,有的時候真的力不從心,但看你目標是什么,想獨孤求敗,一覽眾山小,可能越來越難,但畢竟!畢竟大部分人是懶惰,缺乏耐心的,想讓自己超過大多數人,畢竟沒那么難,
TK教主有句話很經典,具體原文找不到了,大概意思我整理一下,如果你否定天分的存在,只強調勤奮努力,那就是蠢,但如果你因此認為勤奮努力沒有用,那就是又懶又蠢,
比如我這些年一直下圍棋,學習新的定勢,不斷提升棋力,實話說,以我的水平,你說打職業比賽,開玩笑,差距太大了,每年會有大量學棋青少年超過我的水平,這是擋不住的,認了,但只要我堅持進步,就會超過很多停步不前的圍棋愛好者,我四十多歲,還在漲棋,沒有年輕人學的快是真的,但總有大量停步不前的圍棋愛好者會被我超越對不對,
只要你肯進步,總會超越大量不進步的人,對于普通人來說,這就足夠了,
4、廣結善緣,穩固地位,
趁著自己優秀的時候,多幫助和扶植優秀的年輕人,我一直是這么強調的,等他們足夠優秀了,你的地位和影響力會越加穩固,
有些人覺得,教會徒弟,餓死師傅,干嘛不給自己留點競爭力,
現在這個社會,優秀的人才太多,優秀的年輕人太多,你不教,別人也會教,你的徒弟不搶你的飯碗,別人的徒弟也會搶你的飯碗,你結善緣,還能等他們成長起來感恩回饋,你藏著掖著,最后你真的以為能守住什么競爭力?搶你飯碗的年輕人會在任何角落里冒出來,
5、提升視野,向上發展,
一個人在職場如果經歷了很多事情,經歷了很多歲月,多半總會有點優勢,這個優勢叫做見識,你知道一個企業是怎么成,怎么敗的,你知道一個產品是怎么做起來,怎么壯大的,這就是你的競爭優勢,年輕人學的演算法再好,很多想法再優秀,沒有見識過大場面,總會缺那么一點格局和視野,
但可怕的是,很多人雖然經歷了很多事,卻沒有見識,匱乏視野,
比如簡單化,標簽化的看待問題,老板當時成功是因為運氣比較好,
比如從不關心產業和市場變化的情況,一直隨波逐流,
比如在自己的作業職能之外,毫不關心合作伙伴,上下游,同行的生存和發展話題,
當然也比如更常見的,只關心行業八卦話題,對各種巨頭老板的緋聞八卦如數家珍,對各種真真偽假的小道訊息樂此不彼,并以為這是見識,視野,
所以,當更有活力,更便宜的年輕人沖上來,他們的教育背景比你更好,他們的演算法邏輯比你更清晰,你還剩下什么,信謠傳謠的能力和素質?
還想安安靜靜當個螺絲釘?對不起,你生銹了,
總結一下,優秀的門檻越來越高,這是歷史趨勢,誰也擋不住,
但任何時代,大部分人總是會固步自封,隨波逐流,隨著歲數增長,你可能真的無法擋住優秀的年輕人超越你,但你只要肯進步,總會不斷超越那些停步不前的大多數,
另外就是廣結善緣,提升格局,不要讓自己停留在跟年輕人競爭基本戰斗能力的場景里,那樣你就很難維持競爭力了,

那些雙非/三本/專科學校的Android開發,有機會進入大廠嗎?
我自己也是非985非211學校的,結合自己的經歷以及一些朋友的經歷,我覺得讓我回答這個問題再好不過,
首先,我覺得學校歧視很正常,真的太正常了,如果要抱怨的話,你只能抱怨自己沒有進入名校,但是,千萬不要動不動說自己學校差,動不動拿自己學校當做自己進不了大廠的借口,學歷只是篩選簡歷的很多標準中的一個而已,如果你夠優秀,簡歷夠豐富,你也一樣可以和名校同學一起同臺競爭,
企業HR肯定是更喜歡高學歷的人,畢竟985,211優秀人才比例肯定比普通學校高很多,HR團隊肯定會優先在這些學校里選,這就好比相親,你是愿意在很多優秀的人中選一個優秀的,還是愿意在很多普通的人中選一個優秀的呢?
雙非本科甚至是二本、三本甚至是專科的同學也有很多進入大廠的,不過比率相比于名校的低很多而已,從大廠招聘的結果上看,高學歷人才的數量占據大頭,那些成功進入BAT、美團,京東,網易等大廠的雙非本科甚至是二本、三本甚至是專科的同學往往是因為具備豐富的專案經歷或者在某個含金量比較高的競賽比如ACM中取得了不錯的成績,一部分學歷不突出但能力出眾的面試者能夠進入大廠并不是說明學歷不重要,而是學歷的軟肋能夠通過其他的優勢來彌補,
所以,如果你的學校不夠好而你自己又想去大廠的話,建議你可以從這幾點來做:
①盡量在面試前最好有一個可以拿的出手的專案;
②有實習條件的話,盡早出去實習,實習經歷也會是你的簡歷的一個亮點(有能力在大廠實習最佳!);
③參加一些含金量比較高的比賽,拿不拿得到名次沒關系,重在鍛煉,

非計算機專業的學生能學好Android嗎?我能進大廠嗎?
當然可以!現在非科班的程式員很多,很大一部分原因是互聯網行業的工資比較高,我們學校外面的培訓班里面90%都是非科班,我覺得他們很多人學的都還不錯,另外,我的一個朋友本科是機械專業,大一開始自學安卓,技術賊溜,在我看來他比大部分本科是計算機的同學學的還要好,參考Question1的回答,即使你是非科班程式員,如果你想進入大廠的話,你也可以通過自己的其他優勢來彌補,
我覺得我們不應該因為自己的專業給自己劃界限或者貼標簽,說實話,很多科班的同學可能并不如你,你以為科班的同學就會認真聽講嗎?還不是幾乎全靠自己課下自學!不過如果你是非科班的話,你想要學好,那么注定就要舍棄自己本專業的一些學習時間,這是無可厚非的,
建議非科班的同學,首先要打好計算機基礎知識基礎:
①計算機網路
②作業系統
③資料機構與演算法
我個人覺得這3個對你最重要,這些東西就像是內功,對你以后的長遠發展非常有用,當然,如果你想要進大廠的話,這些知識也是一定會被問到的,另外,“一定學好資料機構與演算法!一定學好資料機構與演算法!一定學好資料機構與演算法!”,重要的東西說3遍,
移動端開發需要怎么增強自己的式?
首先明確一個觀點,那就是移動開發是必須有的,只要平臺在原生開發就必須有,但是渾水摸魚的日子沒有以前那么好過了,因為小程式和各種跨平臺開發讓企業有了更多的選擇,
如果你還想做界面開發,那么增強你的能力廣度是必須的,比如:
- 小程式的上手并不難,同時還有諸如 uni-app 、taro、chameleon 可以幫助上手,
- 通過學習 React-Native 來認識前端開發,學習 React、CSS、JavaScript 等相關能力,只要你會 RN 其實等同于你已經學會了小程式,
- 了解學習諸如 Flutter 、 PWA 、WebAssembly 等新的技術迭代,
當然,最后不要落下資料結構與演算法、計算機原理等基礎知識,這些才是程式員后期的競爭力,如果想要把握更多的當然你也可以學習后端開發相關的知識,

如何學習提高個人硬實力?
我在這里所說的個人硬實力更多的指的是個人的專業能力,比如構建高質量網站的能力或者是對專業知識的掌握程度,
多去實踐,將學到的東西運用到實際專案中去,很多人都找我抱怨過沒有實際專案讓自己去做,下面我會介紹到幾種讓你可以有專案經驗的方式,專案經驗對于技術能力的提升和面試都是很重要的,
想要提高個人硬實力,那么學習一門新技術的方法一定是至關重要了,
Android學習是一條漫長的道路,我們要學習的東西不僅僅只有表面的 技術,還要深入底層,弄明白下面的 原理,只有這樣,我們才能夠提高自己的競爭力,在當今這個競爭激烈的世界里立足,
如果你覺得自己學習效率低,缺乏正確的指導,可以參考下我下面分享的學習路線:
- 架構師筑基必備技能:深入Java泛型+注解深入淺出+并發編程+資料傳輸與序列化+Java虛擬機原理+反射與類加載+動態代理+高效IO
- Android高級UI與FrameWork原始碼:高級UI晉升+Framework內核決議+Android組件內核+資料持久化
- 360°全方面性能調優:設計思想與代碼質量優化+程式性能優化+開發效率優化
- 解讀開源框架設計思想:熱修復設計+插件化框架解讀+組件化框架設計+圖片加載框架+網路訪問框架設計+RXJava回應式編程框架設計+IOC架構設計+Android架構組件Jetpack
- NDK模塊開發:NDK基礎知識體系+底層圖片處理+音視頻開發
- 微信小程式:小程式介紹+UI開發+API操作+微信對接
- Hybrid 開發與Flutter:Html5專案實戰+Flutter進階

知識梳理完之后,就需要進行查漏補缺,所以針對這些知識點,我手頭上也準備了不少的電子書和筆記,這些筆記將各個知識點進行了完美的總結,

接下來分享的系統學習資源以詳解各大互聯網公司的 Android 常見面試題為主線,從面試的角度帶你介紹必備知識點,以及該知識點在專案中的實際應用,
幫你在現在的基礎上,重新梳理和建立 Android 開發的知識體系,無論是你短期內想提升 Android 內功實力,突破自己作業中的能力瓶頸,還是準備參加 Android 面試,都會在這份資料中有所一些識訓,
1.2020大廠面試高頻知識點
- 圖片
- 網路和安全機制
- 資料庫
- 插件化、模塊化、組件化、熱修復、增量更新、Gradle
- 架構設計和設計模式
- 性能優化
- Android Framework
- Android優秀三方庫原始碼

2.Jetpack架構組件從入門到精通
- Android Jetpack - Navigation
- Android Jetpack - Data Binding
- Android Jetpack - ViewModel & LiveData
- Android Jetpack - Room
- Android Jetpack - Paging
- Android Jetpack - WorkManger
- Android Jetpack架構組件之Lifecycle
- Android Jetpack Compose 最全上手指南

3.Framework精編內核決議
主要內容包含:
- 深入決議Binder
- 深入決議Handler
- Dalvik VM 行程系統
- 深入決議 WMS
- PackagerManagerService

4.Kotlin強化實戰(附Demo)
- 第一章 Kotlin入門教程
- 第二章 Kotlin 實戰避坑指南
- 第三章 專案實戰《Kotlin Jetpack 實戰》
- 從一個膜拜大神的 Demo 開始
- Kotlin 寫 Gradle 腳本是一種什么體驗?
- Kotlin 編程的三重境界
- Kotlin 高階函式
- Kotlin 泛型
- Kotlin 擴展
- Kotlin 委托
- 協程“不為人知”的除錯技巧
- 圖解協程:suspend

5.Android設計思想解讀開源框架
- 熱修復
- 插件化
- 組件化框架設計
- 圖片加載框架
- 網路請求框架
- RXJava 回應式編程框架設計
- IOC 架構設計
- Android架構組件Jetpack

6.NDK模塊開發
- NDK 模塊開發
- JNI 模塊
- Native 開發工具
- Linux 編程
- 底層圖片處理
- 音視頻開發
- 機器學習

7.Android原始碼決議
“編程語言是程式員的表達的方式,而架構是程式員對世界的認知”,所以,程式員要想快速認知并學習架構,讀原始碼是必不可少的,閱讀原始碼,是解決問題 + 理解事物,更重要的:看到原始碼背后的想法;程式員說:讀萬行原始碼,行萬種實踐,
主要內含微信 MMKV 原始碼、AsyncTask 原始碼、Volley 原始碼、Retrofit原始碼、OkHttp 原始碼等等,

以上這些內容均免費分享給大家,需要完整版的朋友,點這里可以看到全部內容,或者點擊 【這里】 查看獲取方式,
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/290916.html
標籤:其他
上一篇:iOS Widget 小組件打開其他APP?仿TopWidget快捷啟動? 附常用URL schemes
下一篇:APP穩定性測驗
