程式設計師最大的底氣來自於自身的技術,不想被淘汰就一起來進階 Android吧!

Android-until發表於2020-11-24

文章中只是單純的分析個人對 Android 工程師成長的看法和認知。

1、背景 - 迷茫

工作 2-3 年之後,你會發現自己會迷茫,這種狀態就是好像現在的工作我好像都會做了,好像沒有意思了。這種迷茫源自你對現有的階段的認識不夠全面,我自認為我也在這個一階段,很多時候覺得 Android 就那麼回事。總是會有覺得 Android 窮途末路的意思。如果你真的對這個行業沒有了興致了的話,那確實不是我這麼一段話能夠改變你的想法的。但是我個人相信一句話:

如果你能當前的行業做的不錯,那麼你去到其他的行業也不會差。

我總是相信成功的人的特性總是有那麼一些相似。如果你能在這個行業能夠做的好好的,我是有理由相信你去到其他領域肯定也是 OK 的。

在我看來,2-3 年經驗的我們能夠應付一般的工作需求。也能夠比較快完成工作上的東西,此刻更是我們去搭建我們自己的個人知識體系的最好的年限了。

2、市場需求分析(個人分析)

從目前市場需求反饋來看:

  1. Android 的人才需求確實在減少,而且人才需求的減少的速度確實是小於人才供給速度的,現在不管是高校還是線下培訓機構基本上不再輸出 Android 初級工程師,有一些個人會提供中高階進階培訓。無疑是把進入這個行業的人入口減少了很多。

  2. Android 的發展越來越領域化和多元化。現在的 Android 的應用到很多不同領域,比如車聯網、機器人、人工智慧語音助手等。方向越來越細。就當前應用層都可以分為兩個大方向:大前端和多媒體。

  3. 現在市場對 Android 的人才需求也越來越高,不再是以前會四大元件、五大布局就可以做事的那種狀態。隨便翻翻招聘簡歷,都是需要設計模式、資料結構、網路程式設計、framework等要求。

  4. 肯定有更多我個人沒有了解的東西...

3.面對這樣的情況我們如何們面對?

貌似所有的人都在說今年的大環境不好,很多大公司在裁員。面對各種市場資訊和需求,做為大浪中的我們,如何面對當前的狀況。哈哈哈....我只是想說學,往死裡學,只要學不死就往死裡學。所以這裡我給大家分享一下我個人推薦的一些資料及學習資料(僅供參考)

1. 網路程式設計

網路程式設計其實對於我們應用端的工程師貌似用的不多,但是其實我覺得學習之後,你會對協議這個東西的概念以及相關協議的設計有一個新的認識。而且會給你思考 很多問題的方式提供一個新的角度。而且這種協議層次的東西,不會存在太快的技術更新的。

推薦書籍:

基礎-《網路是怎樣連線的》
進階《TCP/IP詳解》

2. 設計模式

設計模式的重要性我想大家應該都知道。目前應該是隻要是面嚮物件語言,都會有設計模式,不分語言的。這是一種程式設計的思維的高度。但是我之前聽了一個大牛說過,不要為了模式去程式設計,最好的狀態應該是程式設計的時候,自然而然的就直接是在運用設計模式, 關於設計模式網上的資料蠻多的,所以直接去找,這裡我推薦兩本比較好懂的一點書.

《大話設計模式》
《Head First設計模式》
《Android 原始碼設計模式解析與實戰》

3. 資料結構與演算法

關於資料結構,其實倒也沒有特別多推薦,瞭解的不是那麼多,但是我覺得如果是基礎入門的話可以考慮,本人都是在看這本書入門的。

《大話資料結構》
《演算法導論》 - 聽說這本書很厲害,但是沒有拜讀過。

4. Java 基礎

Java 基礎是我們做 Android 的命根子,哪怕你以後想做後端那也是必須要好好學的東西。這裡我覺得不需要說什麼了,有幾本書必須推薦的。

《Head First Java》 很基礎,比較詳細
《Java 程式設計思想》(Thinking in Java)超級詳細。IO、執行緒、網路程式設計等全部有而且很細,但是很厚
《Effective Java》 這是一本深入到 Java 細節講解的東西

5. JVM虛擬機器

虛擬機器的部分主要是作為個人的技術看法和深度去研究吧。但是也是推薦一本

《深入理解 Java 虛擬機器》

6. Android 進階

Android 這邊我就比較常規的推薦了。基礎類的兩本書本人都是有拜讀過的,真的很好。也許你也讀過,底層進階的確實還沒有來得及去看。

