如何成爲一名合格的Android開發工程師? 前言 自我介紹 掌握紮實的基本功 認清學校與社會的差距 提高自己的動手能力 如何提高自己的動手能力 最後

作者:xuexiangjys

前言

前段時間,一位計算機專業大四即將畢業的同學關注了我,然後問了我一系列的問題,表達出他對未來的迷茫:

我是一個二本科班的應屆生,今年畢業,想知道需要掌握什麼樣的安卓技能才能參加工作? 我在b站上看了很多安卓的教學視頻,很多是16年左右的,內容很舊,想知道我學完這些,距離參加工作,還有哪些要去補充的?非常迷茫!

我仔細看了一下他提出的問題,歸納總結無非就是:計算機專業的應屆生,需要掌握哪些技能才能找到Android方面的工作?

我相信有這種疑惑的同學一定也不在少數,那麼今天我就結合我的實際經驗,來簡單介紹一下,作爲一名即將畢業的計算機專業的應屆生,我們需要做哪些功課才能幫助我們更快地找到Android相關的工作。

自我介紹

在開講之前,我先簡單地做一下自我介紹:

我是南通大學12級網絡工程畢業,一個再普通不過的二流地方院校。16年畢業,15年10月找到的實習單位參加工作,中間跳槽了幾家公司,一直從事Android相關的開發工作,目前已有5年有餘。

平時喜歡逛逛github,看看掘金,有空就維護一下github上的開源項目,沒空就寫寫文章,發發牢騷,是個再普通不過的屌絲程序猿。

說了我的這些經歷,無非就是想告訴大家:我一個普通二流本科生能做到的,大家也一定能做到。所以大家不必擔心,只要你能夠按照我的指導去做的話,你一定可以比我更加優秀!

掌握紮實的基本功

俗話說:基礎不牢,地動山搖

作爲應屆生,由於沒有什麼實際的項目經驗,所以在面試過程中,用人單位會更看重應屆生的基礎知識掌握程度以及發展潛質。

所以,作爲一名應屆生,我們一定要把基本功的提升放在首位。那麼要想成爲一名Android開發者,我們需要着重掌握哪些內容呢?

  • 基礎學科知識。如計算機組成原理、數據結構、計算機網絡、操作系統、數據庫設計、數字電路等。這些科目向我們介紹了計算機的工作原理,掌握了這些就可以幫助我們更好地理解程序的本質。
  • Java基礎知識。包括語言的特性、語法、規範等。例如:Java數據類型、運算符、面向對象、集合類、泛型、註解、反射、多線程併發、Java虛擬機、設計模式等內容。
  • Android基礎知識。例如:Android四大組件、Activity的生命週期以及啓動模式、動畫、自定義View、Android不同版本的特性、SQLite、內存泄漏、ANR、Context、Handler機制、View繪製渲染機制、事件分發機制等內容。

如果我們能夠牢牢地掌握上面列舉的內容,那麼外面的公司絕對是搶着要你的。

認清學校與社會的差距

不要天真地認爲把學校裏學到的東西都學會了就可以順利找到工作了,當然也不要認爲學校裏學的都是些沒有用的東西。

作爲一名應屆生,我們非常有必要認清學校與社會存在的差距。

  • 學校裏教的都是些非常重要且基礎的東西,我稱之爲專業素養。這些東西非常重要,它直接決定了我們日後發展的天花板在哪裏。
  • 社會上教的都是些具體工作領域方面的知識,我稱之爲職業技能。這些內容可以幫助我們更好地完成工作。

所以,我們除了要把學校裏學的內容打紮實,還需要儘早地接觸社會,找到對口的實習工作,掌握必要的職業技能。

