自學(xué)Android到什么程度才能找到工作?
其實(shí)不管你是自學(xué)的還是培訓(xùn)的,是在校生還是畢業(yè)生,最終都逃離不開(kāi)這個(gè)話題,不管你是找實(shí)習(xí)工作還是全職工作,性質(zhì)都一樣。今天我就來(lái)給大家詳細(xì)說(shuō)下自學(xué) Android 到什么程度才有資格找到一份說(shuō)得過(guò)去的工作!
1、Java基礎(chǔ)
Java語(yǔ)言其實(shí)應(yīng)用很廣泛,對(duì)于Android開(kāi)發(fā)來(lái)說(shuō)只需要你掌握 Java SE 就夠了,尤其對(duì)于一個(gè)Android初學(xué)者只需要掌握J(rèn)ava基礎(chǔ)就行,這包括哪些呢?我粗略的列了下,主要包括:
Java基本語(yǔ)法、面向?qū)ο笙嚓P(guān)的基本概念與思想,常用String類(lèi)的api,異常處理,IO基礎(chǔ),容器,多線程,內(nèi)存管理與垃圾回收, 知道并***知道幾種常見(jiàn)的 Java 設(shè)計(jì)模式等,建議可以找些網(wǎng)上Java面試寶典之類(lèi)的文章,熟悉下面試常遇到的一些Java知識(shí)點(diǎn),一般都是Java基礎(chǔ)。
2、Android基礎(chǔ)
Java 如果算基礎(chǔ)中的基礎(chǔ),那這部分才是你找工作的核心技能,畢竟你要從事的是Android開(kāi)發(fā),所以Android基礎(chǔ)一定要牢固,這部分包括:
Android基礎(chǔ)UI控件的熟練掌握,也就是指 Button、TextView、EditText、CheckBox、RadioButton、ImageView、Spinner、ProgressBar、SeekBar、ListView、RecycleView、ScrollView等,可能不全,以上只是一時(shí)想到的,可自行補(bǔ)充。
Android四大組件的理解與熟練掌握,四大組件就不必說(shuō)了吧,具體掌握到什么程度呢?如果我問(wèn)到「Activity的生命周期」你還支支吾吾的那我就沒(méi)心情繼續(xù)問(wèn)下去了,其他一些如Activity的四種啟動(dòng)模式,F(xiàn)ragment的生命周期、Fragment與Activity之間的關(guān)系,BroadcastReceiver、ContentProvider、Service的使用場(chǎng)景與具體用法,更細(xì)節(jié)點(diǎn)的如 BroadcastReceiver 的廣播類(lèi)型與不同的注冊(cè)方式的區(qū)別等都應(yīng)該關(guān)注并理解到位。
動(dòng)畫(huà)相關(guān)也是必須掌握的,不管是矢量動(dòng)畫(huà)還是屬性動(dòng)畫(huà)的api都應(yīng)該熟練,一些簡(jiǎn)單的動(dòng)畫(huà)應(yīng)該隨手就能寫(xiě)出來(lái)才行。
自定義View得會(huì)吧?這個(gè)在實(shí)際的開(kāi)發(fā)中經(jīng)常遇到,因?yàn)榛镜哪切︰I控件不可能完全滿足你的需求。
Sqlite與SQL語(yǔ)句得掌握吧,數(shù)據(jù)庫(kù)雖然說(shuō)在客戶端開(kāi)發(fā)上只有特定的業(yè)務(wù)或者場(chǎng)景才用得到,但是SQL語(yǔ)句這是基礎(chǔ),基本的操作sqlite相關(guān)的api也必須要掌握。
常見(jiàn)的數(shù)據(jù)格式與解析方法得了解吧,雖然目前常用的數(shù)據(jù)格式就是json,解析庫(kù)也有很多,如Gson、Jackson、Fastjson等。
網(wǎng)絡(luò)編程相關(guān)的基礎(chǔ)知識(shí)要掌握,如http協(xié)議相關(guān),如http method, status code, request & response, http cache, request header, params等,Android請(qǐng)求網(wǎng)絡(luò)相關(guān)的api,雖然現(xiàn)在成熟的網(wǎng)絡(luò)請(qǐng)求庫(kù)很多,但是自己應(yīng)該試著用 HttpUrlConnection 封裝一個(gè)網(wǎng)絡(luò)庫(kù),哪怕封裝的很爛,自己也要嘗試著寫(xiě)一下。
還有...暫時(shí)想不到了,以上都是隨手想到的,后面如果再想到就補(bǔ)充下。
3、項(xiàng)目經(jīng)驗(yàn)
其實(shí)大部分人都覺(jué)得自己的基礎(chǔ)掌握的還算可以,但是為什么就找不到一份工作呢?其實(shí)項(xiàng)目經(jīng)驗(yàn)這個(gè)才是很關(guān)鍵的,因?yàn)榫幊绦袠I(yè)是一個(gè)非常注重能力的行業(yè),你理論基礎(chǔ)掌握的再好,沒(méi)有實(shí)踐驗(yàn)證都是不可靠的。
那有些人又說(shuō)了,我一個(gè)自學(xué)的,或者一個(gè)在校生,沒(méi)有工作過(guò)哪來(lái)的項(xiàng)目經(jīng)驗(yàn)啊?那你就錯(cuò)了,項(xiàng)目經(jīng)驗(yàn)并不單純指工作中的項(xiàng)目經(jīng)驗(yàn),你自己完全可以寫(xiě)一個(gè)業(yè)余練手項(xiàng)目,這都可以算作項(xiàng)目經(jīng)驗(yàn)。
但是這些練手項(xiàng)目哪里來(lái)呢?我只會(huì)寫(xiě)Android,其他都不會(huì)啊,哪那么容易就寫(xiě)一個(gè)項(xiàng)目出來(lái)了?
在現(xiàn)在這個(gè)時(shí)代隨便寫(xiě)一個(gè)項(xiàng)目練手還真的非常容易,現(xiàn)在有各種開(kāi)放的api,你完全不用關(guān)心后端數(shù)據(jù)問(wèn)題,舉個(gè)例子,新浪微博有api,我就基于新浪微博api寫(xiě)個(gè)簡(jiǎn)單的微博客戶端,有多簡(jiǎn)單呢?我甚至只能查看微博,其他啥都干不了,完成了查看這一步,再接著慢慢完善其他功能,不要覺(jué)得寫(xiě)一個(gè)微博客戶端遙不可及。如果微博需要登錄授權(quán),可能稍難點(diǎn),有更簡(jiǎn)單的直接讀取數(shù)據(jù)的,如知乎日?qǐng)?bào),如對(duì)糗百進(jìn)行數(shù)據(jù)抓包,寫(xiě)一個(gè)糗百的簡(jiǎn)易客戶端,這類(lèi)就完全不用授權(quán),再比如我寫(xiě)個(gè)天氣的客戶端,關(guān)于天氣現(xiàn)成的接口不要太多。
至于我怎么知道有哪些現(xiàn)成的api可以直接用?就知道你要問(wèn)這個(gè)問(wèn)題,給你找好了,百毒有個(gè)api store,收集了太多可以直接用的開(kāi)放api,地址:http://apistore.baidu.com/
(PS:別借機(jī)黑我,抵制百毒不代表百毒的所有東西都是垃圾,有一說(shuō)一,這個(gè) api store 對(duì)開(kāi)發(fā)者來(lái)說(shuō)還是蠻不錯(cuò)的!)
***,可能不是特別詳細(xì),如果我有時(shí)間,我甚至都想搞份超詳細(xì)的教程課表給你們,可惜精力真的有限,沒(méi)那么多時(shí)間去做。但是大的方向絕對(duì)ok的,如果你掌握了以上列舉的基礎(chǔ),然后又自己從頭到尾做了一個(gè)還算完整的項(xiàng)目,相信我,找到一份實(shí)習(xí)或者工作很輕松。如果你沒(méi)找到,那可能只是運(yùn)氣跟機(jī)會(huì)的問(wèn)題罷了,自己有能力完全不用擔(dān)心,只是機(jī)會(huì)還沒(méi)到,缺的只是時(shí)間而已!
最***覺(jué)得本文對(duì)你有幫助再贊賞,這是我堅(jiān)持原創(chuàng)干貨分享的***動(dòng)力,但是贊賞的人不承諾有任何福利,請(qǐng)慎重!
本文由51CTO專(zhuān)欄作者stormzhang原創(chuàng),作者微信公眾號(hào): AndroidDeveloper。