自學 Android 什麼程度可以找工作?

我工作不到半年,有c/c++,java基礎,自學android半個多月,網上視頻看了一篇,代碼對著敲了一遍,android官網api guides的UI和組件大概看了一遍,感覺離應聘的條件差很遠,公司一般招什麼程度的人呢?

*******

我也有同樣的疑慮,我自學Android開發已經八個月了,不過我是完全從零基礎開始的,基本上控制項布置、Sqlite、Service等都比較熟悉了,自己也獨立完成一款APP,把自己所學的都融入到裡面,已經投了不少的簡歷,但回應的寥寥無幾,現在也有點茫然,也不知道該繼續學習到哪種水平,比較好找工作……

希望有經驗的過來人出來解惑


最近我公眾號剛好不少人問我這個問題,昨天剛好寫了篇文章解答,反響挺強烈的,直接在這裡貼出原文吧!

原文:

其實不管你是自學的還是培訓的,是在校生還是畢業生,最終都逃離不開這個話題,不管你是找實習工作還是全職工作,性質都一樣。今天我就來給大家詳細說下自學 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 封裝一個網路庫,哪怕封裝的很爛,自己也要嘗試著寫一下。

還有...暫時想不到了,以上都是隨手想到的,後面如果再想到就補充下。

3. 項目經驗

其實大部分人都覺得自己的基礎掌握的還算可以,但是為什麼就找不到一份工作呢?其實項目經驗這個才是很關鍵的,因為編程行業是一個非常注重能力的行業,你理論基礎掌握的再好,沒有實踐驗證都是不可靠的。

那有些人又說了,我一個自學的,或者一個在校生,沒有工作過哪來的項目經驗啊?那你就錯了,項目經驗並不單純指工作中的項目經驗,你自己完全可以寫一個業餘練手項目,這都可以算作項目經驗。

但是這些練手項目哪裡來呢?我只會寫Android,其他都不會啊,哪那麼容易就寫一個項目出來了?

在現在這個時代隨便寫一個項目練手還真的非常容易,現在有各種開放的api,你完全不用關心後端數據問題,舉個例子,新浪微博有api,我就基於新浪微博api寫個簡單的微博客戶端,有多簡單呢?我甚至只能查看微博,其他啥都幹不了,完成了查看這一步,再接著慢慢完善其他功能,不要覺得寫一個微博客戶端遙不可及。如果微博需要登錄授權,可能稍難點,有更簡單的直接讀取數據的,如知乎日報,如對糗百進行數據抓包,寫一個糗百的簡易客戶端,這類就完全不用授權,再比如我寫個天氣的客戶端,關於天氣現成的介面不要太多。

至於我怎麼知道有哪些現成的api可以直接用?就知道你要問這個問題,給你找好了,百毒有個api store,收集了太多可以直接用的開放api,地址:API Store_為開發者提供最全面的API服務

(PS:別藉機黑我,抵制百毒不代表百毒的所有東西都是垃圾,有一說一,這個 api store 對開發者來說還是蠻不錯的!)

最後,可能不是特別詳細,如果我有時間,我甚至都想搞份超詳細的教程課表給你們,可惜精力真的有限,沒那麼多時間去做。但是大的方向絕對ok的,如果你掌握了以上列舉的基礎,然後又自己從頭到尾做了一個還算完整的項目,相信我,找到一份實習或者工作很輕鬆。如果你沒找到,那可能只是運氣跟機會的問題罷了,自己有能力完全不用擔心,只是機會還沒到,缺的只是時間而已!


第一次回答問題。

看公司和個人運氣吧,學歷有時也比較重要。Android的基礎知識,view的機制和各種UI特效的實現,一些好的公司會比較看重數據結構和演算法能力,去看看招聘要求,看自己缺啥補啥,也可以看看開源APP的代碼,看別人的設計和框架。自學其實不如在公司里做項目來的鍛煉,可以先放低點要求去個公司做安卓開發,成長比自己學的要快,學習Android的同時基本功不要拉下,指的是演算法和數據結構能力,目前我也在努力鍛煉中,共勉。


自學安卓開發八個月的那位,我想知道你獨立完成的是什麼APP?