A. 基礎補充

《Andorid 進階之光》
《Andorid 開發藝術與探索》

B. 底層進階

《Andoird 進階解密》-針對高階 Android 程式設計師面試的知識點書,比較有深度了
《深入理解Android核心設計思想》 這是兩本很牛逼的書,暫時沒有時間和能力去拜讀。

除了以上的書籍針對技術進階之外,個人還推薦一些粗略讀過的書。

接下來來看看有一些進階學習的方向:

鑽研技術

首先來看看 Android 有哪些方向,列舉幾個常見的:

  • 應用層開發,日常業務開發,主要還是原生開發,就業方向基本飽和,大部分只招高階工程師;
  • 遊戲開發,相比應用開發更吃香,有 Unity-3D 等遊戲引擎;
  • 跨平臺,比如 Flutter、RN,從成本上考慮,跨平臺是個不錯的選擇,我們 Android 有必要密切關注下;
  • 安全開發,一些對安全性很高,比如銀行專案,熟悉 Https、支付密碼安全、應用加固等;
  • SDK 開發,將應用裡的部分功能獨立了出來,封裝成 SDK 提供給合作伙伴使用;
  • 音視訊開發,比如音視訊直播/點播功能,則需要了解音視訊編解碼的傳輸協議,編解碼方式等;
  • 圖形開發,比如美圖、天天P圖,對圖形處理要求十分高;
    Framework 開發,手機廠商定製手機為主,比如小米、魅族等;
  • 驅動開發,同上,更多是在和 Linux 打交道;
  • 如果你對技術感興趣,想做到專家級別,可以在以上這些方面深究下去,總之,勞資有技術,不怕沒飯吃。

如果你不知道怎麼學習,我給大家提供一個方向,進行體系化的學習!

除了上面的學習路線,還給大家整理了一份Android進階學習資料,主要為安卓相關知識點及面試資料為主,在這個PDF中,通過詳解各大網際網路公司的 Android 常見面試題為主線,從面試的角度帶你介紹必備知識點,以及該知識點在專案中的實際應用。

幫你在現在的基礎上,重新梳理和建立 Android 開發的知識體系。無論是你短期內想提升 Android 內功實力,突破自己工作中的能力瓶頸,還是準備參加 Android 面試,都會在這個PDF中有所收穫。一些基礎不好的,這裡也有一份安卓基礎資料包,幫助鞏固基礎。

以下是這份PDF主要內容

  • Android 核心技術:介紹 Android 開發中常用的核心技術,比如自定義 View、Handler,以及一些開源框架的原理實現,來夯實你的底層能力。只有底層能力足夠出色,之後的進階之路才會更加輕鬆。
  • 常見問題剖析:介紹一些專案中常見的疑難問題,使你能夠對現有專案做出合理的重構優化。

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

通過原始碼來系統性地學習

只要是程式設計師,不管是Java還是Android,如果不去閱讀原始碼,只看API文件,那就只是停留於皮毛,這對我們知識體系的建立和完備以及實戰技術的提升都是不利的。

真正最能鍛鍊能力的便是直接去閱讀原始碼,不僅限於閱讀各大系統原始碼,還包括各種優秀的開源庫。

閱讀前輩的一些技術筆記

刷題備戰,直通大廠

歷時半年,我們整理了這份市面上最全面的安卓面試題解析大全。

1.可以通過目錄索引直接翻看需要的知識點,查漏補缺。
2.五角星數表示面試問到的頻率,代表重要推薦指數

以上文章中的資料,均可以免費分享給大家來學習,無論你是零基礎還是工作多年,現在開始就不會晚。

以上內容均放在了開源專案:github 中已收錄,裡面包含不同方向的自學Android路線、面試題集合/面經、及系列技術文章等,資源持續更新中...

學習技術是一條慢長而艱苦的道路,不能靠一時激情,也不是熬幾天幾夜就能學好的,必須養成平時努力學習的習慣。所以:貴在堅持!

心裡話

隨著年齡的增長意味著我們的時間也越來越少了,所以我們自己心裡要明白自己該做什麼?

渾渾噩噩,最後自己只會被淘汰。

當然,我們程式設計師,最大的底氣就是技術!

所以,如果你只想在技術這條路上越走越遠,一定要進階,邁上一個高的臺階!

希望我們在開發的路上越走越遠,一起來進階吧。

偏執的我們可能不一定能夠總是被理解,但是我們總是能夠創造我們的價值。

相關文章