
前言
前段時間,一位計算機專業(yè)大四即將畢業(yè)的同學關注了我的公眾號,然后問了我一系列的問題,表達出他對未來的迷茫:
我是一個二本科班的應屆生,今年畢業(yè),想知道需要掌握什么樣的安卓技能才能參加工作?
我在b站上看了很多安卓的教學視頻,很多是16年左右的,內容很舊,想知道我學完這些,距離參加工作,還有哪些要去補充的?非常迷茫!
我仔細看了一下他提出的問題,歸納總結無非就是:計算機專業(yè)的應屆生,需要掌握哪些技能才能找到Android方面的工作?
我相信有這種疑惑的同學一定也不在少數(shù),那么今天我就結合我的實際經(jīng)驗,來簡單介紹一下,作為一名即將畢業(yè)的計算機專業(yè)的應屆生,我們需要做哪些功課才能幫助我們更快地找到Android相關的工作。
自我介紹
在開講之前,我先簡單地做一下自我介紹:
我是南通大學12級網(wǎng)絡工程畢業(yè),一個再普通不過的二流地方院校。16年畢業(yè),15年10月找到的實習單位參加工作,中間跳槽了幾家公司,一直從事Android相關的開發(fā)工作,目前已有5年有余。
平時喜歡逛逛github,看看掘金,有空就維護一下github上的開源項目,沒空就寫寫文章,發(fā)發(fā)牢騷,是個再普通不過的屌絲程序猿。
說了我的這些經(jīng)歷,無非就是想告訴大家:我一個普通二流本科生能做到的,大家也一定能做到。所以大家不必擔心,只要你能夠按照我的指導去做的話,你一定可以比我更加優(yōu)秀!
掌握扎實的基本功
俗話說:基礎不牢,地動山搖。
作為應屆生,由于沒有什么實際的項目經(jīng)驗,所以在面試過程中,用人單位會更看重應屆生的基礎知識掌握程度以及發(fā)展?jié)撡|。
所以,作為一名應屆生,我們一定要把基本功的提升放在首位。那么要想成為一名Android開發(fā)者,我們需要著重掌握哪些內容呢?
- 基礎學科知識。如計算機組成原理、數(shù)據(jù)結構、計算機網(wǎng)絡、操作系統(tǒng)、數(shù)據(jù)庫設計、數(shù)字電路等。這些科目向我們介紹了計算機的工作原理,掌握了這些就可以幫助我們更好地理解程序的本質。
- Java基礎知識。包括語言的特性、語法、規(guī)范等。例如:Java數(shù)據(jù)類型、運算符、面向對象、集合類、泛型、注解、反射、多線程并發(fā)、Java虛擬機、設計模式等內容。
- Android基礎知識。例如:Android四大組件、Activity的生命周期以及啟動模式、動畫、自定義View、Android不同版本的特性、SQLite、內存泄漏、ANR、Context、Handler機制、View繪制渲染機制、事件分發(fā)機制等內容。
如果我們能夠牢牢地掌握上面列舉的內容,那么外面的公司絕對是搶著要你的。
認清學校與社會的差距
不要天真地認為把學校里學到的東西都學會了就可以順利找到工作了,當然也不要認為學校里學的都是些沒有用的東西。
作為一名應屆生,我們非常有必要認清學校與社會存在的差距。
學校里教的都是些非常重要且基礎的東西,我稱之為專業(yè)素養(yǎng)。這些東西非常重要,它直接決定了我們日后發(fā)展的天花板在哪里。
社會上教的都是些具體工作領域方面的知識,我稱之為職業(yè)技能。這些內容可以幫助我們更好地完成工作。
所以,我們除了要把學校里學的內容打扎實,還需要盡早地接觸社會,找到對口的實習工作,掌握必要的職業(yè)技能。
我們在找實習單位的時候,可以參考以下幾點:
- 無論是大廠還是小廠,進去都會有所收獲。進大廠我們可以收獲不錯的履歷和人脈(這非常有用),學習到優(yōu)秀的管理制度和流程控制,提高技術的深度。而在小廠可以磨練你的意志、獲得更多主導的機會、更大的自由度,拓展技術的廣度等。
- 第一家實習單位可能極大影響個人的職場觀和價值觀,選擇時需慎重。切忌去小微企業(yè)或者創(chuàng)業(yè)型公司,因為這類公司每天都可能徘徊在倒閉的邊緣上,所以并不會重視人才的培養(yǎng)。
- 在選擇實習單位的時候,要多了解和掌握企業(yè)的信息,走正規(guī)渠道。不正規(guī)不可靠的千萬別去;入職前,以任何借口讓你交錢的公司不要去。
提高自己的動手能力
做技術搞開發(fā)的,動手能力永遠是需要作為首要能力進行培養(yǎng)的。除非你是業(yè)內公認的技術大佬,否則秀出你的代碼才是證明你實力的最佳方式。
很多小白在入門某一項語言或者技術的時候,通常都是購買網(wǎng)課或者買一本入門書籍翻看,抄一抄視頻或者書中的源碼,就天真地以為自己已經(jīng)徹底掌握了。他們殊不知,這些只是一些皮毛而已,當條件稍微發(fā)生一點變化的時候,他們就徹底懵逼,手足無措了。
那么怎樣才能擺脫這樣的困境呢?其實非常簡單,多敲代碼,多練習,多思考,熟能生巧嘛。
下面我簡單舉幾個例子,給大家一點啟發(fā):
- 假如你今天學了Android如何自定義View控件,那么你就可以按照自己的想法寫一個Android尚未提供給我們的控件或者是仿xxx的控件等。
- 假如你今天學了Android的事件分發(fā)機制,那么你就可以嘗試著解決幾個層級較為復雜的事件沖突問題。
- 假如你今天學了Google提供給我們進行應用開發(fā)的Jetpack框架組件,那么你就可以嘗試用這個Jetpack組件去寫個屬于自己的app。
如何提高自己的動手能力
正如Linux之父的那句"Talk is cheap. Show me the code.",嘴上說千遍,也不如直接上代碼擼一遍更加令人印象深刻。
說到這兒,可能又有朋友想問了:對于一個從來就沒有具體項目經(jīng)驗的人來說,該從何做起呢?
這里我還是推薦大家多到github或者gitee這種開源代碼托管平臺去找一些優(yōu)秀的開源項目,這些項目很多都是歷經(jīng)了各種復雜業(yè)務考驗的高價值項目,臨摹他們的代碼,可以極大地提升我們的技術水平和編碼水平。
那么當初我是怎么鍛煉我的編碼能力的呢?下面我就簡單介紹一下供大家參考:
- 1.首先到開源代碼托管平臺尋找到適合自己的目標項目。
- 2.閱讀項目的代碼,初步了解項目的實現(xiàn)原理以及架構。
- 3.自己新建一個項目,然后按照自己的理解去自己實現(xiàn)一個類似的項目,不懂的時候可以借鑒或者copy目標項目的代碼(目標項目就類似于參考答案)。
- 4.最低的要求是能夠正常運行并且實現(xiàn)目標項目的主要功能,要求高一點的就是能夠有一些屬于自己的優(yōu)化點或者特性等。
- 5.最后對自己做的這個項目進行歸納總結,優(yōu)秀一點的可以寫一篇README介紹或者原理分析。
如果你能夠按照我上面所說的,來回寫個4~5個項目之后,相信你的動手能力一定會有質的飛躍。
最后
在這里,我想給新手朋友們一點建議:很多時候,很多事情,并不像你想象中的那么簡單,千萬不要自認為簡單而不愿意去做,很多東西只有你親手去做了之后,才會發(fā)現(xiàn)事情并不像你最初想的那么簡單。
我是xuexiangjys,一枚熱愛學習,愛好編程,致力于Android架構研究以及開源項目經(jīng)驗分享的技術up主。獲取更多資訊,歡迎微信搜索公眾號:【我的Android開源之旅】