如果已經可以快速開發一個界面簡潔,功能完善,BUG很少的第三方APP的話,那我覺得你已經準備好了,缺的只是運氣和機會而已。

面試之前多準備。像 Activity 的 launchMode 有四種寫法啦,Android 的四大核心組件是哪些啦之類的問題不要被問住。零經驗求職的話,自己開發的程序是亮點,被問到的話務必多說一些。 有些人面試時連 "Activity 的生命周期"這種入門級問題都答得磕磕巴巴甚至答錯,碰上這樣的我也沒興趣再問別的了。。。

題外說一句,找工作的城市也很重要。北上廣的機會多,安卓開發的工作相對容易找。二線城市如南京、杭州之類的,規模較大的 IT 公司本身就不多,小公司招人更傾向於內部推薦的渠道。簡歷發出去一時半會沒有消息也正常,KEEP CALM AND CARRY ON,加油~


雖然學的是計算機專業但是目前的情況在學校裡面跟著老師也是基本上學習不到什麼東西的,目前從接觸java到學習安卓開發已經也有將近八個月了,目前也是感覺挺迷茫的,跟題主一樣不知道到底需要學習到什麼程度才能到最後的參加工作,以及因為學校課程的原因還要學習其他的語言,不知道題主現在是不是已經參加工作了,,默默的問一句,暑假花了一個月的時間自己做了一個大學宿舍的管理系統,完全屬於一個人獨立開發,平均每天coding四個小時,這樣算不算有項目經驗,還有目前我開學大二,希望題主給點建議,總之覺著現在處在比較迷茫的階段


首先你給自己的定位要明確,第一你想從事android 開發的工作,第二自學無項目經驗。那麼你就要把姿態放低,不要想一下子就想找到高薪的工作。

其次,項目經驗。不是說你自己仿照做個App就叫項目經驗了,自己瞎做無異閉門造車,雖然可提升對api 的熟練度,但對公司來說熟練使用api 是最基本的了。

最後,快速找到工作,不要看工資要看工作內容,一定是能參與到實際項目的,然後在完成自己工作之外去學習其他部分代碼,研究整體項目架構。學完這個項目你就可以出師了,下一步就不用我說了吧。


都什麼年代了,還用JAVA開發原生應用?現在公司為了快速開發迭代 都用H5來開發手機APP了,推薦學習下angularjs,ionic,等


Android開發一枚,自學八個月感覺已經很久了,其實可以獨立開發項目的話,就可以工作了。畢竟很多的知識點也是在工作中逐步積累起來的,不是要求你一定現在就會的,主要是學習能力。


基本控制項,組件,生命周期等都熟悉的話基本可以找工作了,我以前也不是做Android而是c/c++的,但是公司缺人就被調到Android組了,看了瘋狂Android一周就開始做工程的XML了,一個月下來基本東西都摸熟了,公司對APP的要求基本上沒太大問題,不過Android這東西東西很多,從開源工具到架構到源碼還有jni,想到了如指掌還是要花幾年功夫的


記得我剛做Android開發的時候,連sqlite是什麼都不知道,做完了一個app後就什麼都知道了,看題主不是也做完了一個應用么,快速自學的能力應該比我要厲害了,我看還缺的只有兩點,一是一個好的機會,二嘛,缺少足夠的自信。

沒事多面試去,一直這麼學啥時候是個頭,沒有面試邀約時,研究研究ndk和源碼,當然這個得看個人興趣,也可以去玩玩各種酷炫的UI效果,反正就是,基礎知識有了,再找個點深入下去,就沒啥問題!


繼續投,不斷投。要求4年經驗的也投


明明可以百度搞定的事情還來這問下不浪費時間么


看成 白學安卓什麼程度可以找工作

還想著白學居然已經到了這程度了嗎?有安卓系統,還可以找工作

我的錯


推薦閱讀:

Bitmap和Drawable的區別,為什麼要用bitmap?
安卓開發工程師到一個新公司的第一天一般幹嘛呢?
如何評論 360 開源的 Android 插件機制 Droid Plugin?
Android 如何賺錢?
Android中View, SurfaceView的繪圖和GLSurfaceView繪圖有區別嗎?

TAG:Android開發 | Android |