自學Android到什麼程度才能找到工作?
本文原創發佈於微信公眾號 AndroidDeveloper「googdev」,轉載請務必註明出處!
最近公眾號上問我這個問題的比較多,比例如此之高,想著可能很多人都有這個疑問,姑且就單獨寫篇文章給你們解答下。
其實不管你是自學的還是培訓的,是在校生還是畢業生,最終都逃離不開這個話題,不管你是找實習工作還是全職工作,性質都一樣。今天我就來給大家詳細說下自學 Android 到什麼程度才有資格找到一份說得過去的工作!
1. Java基礎
Java語言其實應用很廣泛,對於Android開發來說只需要你掌握 Java SE 就夠了,尤其對於一個Android初學者只需要掌握Java基礎就行,這包括哪些呢?我粗略的列了下,主要包括:
Java基本語法、面向對象相關的基本概念與思想,常用String類的api,異常處理,IO基礎,容器,多線程,內存管理與垃圾回收, 知道並最好知道幾種常見的 Java 設計模式等,建議可以找些網上Java面試寶典之類的文章,熟悉下面試常遇到的一些Java知識點,一般都是Java基礎。
2. Android基礎Java 如果算基礎中的基礎,那這部分才是你找工作的核心技能,畢竟你要從事的是Android開發,所以Android基礎一定要牢固,這部分包括:
Android基礎UI控制項的熟練掌握,也就是指 Button、TextView、EditText、CheckBox、RadioButton、ImageView、Spinner、ProgressBar、SeekBar、ListView、RecycleView、ScrollView等,可能不全,以上只是一時想到的,可自行補充。
Android四大組件的理解與熟練掌握,四大組件就不必說了吧,具體掌握到什麼程度呢?如果我問到「Activity的生命周期」你還支支吾吾的那我就沒心情繼續問下去了,其他一些如Activity的四種啟動模式,Fragment的生命周期、Fragment與Activity之間的關係,BroadcastReceiver、ContentProvider、Service的使用場景與具體用法,更細節點的如 BroadcastReceiver 的廣播類型與不同的註冊方式的區別等都應該關注並理解到位。
動畫相關也是必須掌握的,不管是矢量動畫還是屬性動畫的api都應該熟練,一些簡單的動畫應該隨手就能寫出來才行。
自定義View得會吧?這個在實際的開發中經常遇到,因為基本的那些UI控制項不可能完全滿足你的需求。
Sqlite與SQL語句得掌握吧,資料庫雖然說在客戶端開發上只有特定的業務或者場景才用得到,但是SQL語句這是基礎,基本的操作sqlite相關的api也必須要掌握。
常見的數據格式與解析方法得了解吧,雖然目前常用的數據格式就是json,解析庫也有很多,如Gson、Jackson、Fastjson等。
屏幕適配與性能優化相關知識與技能你得了解吧?
網路編程相關的基礎知識要掌握,如http協議相關,如http method, status code, request & response, http cache, request header, params等,Android請求網路相關的api,雖然現在成熟的網路請求庫很多,但是自己應該試著用 HttpUrlConnection 封裝一個網路庫,哪怕封裝的很爛,自己也要嘗試著寫一下。
還有...暫時想不到了,以上都是隨手想到的,後面如果再想到就補充下。
其實大部分人都覺得自己的基礎掌握的還算可以,但是為什麼就找不到一份工作呢?其實項目經驗這個才是很關鍵的,因為編程行業是一個非常注重能力的行業,你理論基礎掌握的再好,沒有實踐驗證都是不可靠的。
那有些人又說了,我一個自學的,或者一個在校生,沒有工作過哪來的項目經驗啊?那你就錯了,項目經驗並不單純指工作中的項目經驗,你自己完全可以寫一個業餘練手項目,這都可以算作項目經驗。
但是這些練手項目哪裡來呢?我只會寫Android,其他都不會啊,哪那麼容易就寫一個項目出來了?
在現在這個時代隨便寫一個項目練手還真的非常容易,現在有各種開放的api,你完全不用關心後端數據問題,舉個例子,新浪微博有api,我就基於新浪微博api寫個簡單的微博客戶端,有多簡單呢?我甚至只能查看微博,其他啥都幹不了,完成了查看這一步,再接著慢慢完善其他功能,不要覺得寫一個微博客戶端遙不可及。如果微博需要登錄授權,可能稍難點,有更簡單的直接讀取數據的,如知乎日報,如對糗百進行數據抓包,寫一個糗百的簡易客戶端,這類就完全不用授權,再比如我寫個天氣的客戶端,關於天氣現成的介面不要太多。
至於我怎麼知道有哪些現成的api可以直接用?就知道你要問這個問題,給你找好了,百毒有個api store,收集了太多可以直接用的開放api,地址:API Store_為開發者提供最全面的API服務
(PS:別藉機黑我,抵制百毒不代表百毒的所有東西都是垃圾,有一說一,這個 api store 對開發者來說還是蠻不錯的!)
最後,可能不是特別詳細,如果我有時間,我甚至都想搞份超詳細的教程課表給你們,可惜精力真的有限,沒那麼多時間去做。但是大的方向絕對ok的,如果你掌握了以上列舉的基礎,然後又自己從頭到尾做了一個還算完整的項目,相信我,找到一份實習或者工作很輕鬆。如果你沒找到,那可能只是運氣跟機會的問題罷了,自己有能力完全不用擔心,只是機會還沒到,缺的只是時間而已!
推薦閱讀:
※freecodecamp中的16道Basic Algorithm Scripting
※Web 後端第 7 期、Web 前端第 6 期報名公告
※百分比進度條
※我的「自學編程」過程