我們在找實習單位的時候,可以參考以下幾點:

  • 無論是大廠還是小廠,進去都會有所收穫。進大廠我們可以收穫不錯的履歷和人脈(這非常有用),學習到優秀的管理制度和流程控制,提高技術的深度。而在小廠可以磨練你的意志、獲得更多主導的機會、更大的自由度,拓展技術的廣度等。
  • 第一家實習單位可能極大影響個人的職場觀和價值觀,選擇時需慎重。切忌去小微企業或者創業型公司,因爲這類公司每天都可能徘徊在倒閉的邊緣上,所以並不會重視人才的培養。
  • 在選擇實習單位的時候,要多瞭解和掌握企業的信息,走正規渠道。不正規不可靠的千萬別去;入職前,以任何藉口讓你交錢的公司不要去。

提高自己的動手能力

做技術搞開發的,動手能力永遠是需要作爲首要能力進行培養的。除非你是業內公認的技術大佬,否則秀出你的代碼纔是證明你實力的最佳方式。

很多小白在入門某一項語言或者技術的時候,通常都是購買網課或者買一本入門書籍翻看,抄一抄視頻或者書中的源碼,就天真地以爲自己已經徹底掌握了。他們殊不知,這些只是一些皮毛而已,當條件稍微發生一點變化的時候,他們就徹底懵逼,手足無措了。

那麼怎樣才能擺脫這樣的困境呢?其實非常簡單,多敲代碼,多練習,多思考,熟能生巧嘛。

下面我簡單舉幾個例子,給大家一點啓發:

  • 假如你今天學了Android如何自定義View控件,那麼你就可以按照自己的想法寫一個Android尚未提供給我們的控件或者是仿xxx的控件等。
  • 假如你今天學了Android的事件分發機制,那麼你就可以嘗試着解決幾個層級較爲複雜的事件衝突問題。
  • 假如你今天學了Google提供給我們進行應用開發的Jetpack框架組件,那麼你就可以嘗試用這個Jetpack組件去寫個屬於自己的app。

如何提高自己的動手能力

正如Linux之父的那句"Talk is cheap. Show me the code.",嘴上說千遍,也不如直接上代碼擼一遍更加令人印象深刻。

說到這兒,可能又有朋友想問了:對於一個從來就沒有具體項目經驗的人來說,該從何做起呢?

這裏我還是推薦大家多到github或者gitee這種開源代碼託管平臺去找一些優秀的開源項目,這些項目很多都是歷經了各種複雜業務考驗的高價值項目,臨摹他們的代碼,可以極大地提升我們的技術水平和編碼水平。

那麼當初我是怎麼鍛鍊我的編碼能力的呢?下面我就簡單介紹一下供大家參考:

  1. 首先到開源代碼託管平臺尋找到適合自己的目標項目。
  2. 閱讀項目的代碼,初步瞭解項目的實現原理以及架構。
  3. 自己新建一個項目,然後按照自己的理解去自己實現一個類似的項目,不懂的時候可以借鑑或者copy目標項目的代碼(目標項目就類似於參考答案)。
  4. 最低的要求是能夠正常運行並且實現目標項目的主要功能,要求高一點的就是能夠有一些屬於自己的優化點或者特性等。
  5. 最後對自己做的這個項目進行歸納總結,優秀一點的可以寫一篇README介紹或者原理分析。

如果你能夠按照我上面所說的,來回寫個4~5個項目之後,相信你的動手能力一定會有質的飛躍。

最後

在這裏,我想給新手朋友們一點建議:很多時候,很多事情,並不像你想象中的那麼簡單,千萬不要自認爲簡單而不願意去做,很多東西只有你親手去做了之後,纔會發現事情並不像你最初想的那麼簡單。


在這裏我還分享一份收錄整理的Android學習PDF+架構視頻+面試文檔+源碼筆記高級架構技術進階腦圖、Android開發面試專題資料,高級進階架構資料

這些都是我現在閒暇時還會反覆翻閱的精品資料。裏面對近幾年的大廠面試高頻知識點都有詳細的講解。相信可以有效地幫助大家掌握知識、理解原理,幫助大家在面試季取到一份不錯的答卷。

當然,你也可以拿去查漏補缺,提升自身的競爭力。

如果你有需要的話,可以前往GitHub自行領取

喜歡本文的話,不妨順手給我點個贊、評論區留言或者轉發支持一下唄~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章