零基礎自學 Android 並去找工作可行性大么?

有幾個問題請教大家下! 本人本科畢業,工作兩年,職位儀錶攻城屎,目前想轉行程序猿,做android開發那麼問題來了。 第一:自己還是報班學比較合理 第二:自學能找到工作么? 第三、自學到什麼程度可以去工作? 再次感謝大家的回答。用自己的親身經歷來指導我們這些門外人。 所以下面麻煩大家最好分析寫下,學習的流程,各個時間節點學什麼,以及哪些好的推薦資料及論壇。再次感謝!
2015.4.19日,題主目前已經提交辭職申請,準備自學,三個月後會在此用自身經歷回答對此問題的關注者,望共勉!
最後感謝大家踴躍回答,特此鳴謝@jeager和@Eileen對此提出的推薦書籍:第一行代碼和瘋狂android,目前正在擼,感覺很適合新手,以上。
2016.03.15更新,這個提問關注的人一直不少,題主目前已經入職兩周多了,感覺還可以,能跟上腳步,也能做一些東西了,在這裡再反饋下,詳細的經過請見下面「用語321"題主自己的回答!


以下內容寫與 2015 年 3,4 月份。
如今行業不景氣,如果不是真的對這行感興趣或者學習能力很強的人,不再建議轉換行了,坑多。

我來回答一下。
兩個月前,我在知乎上的簽名還不敢加上Andorid開發的,而現在,則有了這份底氣。

首先說個人背景,大四學生,專業機械類,學校只教了C語言基礎,其他編程知識均為自學。
大二時準備學Android開發,看了一點java基礎的語法知識,然後不了了之。
大三因為自己參加的項目,接觸C++,用MFC寫了個簡單的桌面軟體。
大四開始找工作,由於之前在機械公司的實習經歷,感覺自己不喜歡機械類的工作,也不適合,開始改簡歷,投一些計算機類的公司,可惜並不是很理想,期間面了一家Android開發的實習生,人家提問,好多不懂,面試完感覺自己好渣。那是去年12月份左右。

面試失敗回來後,不再海投簡歷,覺得與其抱著僥倖的心理去讓別人給你一個機會,不如練好技術,給自己更多的選擇機會。

12月份到2月初放寒假那段時間,每天白天去另外一家公司實習,回來就背著電腦去圖書館,看書,敲代碼,直到圖書館熄燈。每天堅持,周末更是泡在圖書館。啃完郭霖大神的那本《第一行代碼》,開始對一些大致的概念有所理解,Android的基礎知識也掌握了一些。
看完書前面一大半的時候,我花了幾天時間,寫了一個撥號軟體,Google原生的撥號不帶T9撥號,我就自己寫了一個,現在看來很簡單,界面也很粗糙,不過那時還是成就感滿滿的。在這個問題如何評價《第一行代碼》一書? - Android下可以看到,第一名的匿名答案就是。

後來就是放寒假了,寒假之前開始寫一個軟體,『在讀』,就是記錄你閱讀紙質書進度的一個軟體,由於覺得功能不實用,已經停止開發了。下面是一些簡單的截圖。

功能很簡單,就是記錄一本書的閱讀進度,高級一點的就是加入調用豆瓣的API,可以根據關鍵字聯網查詢一些書的信息,如上圖所示,點擊進去可以看到書籍的大致信息。

寒假在家寫這個軟體,並開始看《Java編程思想》,開始系統地理解一些Java的知識。
寒假過得很充實,每天看書,做筆記,有時連著好幾天晚上敲代碼敲到凌晨2點,可是不覺得累,因為喜歡這種感覺,看著自己寫的軟體在手機上跑起來,特別開心,這也是我為什麼轉行做程序猿的原因吧。

憑著這段時間的學習,今年開學初,投了幾個Android開發的實習生職位,基本上都獲得了面試機會,技術面問的那些問題,自己在寫上面這個軟體時都多多少少遇到過,所以基本上都沒問題,然後陸陸續續拿到一些offer。現在在其中一家公司實習,職位就是Android開發。

最近自己寫的一個習慣養成的App上線了,滿滿的成就感。
雖然功能簡單,界面也簡潔,但是看著自己寫的一行行代碼,一點點改進界面,最後得到一個自己滿意的結果,還是很開心的。 : )
貼圖一張吧:

(目前只上線了應用寶,去做 不過應用寶的下載鏈接有點問題,可以訪問去做 下載 下載)
(4月7日 豌豆莢上線:「去做」安卓版免費下載)
【不是廣告,就是一個個人的作品,如果覺得還行,可以下載試用下哈~】

以上羅嗦了這麼多,講了本人從只有一點編程基礎到找到Android開發工作的經歷,沒有大牛那麼厲害,只是一番很平常的經歷,希望題主你可以得到一些你想要的經驗。

回答題主的問題:

  1. 覺得自己有毅力,有信心的話,同時學習能力比較強,那就自學,不差錢的話就報班吧,找個靠譜的。
  2. 第二個問題我已經回答了。
  3. 第三個問題,我覺得起碼郭霖的《第一行代碼》上那些知識點要掌握的吧。

如果題主自學的話,以下是建議:

  1. 推薦書籍,郭霖的《第一行代碼》,很好的Android入門書。
  2. Java的話,一開始不推薦《Java編程思想》,沒有編程基礎的有點難懂,你可以看看網上教程之類的。
  3. 多敲代碼。書上的例子,不要看著覺得會,就不去敲了,很多時候你自己敲一遍,才發現存在很多問題,試著去解決這些問題,你會學到很多。
  4. 在有一定基礎上,可以想著寫一些個人的項目,思考要添加什麼功能,怎麼實現,不懂的就Google。
  5. 學習網站的話,Android開發的官網不翻牆是打不開的,可以考慮買個vpn或者別的途徑,翻牆去看,反正我是習慣了Google,vpn一直掛著。貼一個我自己的書籤。安卓開發者必備的42個鏈接
  6. 推薦stormzhang 的Android學習之路博文。Android學習之路,很贊,一些Android初學者資源都很贊,仔細看完這篇,你會學習到很多。
  7. 開發工具下載,同樣是牆的問題,這裡有不需要翻牆的資源。AndroidDevTools 配置中遇到的問題自己多搜索。
  8. 最後再說一下,推薦Android Studio,真心好用。 = =

最後最重要的就是,要有興趣,有堅持的決心,不要輕易放棄,遇到問題多看看文檔,多搜搜,不要失去信心,慢慢成長起來,不要急功近利。


加油!

以上內容寫與 2015 年 3,4 月份。
最新開闢了專欄:Android開發學習指南 - 寫代碼的猴子 - 知乎專欄
##################
Android學習QQ群:452075912(加群請正確回答問題)
#################


2016.8.31更新。

現在的市場環境不太適合Android新手了,據我親身體驗以及身邊人的一些反饋,現在的初級Android工程師已經大大過量了,iOS也是,所以如果是想要零基礎很快找到一份工作的,不建議學Android,當然如果只是想要學一門技能的話,Android還是不錯的,做成一個APP的感覺比其他的一些編程過程要愉悅的多。關於短期選擇的話,這裡有一份參考,2016年春季互聯網高端人才流動報告_36氪。

以下是原文。

不邀自來,前面的幾位說的都很好了。

我就在如何堅持自學Android這方面提一點個人經驗,能堅持下來真要感謝一個學妹

我跟目前排名第一的Jager一樣,是魔都大四的機械狗,而且我們在一個機械相關的公司一起實習過。這是何等的緣(ji)分(qing)(≧▽≦)/。

接觸Android開發的時候是在大三下,也就是2014年5月。

那時我跟題主一樣,對如何學習Android開發一頭霧水,然後就在去年的這個時候,在知乎上提了這個問題
現在的Android工程師都是怎樣學會製作Android軟體的,主要是靠自學還是通過接受正規的教育? - 學習

之後經過一段時間的摸索以及閱讀,我把前輩們的學習經驗和公司的工作要求進行了初步的歸納,算是明確一個前進的方向,在這裡拋磚引玉一下。

通過網上查資料,android應用開發大致有三個層次。


一、初級。1. 擁有嫻熟的Java基礎,理解設計模式,比如OOP語言的工廠模式要懂得.2. 掌握Android UI控制項、Android Java層API相關使用.精通xml、json解析,做過socket c/s端的程序,了解http協議。


二、中級。1. 熟練掌握NDK JNI方式的開發,對Android framework十分了解.2. 移植一些開源項目,比如FFmpeg、Mplayer到Android上運行.邁向高級,熟悉android開源代碼的結構,中間件下層的庫,比如webkit、opencore、opengl.

三、高級。1. 熟練的Linux驅動開發,精通Linux內核結構.2. 掌握Android移植,比如常見的TI OMAP、Qualcomm MSM的硬體移植.邁向頂級,發現Android系統中的漏洞。

現在公司對Android工程師的大致要求。


1.熟練掌握android的各種UI布局、UI控制項,熟練自定義UI控制項;


2.獨立進行Android應用功能的設計、開發、調試、發布;


3.熟練掌握JAVA編程和Eclipse集成開發環境與Android SDK/NDK或者是Android Studio開發環境;

4.了解常用數據結構與演算法,熟悉TCP/IP、HTTP,具備紮實java,C/C++開發基礎;

5.熟悉android系統架構及相關技術和API的調動;理解設計模式和常見的開發框架;

6.具有多線程、資料庫、網路編程及調用底層JNI編碼能力;

7.對Android底層介面有深入地了解、對手機軟體性能優化、內存優化、安全等有一定了解;

以我經歷過的幾次面試來看,掌握初級的內容滿足公司的前四條要求基本上就能找到工作了。

方向找到了,接下來就是堅持去做了。不做不知道,剛一接觸真是有點焦頭爛額。(連java都沒接觸過。。。)

剛開始學的兩天因為有一種想學好的衝勁,所以就抱著一本Android開發的書,埋頭在圖書館看了一個周末,把Eclipse的開發環境搭好了。

第三天勉強看了一點,第四天就完全不想看了。

我心想這樣不行,再這樣下去就要半途而廢了。

就在這個時候,學妹出現了。

那個學妹在我發的自學android的狀態下回復了我,說我好厲害(厲害個鬼。。。)

我念頭一動,想到書里有製作簡訊軟體的一段代碼,

「 如果我給學妹做個特製的簡訊軟體一定很有趣吧」。

(論防火防盜防學長的重要性)

抱著這個念頭,我開始充滿幹勁的看書寫代碼了。

正所謂寫(zhao)碼(zhe)(chao)無歲月,作為一名純正的菜鳥,我用了6個小時才完成了那個特(jian)制(lou)的簡訊軟體,從晚上8點一直弄到凌晨2點。

第二天,當我把簡訊軟體安裝包發給學妹的時候,看到她欣喜的表情(單純的文科妹子。。),
我感到無比的滿足。

汲取這次的經驗,我總算摸索出一條適合我的學習之路。

不要想歪,勾搭學妹之類的事怎麼能一直做下去。(畢竟我是個直(zhi)男(nan))

從這次的事情中,我發現做一個自己覺得有價值的應用,能讓學習的動力達到MAX,無論有多少困難,都能去克服。

而且,我相信那句話——盯著手上的沙粒是看不見面前恢弘無比的城堡的

一直看著某一個技術點,看著某個環節,只會讓人感覺到無比的沮喪,因為技術的細節是看不完的。

相反的做法是直接高屋建瓴的看清楚整個應用架構,然後用一個個技術點去把它搭起來,去實現它,就像搭積木那樣,遇到不懂的東西自然就有動力去弄懂它了。

畢竟,看的清的目標才能全力以赴的完成。

做有價值的應用——&>被人肯定——&>外驅力

做一個完整的應用——&>激發完成欲——&>內驅力

在外驅力與內驅力兩駕馬車共同作用之下,自學也就沒那麼難了。

最後,放上學習過程中做的兩個APP截圖。&<( ̄︶ ̄)&>

華師貼吧版2048,在2048很火的那段時間做的,
用華師吧同(mei)學(zi)的頭像代替數字來製作的遊戲。
看頭像就知道是同(mei)學(zi)。(* "???)?――◎

濟事通,準備打造成同濟的一個信息平台,現在還在開發中。

在github上淘各種有趣的開源代碼也是非常有趣的o( ̄▽ ̄)d,感覺比淘寶好玩多了,我試了很多種的特效,覺得Android開發真的是件非常非常有意思的事。當然開源的特效雖好,基本的技術還是要掌握好。

滾輪是用AndroidWheel做的,
android-wheel - Android Picker widget

查詢按鈕是用circular-progress-button做的
chrisbanes/Android-PullToRefresh · GitHub

折線圖用achartengine完成
achartengine - Charting library for Android

找到其中的樂趣,自學就不難了用心投入,三個月基本能找到工作,祝樓主順利。:-P


看了一下回答,都是雞湯啊。也是,靠著這些雞湯我奮鬥了九個月。
下面我來說點毒雞湯吧。沒想到知乎的第一個回答貢獻給了這個。

寫在即將要放棄的前夕。

本人文科專科女,工作經驗兩年,二線城市。目前自學android九個月,獨立寫了兩個app。
大約2015年底看了這個問答~滿滿的雞湯啊~再加上當時確實對編程有興趣,但是不知道走哪個方向,看了這個問答,遂而決定學Android。

可是我忽略了兩個問題,一個是這個問題是2015年時候提出的,回答者大多在2014-2015年之間就找到工作了,當時2015年對於Android來說,工作機會還是很多的,各大培訓班如火如荼的開設Android班,當時隨便個網頁推送廣告都是這個。然而到2016年其實已經接近冷卻了,就像泡沫崩了一樣,再加上經濟的不景氣。Android初級工程師在市場上已經出現了飽和,隨隨便便都是需要多年經驗起了。二是我處於一個二線城市,互聯網行業的工作機會較少。如果身處在一線城市北上廣深,即使受到問題一的影響,也是能找到工作的。

關於自學還是報班。

當時決定學的時候,答主的資金是充裕的。兩者都可以,綜合了一下上面的問答,以及知乎的一些回答。答主選擇了自學(釀成悲劇的導火線啊),答主的自制力什麼的還是可以的,基本每天都有敲代碼,除了有事的時候。談談這兩者應該選哪個比較好。

A.自學。自學呢,你得保證時間充裕。如果在上班的情況下至少2-3小時的時間自學,答主工作隨著2015年年末到2016年初的經濟不景氣,學習時間還是很多的,連上班都可以學。要有很強的自制力和興趣,自我學習能力也要稍強。還有一點,要保證資金很充裕。嗯,答主離職後找的工作,現在很痛苦,消耗存款(離家在外,高房租)。建議資金不充裕的千萬別離職找,那簡直是。。如果是二線城市(這類工作不多的情況下,特殊情況特殊對待),更要考慮這點。當然你住家裡,另外再說。

B.報班。報班呢,其實有個好處。起碼他們會幫你找到一個工作,就算再不怎麼樣的工作。因為,你得還他們貸!款!啊!學費隨隨便便一兩萬起吧。這樣下來,沖著錢的面子上,你至少會努力點學習,不是?不過據了解,培訓班一般會幫你培訓面試,還有編織假的工作經驗啥的,導致現在整個市場的水分很高。關於報班呢,我自己回去核查了下,像達內只是放視頻給學生看的,其實不太建議了。可以找中軟等等大型,或者在本地名氣較大的it培訓公司。這樣會比較有保障,小公司就算了。我現在是沒法回過頭再去報班了,不然當初就該選擇報班。

小總結:一線城市可自選自學或者報班,IT從業機會較多。二三線甚至不知道多少線的城市,建議報班。注意啊,是建議啊。

關於自學的過程

答主文科生,可謂是從來沒接觸過編程。再加上當時都專攻自己專業的證書之類的(答主金融專業),更沒空發展業餘愛好之類的。是的,連c語言都沒有,因為沒有開設。

感謝大家的厚愛,本人確實是女生。而且,文科。我看回答的大多是機械,土木,計算機等理工系出身的。奉勸文科一句,還是不要趟這趟渾水了。文科最好直接報班。而且不要選擇Android,無論是java,php,web等等都好。

我當時學吧,從最簡單的python語言學起的,比較好理解,且跟java語言有很多共同之處。僅僅只是作為語言學習,沒有更加深入的學習。我從2016年1月開始學起,大約學了一個半月吧。看廖雪峰的學習教程,挺簡單易懂的,也涉及到了一些網路編程,如TCP,UDP等等。也有部分資料庫SQLite,MySQL等的內容,以及WEB開發。感覺python的可涉及範圍好廣。(貌似跑偏了)但是這個博主也只是稍微的一提,並沒有深入的講。

後來轉學JAVA語言,在慕課網上學的,說真的,其實這個網站還是很不錯的,除了視頻每節都有練習題給你做,方便加深記憶。學完後看了李剛的《瘋狂java講義》和比較出名的《Java編程思想》。前者像教科書,舉的例子還行,厚得跟快板磚似的。後者比較深入,不適合初學者,有了基礎看會比較好。也沒耽誤太多時間,學了快兩個月差不多。最後才學的Android,先跟著郭神的《第一代碼》學,這書確實適合初學者,用的工具是Eclipse,其實這個工具也沒什麼不好,簡單易學,但是沒AS那麼嚴格和強大。書上的代碼基本都敲過一面了,覺得郭神出這書純屬是為了方便大家理解Android四大組件,UI等等的運作原理和操作之類,製作起APP會發現實踐和理論差別還是蠻大的。

再後來買了《Android群英傳》和《Android開發藝術探索》來看,前者適合用來熟悉AndroidStudio這個IDE,Android5.X以上的功能吧。但是寫得太過於簡單,沒有拓展開來,也有許多需要勘誤的地方。後者則適合進階,有很多乾貨,但是不適合初學者。

順便感慨下AS這個IDE雖然很強大,但是依賴gradle,因為這個經常報錯會讓人很煩。而且很嚴格,對於png,.9圖的嚴格程度令人髮指。順便提一句,有真機還是用真機測試吧,Genymotion雖然好用,坑也多到沒法想像。

我大約7月的時候因為行業到了旺季,無法專心學習,毅然辭職在住處自己學習,自己開發了兩個軟體,前者是用Eclipse開發,比較簡單,用了webview,寫了個看圖識花的軟體,只適用於5.0以下,因為5.0以上API支持upload的方法暫時還沒想出來怎麼寫,後來寫新的軟體,就沒再繼續了。

後來天天熬夜根據一個前輩的開源菜譜寫了個菜譜軟體,用AS寫的(從Eclipse轉到AS真的挺痛苦),利用了Xutils框架與服務端進行通訊包括得到數據載入圖片,使用gson進行json數據解析,菜譜用的是收費API介面。ViewPager+Fragment+ListView打造菜譜界面,利用自定義View+ListView+SQLiteOpenHelper全部菜譜功能界面。ViewPager實現圖片循環播放,gridview實現九宮格菜單,VectorDrawable繪製svg圖片,自定義view實現簡單搜索欄。簡單動畫做了啟動頁面。左側菜單用了自帶的Navigation Drawer。

感謝github開源的力量,感謝簡書,csdn,谷歌,推酷,以及一個人學習解決各種疑問的stackoverflow。

然而我要放棄了,近兩周的海投,崗位招聘少,或者沒回應,這樣下去資金鏈要斷裂了。

走到現在我真的很努力了,從來沒有學過編程的我能寫出這樣的軟體估計極限了吧。但是我從來不後悔學Android,那種項目寫出來成功的喜悅是很難以描述的,我只是輸給了現實。

有成功的案例,也總會有失敗的案例。然而我就是個失敗者,請各位打算要自學的問問自己是否真的喜歡這個行業,亦或者有什麼目的。如果無所畏懼倒是可以一試,省的到頭來覺得浪費了時間。

不過我不會放棄編程的,感覺這個世界還是挺有意思的,業餘學習下應該不錯。

對於這個問主的這個問題,綜上,我的回答是:自學可行,但是出去找工作可行性較小。

------------------2016.10.22更新-----------------------------------------------

很多人好奇樓主找到工作了嘛,當然是,沒有。

我沒有從事編程有關的工作,而是從事了別的行業。

人總要吃飯的,總不能為了那點堅持餓死了自己吧。

關於失敗:一出身,非科班沒有任何計算機證書證明實力,還是女生。二項目過於簡單,只涉及前端搭設,而沒有涉及後台的東西。現在要求比較高了,這種簡單的,估計很難找到了。
關於未來:打算先把計算機的底層東西學好,比如c語言資料庫網路編程等等,然後學點前端。暫時作為愛好進行吧,想法這東西誰說的好呢,此一時彼一時的。況且功利反而會忽略一些最本質最基礎的東西不是么?
關於建議:如想從事android這行,建議把技術練精進,c語言(涉及Android NDK,底層編寫等等)和資料庫,網路編程,後台搭設,我覺得這是最基本的了。可能這對於無基礎的人比較難,對於計算機出身的應該不難。

- -引起了這麼廣泛的關注,我表示受寵若驚,其實失敗的人估計不少,只是沒人寫出來罷了。自古勝者為王,敗者為寇。我現在看看我寫的軟體,也覺得是小兒科,拿不出手了。知乎是一個分享經驗和知識的平台,我希望通過這個回答少大家少走一些彎路罷了。

-------------------2017.8.31---------------------------------------------

因為一些因素,我還是選擇了放棄編程這一塊,科班出身太重要了。愧對大家的期待,我還是選擇匿名了,感謝大家一路的幫助和支持。我選擇匿名了,對不起。


謝@獸獸邀,本人是0經驗2個月自學Android,之前是機械類專業,畢業後從事電器工作,半年後,一些事情讓我想轉行,剛找到Android工作的時候回答過一個問題。穩紮穩打和速成法,到底哪個更適合我? - 張頌的回答
當時寫了兩個很渣的app,也沒上線,我就帶著去找工作了,投簡歷到面試到收到offer差不多一周多點吧。老闆也不錯,第一個月老闆就給我加獎金了,已經和轉行前的工作薪資持平。所以加油吧,不要有這些顧慮。廢話不多說,回答問題。
一,自學還是報班?我當初也有猶豫最後決定自學,理由如下,僅供參考。1當時諮詢的培訓班要4個月脫產培訓,承諾找到工作不低於6K,而我是12月份產生轉Android念頭,而過完年是招聘高峰,掐指一算,我只有2個月的時候,我等不及,假如報班,我現在還窩在教室里聽課。我覺得培訓班講課進度太慢,找工作的時間因素我決定自學。2我一開始自己看了一些Android的東西,所以培訓班給我介紹的東西我覺得很一般,如何評價培訓班的效果呢?看培訓班貼出來的工資多少,待遇如何絕對不靠譜,看他們學員的做的東西吧,優酷上有某些培訓機構的官方賬戶,裡面有培訓學員的成果展示,看完之後,我覺得自學完全可以掌握,所以培訓效果讓我決定要自學。3培訓班的入班門檻是什麼?中專,有些是大專,所以我覺得自己進度應該比培訓班稍稍快一些吧,事實上自學的時候經常下很多培訓班的視頻看,一般是1.5倍速-2倍速看,選個合適的視頻播放器,不然聽起來就是雜訊。培訓班是一對多照顧大多數人的教學進度,不一定適合自己,自行評估吧,所以授課進度慢讓我決定自學。4培訓班當時報價1萬6,我當時並無積蓄,貸款要背負一年多的債務,找到6K的工作又如何,我要一年多都過4K的生活,需要的經濟經歷投入大。我自學的耗費是自己買了3K的組裝機,書和視頻都是網上下的,工作半個月我就收回成本了,所以經濟投入的對比讓我決定自學。
二,自學能找到工作嗎?我現在就是用公司配的電腦在加班之餘回答你的。
三,自學到什麼程度去找工作。起碼做出個應用吧,哪怕再爛也行,帶著程序找工作比用嘴吹的天花亂墜強的多。都是自學的人,面試官會看不出來嗎?侵淫碼界的老碼農會看不出你是自學的?想裝的很有經驗不太可能,有培訓機構會培訓一些JavaEE的東西讓學員看上去有JavaEE的經驗,呵呵。設計模式,經典演算法,軟體開發流程,不管是自學還是培訓,都不是2個月0基礎能掌握精通的。現在Android好找工作完全是市場需求大,很多公司都想做app,但是Android工程師沒有這麼多,很多人都是速成,我也是,真的找到工作的時候對Android各方面了熟於心,遊刃有餘嗎,恐怕不是。

回答完問題,說一下自己做Android工作半個月的感受。
1套用《木乃伊歸來》里的「死亡只是開始」這句台詞。找到工作,僅僅是個開始。當初我用10天看完Java,然後1個多月學Android。我就算是神童、天才、天賦異稟也不可能掌握Java和Android,我連熟悉的地步都沒有達到,現在每天還抱著Java書在啃,跟軟體科班出身的同學差距太大了,數據結構,演算法,設計模式哪個不重要,以後要學的還有太多太多。
2網路編程要熟,現在的手機不聯網就像個防身用的磚,哪個商用APP不聯網。熟悉各種網路協議很重要,應該算是初級Android工程師的必備知識吧,當初自學的時候這一塊沒怎麼重視,現在惡補。
3找工作前以為自己很菜,找到工作之後覺得我怎麼能這麼菜,這麼多都不會,不學習是沒有出路的。不是在給題主泄氣,確實是進這個行業要做好終身學習的準備。

good luck !


入行一年多,說說目前的狀況吧——2017.05.25

在之前的公司待了 一年多,早段時間拿到一家大點的公司的offer,所以這大概是一個階段性的總結。寫下來給要入行的小夥伴一些參考吧

一、之前在公司的情況

大牛是真大牛,小兵也是真小兵。大牛很忙,也別指望大牛來指導你了,同級的小夥伴嘛,說句實話,水平也跟自己差不多,甚至有些還差那麼一點點。以至於即便進入公司也是全靠自己。幸運的是,大牛把框架和很多實用工具都封裝好,而且公司代碼許可權比較松,基本能讓我隨便看。對我成長最有幫助的,大概就是看大牛們以前寫下的代碼。

二、業餘時間

說實在,工作上的內容技術要求不高,難點大牛都給你寫好了,領導的原則也是穩定至上。所以用到的技術都比較老,干久了就有一種停滯不前的感覺。有些人也選擇了安穩度日。但自己危機感比較強,只能靠自己業餘時間去增值了。同樣幸運的是,大概是移動端的需求少了,一直沒有過加班。但每天擠時間來學習新東西也是不容易的。習慣性曬書單……

三、跳槽

考慮到繼續在這家公司待,對自己的技術很難再提高,於是決定跳槽,隨帶加點工資。然後悲傷的故事又開始了,還好沒敢裸辭。年後開始投遞簡歷,說好的金三銀四呢?投出的簡歷全都石沉大海。別說面試了,根本都沒面試機會。我都是在大晚上才投的簡歷,在某勾看著很多提示不匹配的時間就是前一個星期投遞的時間,感覺就是簡歷連看都沒被看就超時系統自動提示了……所以入坑不深的小伙,可以看看其他方向了。最後到了五月份了,還好有家公司大概是看著學校還行,給了次面試機會,也順利拿到了offer。雖說工資漲得不多,但在這種市場情況下能去到更大點的平台,我也算心滿意足。

——————————原答案分割線————————————————————

offer到手。小公司,但有經驗很深的大牛,我已經滿足了——2016.03.15

感謝之前各位知友們的祝福!!!

————————————————————————————————————

更新:回答後面增加了求職階段和面試階段,有興趣的可以看看……

————————————————————————————————————

先交待自身基礎:

  1. 15屆渣渣重本本科畢業生;
  2. 電氣自動化專業,大一大二和電子專業的課程一樣,對硬體比較熟悉;
  3. 大學對單片機比較有興趣,用彙編完成過小項目,學過一點C;
  4. 除了前面提到的,都沒其他編程經驗;
  5. 英語程度是四級裸考過了,六級沒過。

—————————————————————————————————————
15年6月中旬正式進入公司,工作兩個月後發現自己是真心不喜歡本專業的工作,最後下定決心自學當個碼農(內心鬥爭過程略)。因為大學做過單片機的項目,知道自己喜歡做這方面的工作。遂開始各種搜索轉行攻略,最後鎖定android應用層開發。畢竟做出來的東西能看見,還是很振奮人心的。

先開始學習Java基礎,看推薦買了李剛的《瘋狂Java講義》,為了生存無法脫崗學習,還好每天下班準時,有幾個小時讓我看書,於是跟著書上的內容一步步在電腦上敲。開始還不錯,後面發現這書寫得好臃腫,都不知道哪裡才是首要抓的重點,代碼也好多植入廣告。遂找了網上推薦的30天Java教程的視頻。兩倍播放速度看了一半,覺得看視頻接受知識太被動。還是硬著頭皮看回書,不懂的內容就Google其他大大們寫的博客,或者直接看那一節的視頻。每天5個小時左右,一個月過了一次Java基礎。實操不足。

第二階段,直接開始android的學習,知乎很多地方都推薦郭霖的《第一行代碼》,買了一本開始照著做。每個例子都自己動手實踐了一遍。不能不說這本書真的很棒。很多實用的技巧,講解也深入淺出。由於這個階段自己事情比較多,估算也是一個月看完了。看完這本書後發現內容還是太少了,不過告訴了我android應用開發的大體知識結構。提到的知識點也去搜索一遍,補全一些沒有提到的知識。期間在上班的空餘時間用手機刷了一本《SQL必知必會》。後面自己電腦再下載了一個MySQL,跟著《MySQL必知必會》外加《w3school》(這個是教程網站)的教程實操了一遍,算是會了對資料庫的基本操作。另外郭大大書里說的Git版本控制工具的內容比較散,自己又跑網上找了本《Pro Git》來學 ,還買了本《GitHub入門與實踐》

第三階段,看了知乎上面蕭丼陌大大給出的編程入門指南後,開始對編程基礎的惡補。還有網上各個大大給的一些推薦,最後買了《演算法》第四版《Head First設計模式》(還有好多書,因為自己都沒完整刷過這裡就不列出來了),開始了苦逼的演算法學習。後面變成上夜班還是一個人值班,沒什麼事做就每天上班的時候看《演算法》。實際這書更多的說數據結構,還好大學的課程涉及到相關一點知識。這裡面不理解的都會重複的看,可惜後面家裡有些急事。演算法看到了圖那一章就暫停了。事後回來轉戰看了《Head First設計模式》,也是一點點慢慢看完,因為缺少實踐,也就只懂基本概念。期間也刷了《圖解HTTP》這部科普書,算是對HTTP有些概念了。還有因為平日遇到不會的知識都會搜索一下,這過程也看了很多雜七雜八的知識。

第四階段,其實期間自己遇到很多事情,學習階段期間已經不太明顯。各種理由後,答主決定辭職脫產學習,此時是15年最後一個月了。最後安定在廣州後繼續學習,
學了一輪其他知識後,結合網上一些面試總結和分享的經驗又回去看了一遍Java基礎。接著就回到android的學習上了,跟著谷歌的官方教程慢慢看,網上有大大們翻譯的中文版。其中略過TV等相關的內容,然後覺得得實操了。偶然發現Github上有知乎日報的API分析就開始了山寨。

目前階段,實現了部分日報的功能後,發現自己的代碼設計有待加強,去看了不少代碼規範還有什麼MVC等模式也重看了《Head Firest設計模式》和《演算法》第四版。開始重寫一遍山寨的知乎日報。
—————————————————————————————————————
求職階段
膽子不夠大,簡歷說實話。2月末開始投,到第一份offer為止,在某勾投了27份簡歷,19份被查看了,最後就3家有機會面試。忽略第一家奇葩公司外,剩下兩家都能拿到offer。薪酬就是普通院校應屆生的水平。(都說初級崗位競爭大……)
求職過程,說起來都是淚,簡歷基本石沉大海。為了撐下簡歷,用Design支持庫的控制項和常用的第三方庫寫了一個新的Demo。上面耗時一個星期,期間沒有面試。然後刷了任玉剛的《Android開發藝術探索》。當一個星期後我看完了,還是沒有面試機會。說實話自己多少有些迷茫了,也不知道往哪個方向提升,於是去複習下基礎吧。過了一遍之前看的書,重新複習了排序和查找的演算法。期間又過了一個星期,也還是沒有面試通知。接著看《Java編程思想》,看了一半。好不容易終於有一個面試機會了,結果是一家奇葩公司,沒有自己的定位,自己的產品內存泄露就算了,還有崩潰的bug。(畢竟第一個面試,答主還是很緊張的,就下載了產品使用了一下,順便試試之前發現一個容易出現的問題,有些軟體沒注意編碼的問題,開發只考慮中文的系統環境,你系統換成英文有些界面就會崩潰的了)面試期間跟面試官說了一下,面試官只是一笑而過。期間也沒有一個像樣的技術問題。後面跟老闆談薪水,才明白就想找個廉價勞動力而已。答主知道市場不好,但還是不傻。這裡寫下來是提醒一下各位轉碼農的朋友,不要急著找工作,就忽略了公司的情況啊。
有時感覺轉行也是要看點運氣的,在走出第一家奇葩公司後,就收到第二家和第三家公司的面試邀請。剛好同一天,一個上午一個下午。
—————————————————————————————————————
面試階段
上午的公司直接是技術面,問的東西都是基礎的東西。面試官看了下兩個demo後開始從網路請求要怎麼處理的這樣問了起來……簡歷寫的技能點全部被問了一遍。(這裡建議簡歷上的技能點就不要亂吹了)現在寫下自己能想起的問題,記憶有些模糊,大家參考下就好了
1、快排怎麼實現的?時間複雜度是多少?哪種排序可能比快排快?
2、(追問了)希爾排序是怎樣的?
3、二分查找時間複雜度是多少?最壞情況時間複雜度尼?除了二分查找還有哪些查找?
4、說一下你了解到的Java庫有哪些類是線性安全的,哪些不是?
5、(答主提到了StringBuffer和StringBuilder)要是在多線程操作下會怎樣?
6、說一下你Android開發期間用到的容器類,有什麼區別?
7、(答主提到了ArrayList、LinkedList、HashSet、HashMap)ArrayList和LinkedList的區別是?要是我想用set但需要有序的遍歷要怎麼做?HashMap大概怎麼實現的?(追問了)為什麼在多插入的情況下選擇LinkedList?二分查找不能用在哪兒?(答主當時這裡蒙了……)後來面試官說,假如用在LinkedList上會怎樣?
8、要是我要對一些自定義的類排序要怎麼做?
9、四大組件分別有什麼用?service是運行在哪個線程?(追問)service要運行到後台線程要怎麼做?
10、說下Activity的生命周期是怎樣的?(追問)onNewIntent()方法什麼時候調用?
11、說下Android的動畫有哪些,區別是什麼?
12、說下view的繪製流程和事件處理機制?(追問)MeasureSpec有哪幾種,分別對應是什麼?
13、bitmap的優化要怎麼做?內存泄露是什麼?有哪些情況會發生、如何避免?
14、(答主提到了弱引用)弱引用是什麼?還有那些引用?
15、你一般怎麼處理Android的多線程,怎麼保證線性安全?
還有一些答主記不得了……(答主在回答的時候不僅單純的回答問題,有些帶了這樣做是為什麼,或者額外補充一些知識點。算是以前面試總結的一點經驗,盡量給面試官你好像會很多的樣子……但吹牛要把握好度哦)

下午的公司,就沒問得那麼細了,首先筆試,都是一些網上看到的面試題。然後面試官結合筆試題目問了些常見的問題。(雖然看著他電腦打開著AndroidStudio,但感覺技術功底不是很厚……)

最後答主還是願意去辦公環境沒這麼好的第一家,畢竟有大牛在。


2017年/2/15更新:

目前安卓初級工程師太多,所以企業招聘條件要求比去年高好多,所以現在看見這個提問想轉行的,一定要慎重!-!

2016/2/25更新:結果:

關注這個問題的小夥伴沒一定是想知道最終結果是如何,這裡答主就把情況進一步說一下吧**,在這不斷自己學習中,由於我本人只是下班時間學習,而且有的時候由於工作原因等耽誤學習,所以導致效率很低,所以學的很一般,過完年後回來就開始投簡歷找工作,期間四天一共面試9家公司,有的個人感覺不靠譜,有的感覺題主不靠譜,最終題主在2016/2/22日入職了一家公司,進入公司由於自己基礎不是很好,所以看到公司項目的代碼就會很大壓力,所以這只是一個開始,加油吧!所以這個問題的答案是通過自學Android開發是可以找到工作的,但是。。能幹到什麼 程度還需要時間的驗證,題主就是完全零基礎,畢業三年後,自學找到了工作,但是這僅僅是一個開始,接下來題主會怎樣還是未知,這一路走來沒有想像中那麼難,也沒有其他一些自學成才的大神們說的那麼簡單,磕磕絆絆,算是有個結果了吧,另外在 @Jaeger 的qq群里也有一些自學找到工作的,在此再次感謝@jeager在這個問題上給予我以及大家的幫助以及群里的 @Brucezz 的在群里對大家提問的回答, 以上

分割下++++++++++++++++

大家好我是題主,鑒於很多關注者一直在關注題主現在怎麼樣等等,甚至有說題主太監了,題主很生氣,下面題主根據自己這一年來的經歷自己回答下,希望能幫助到要學習Android開發的人;

今天是2016年2月7日星期日大年30,在此首先祝大家新年快樂,萬事如意!

距離提問如何學習Android到現在轉眼馬上一年,逝者如斯夫,不舍晝夜,這一年來收貨很多,一直在默默的學習,珍惜時間,努力努力再努力,下面根據我一年的經歷來正式回答問題,特此說明每個人的生活閱歷和理解學習能力各有不同,所以別人的回答只能給你提供一個參考,切勿衝動人云亦云,有的人可以不代表每個人都可以,一定要根據自己狀況而定。

一、回答問題:

1、 回答我提問第一個問題:自學還是報班比較合理?

答:這個答案到目前為止題主還是不能給出一個絕對回答,因為這個問題是要結合自身情況而定,別人無法知道你的學習能力和處境,故無法直接回答合理還是不合理,只能說因人而異,下面給出幾條有助於你做出選擇的參考條件,題主一直是自學的,所以個人感覺要想自學應該具備的幾個條件如下:

(1)
有一定的毅力和自我約束能力,因為這是你自己的事情,沒人管你學多少,學怎麼樣,全靠自己。

(2)
有一定的自我學習能力,比如除了問題不要慌忙,首先自己思考可能原因,動手測試逐步排查問題,如果解決不了,再google(註:如果是初級問題百度還可以,但是極力建議用谷歌大法),因為你自學過程中遇到的問題基本不會有什麼太複雜的問題,基本都是前面無數個開發者踩過的坑,別人早已基本解決過的問題,而且要感謝大神們樂於分享的精神,所以只要你善於檢索,換著方法檢索,那麼一般的問題是可以解決的,再不行,就請教下別人,請教的時候不要上去就問題你遇到啥啥問題了,或者直接很沒頭緒的問一句,你要把你自己的問題闡述清楚,然後自己採取的辦法想法說清,理清楚了再請教,這樣有助於別人回答你問題的效率和耐心。

(3)
有一定的時間,自學過程中遇到問題要自己分析解決所以時間方面可能會久一些,但是這個過程正是提高你自己的過程

(4)
還有一個就是個人理解能力,說白了就是智商,這個不必多說。

(5)
如果不差錢,當然可以報班,去聽聽感覺不爽可以不去昂。

2、 自學能找到工作么?

答:這個問題可以是肯定的能,但是不是每一個人都能,學好了就能,玩殘了就不能,還是因人而異,請結合第一個問題,基本這樣。

3、 自學到什麼程度能找到工作?

答:這個問題題主還是很慚愧的給不出一個合格的答案,這個程度很不好界定,個人以為基本要達到:掌握基礎知識點,比如四大組件如何使用、如何創建Service、如何進行布局、簡單的自定義View、數據存儲,動畫等常見技術 ,《第一行代碼
Android》基本掌握。

二、學習資料推薦:

概要:學習的資料網上是鋪天蓋地,資料主要分兩種形式書籍和視頻,至於選擇哪一種也是看個人愛好,但是看視頻你一定要做好自己的學習筆記,因為你不可能看完就記住,而基本情況是你看完一遍知道了有這麼個東西,但是具體用法是不太可能記住,當然你能力強就另說,而且一定要動手操作,敲代碼!想學習最好這部分內容你自己動手到網上搜集下,集大家所推薦比較多的,選擇一套即可,切勿今天某某推薦這個了你看看,明天推薦那個了你再看看那個,找一套系統過一遍這樣你對知識有個整體認識與把握即可,不要太多資料。下面是題主個人的學習資料僅供參考:

1、 Java知識部分;我是學習的MARS老師的Java4Android教程,這部分是視頻,由於題主一點點編程基礎沒有,當初入門選了視頻,跟著視頻敲代碼,做筆記,跟著做so easy。

2、 Android開發部分:學習完了Java4Android教程後,題主直接選擇學習了郭林大神的《第一行代碼》,這本書簡單易懂,反正題主是能看懂,也是照著敲代碼。

3、 第三部分內容:

由於看書和視頻都是大神們出版很久的了,所以知識點會相對落後些,但是不要緊,你要跟著大神們的步伐入門即可,而新的知識點,你可以關注一些大神的博客,緊跟大神步伐,就不會落伍,另外推酷這個app也不錯,不是廣告!!

4、 第四部分個人開發項目:

基於前面的基礎部分學習,相信你是很寂寞的,因為都是跟著別人說的做,實現別人的代碼,沒關係,只有這樣你才會有基礎;那麼有了基礎後就要自己動手開發一個個人的項目,至於想開發什麼這個可以根據你自己的喜好,來實現你自己的app吧,這個是你自己實戰的過程,會對你有很大提高,題主自己就開發了一個app,就在前幾天上線了騰訊的應用寶。

5、第五部分開發工具:

上面說過前面學習的資料可能是大神出版很久的所以用的開發工具是Eclipse,但是現在主流使用的是AndroidStutio這也是官方推薦的,所以建議直接使用AS真的是方便很多,題主開始學習的時候也是擔心AS太新穎,怕玩不轉,人家教程是Eclipse自己用AS萬一不一樣就傻眼了,其實完全不用擔心,AS只是一個開放工具而已,你只需要幾天適應時間,稍微用點時間研究下即可使用,沒錯的。

三、題主個人學習經歷概要:

題主從提出這個問題開始就一直堅持著學習著,但是到目前為止全是邊邊工作邊學習,每天下班堅持學習2-3個小時,周末堅持學習,由於題主工作經常出差所以會耽誤學習時間,因此在2015.4.19日向公司提交了辭職申請,但是最終各種原因沒有離職,所以還是一直邊工作邊自學至今。下面分享下題主開發已經上線應用寶的「差旅記」APP,主要實現的功能就是記錄出差日常的一些形成規劃,消費記錄,物品備忘,差旅日誌,拜訪客戶記錄,以及記錄查血等功能,下載鏈接應用詳情,不是廣告,免費,大家如果願意可以下載點擊下試試,提提想法交流下,下面是一些簡單的截圖,這些都是一個菜鳥的經歷,各位不喜勿噴,歡迎交流提寶貴意見:


我還是有資歷來回答這個問題的,當初從來沒有接觸過Android 開發(以前學過Java),後來完全自學,最後找到了一份Android 開發的工作。

下面就說一些我的經歷和見解吧。

我自己是不贊成去培訓的,我不排除有好的培訓機構,對學生真的很負責;因為現在培訓機構參差不齊,大都教的是皮毛,答主我曾經就進去過這個坑,所以不希望更多人去走這樣的彎路;如果你覺得自己學習能力不夠,那你根本就不適合做技術開發,所以你現在就是慢慢養成自己獨立學習的能力。

我在學習過程中發現學習Android 的好資料,分享給你。

我是如何自學Android,資料分享
我是如何自學Android,資料分享(2015 版)

學習Java 基礎
首先學習Android 是要有Java 基礎,但是不建議直接拿書來啃,我在上面的兩篇文章中有提到過,Mars 的視頻教程中有Java4Android,可以跟著它來學習Java,會上手比較快,當然不是說學習這這些以後就不學習Java 了,在以後的學習中,還是要慢慢深入學習Java 的。

學習Android
我覺得學習Android 還是要去看官方文檔的,當然對於初學者是有門檻的;所以剛開始學習可以先找一本不錯的書,把書的內容大概都學習一遍,把書上的 例子都跟著敲一敲,當然遇到不會的要去搜索,很多大牛的博客講的很通俗易懂的,值得一看。

學習開發要善於利用好工具。
搜索:Google
搜索技術問題:StackOverflow
搜索開源項目:Github
開發工具:AndrodStudio;AS 的智能,提高效率,ADT 已經差了很多了,所以要選擇好的工具。
虛擬機:Genymotion
所以使用好的工具,會讓你學習的過程更加得心應手,不管是在現在還是以後的工作當中。

關注Android 開發的最新動態
除了官方的博客外,每年的Google IO 大會要關注的;Youtube 的Android 開發也分享了很多技術教程;微博上也有大牛會時不時地分享乾貨。

希望我的建議對您有一些幫助,最後祝你通過自己的學習和努力找到一份自己滿意的工作。

也歡迎大家與我交流Android 開發互聯網相關內容;我的微信號是:AndroidMate


可能性有,大部大和個人付出有關。

我就是從零開始自學的,大概前後花了半年時間吧!找工作時起點很低,差不多算是國內第1-1.5代移動開發,那會兒面試基本都是理論基礎和現在看來再普通不過的東西。入職後半年內自己堅持每天學習到很晚,半年多以後開始帶團隊,而且後面還把同學也帶入行了,現在也都還算不錯吧。

很多人可能在給你學習思路和建議的時候說著說著就延生出來很多讓初學者乍一看就萌生退意的信息,比如操作系統原理啊、linux啊,framework啊什麼的,其實android入門很簡單,但是要精通就真的需要下功夫了。我大概按照自己的經歷簡單說下,只提供大體,高手勿噴。

一、你需要準備的:
1、一部android真機,別指望模擬器,如果想試試模擬器那建議genymotion。最好不要太趕時髦,目前階段建議從4.0入手(今年初我們開發才將兼容從2.3提升到4.0,這也是按照市場佔有率來評估的);
2、一台稍微有優勢的電腦,有錢建議直接mac吧;
3、開發工具:Android Studio、Intellij Idea,最好基於gradle構建,便於直接checkcout github上的項目閱讀,如果你非要用eclipse,那麼也可以,只是建議緊跟google的步伐;
4、一本書-《Thinking In Java》,英文好的話直接原版,翻譯的初學者看起來有些拗口,這本書建議至少兩遍,每次不管懂不懂必須把書上的代碼照著敲一遍。可能你會好奇為什麼沒有Android的書籍推薦,因為。。。實在太多了,隨便找一本,最好是直接做小demo的書,跟著過一遍。我當時直接找了部視頻跟著寫小的東西。
5、翻牆工具,不要問為什麼;

二、以上東西準備好之後,找個安靜的地方,一個月過一遍《Thinking In Java》,後面再花2-3周時間重複一遍;

三、當你覺得自己的Java已經可以了,那麼開啟Android之旅吧!可以去論壇什麼的看看,還是有很多人活躍在各大論壇的,比如eoeAndroid、apkBus、stackoverflow等,當然我認為最有凝聚力的還是github。還有很多國外優秀的論壇可供瀏覽如anddev、Hello Android等等;

四、什麼時候你覺得自己能隨便寫些小東西,那麼找個小的軟體作為模板,做一個山寨的出來,數據可自己模擬。至於這個時間要取決於第三點的進度,個人建議第三點也是1-1.5個月。寫小東西一定要給自己壓力,定好deadline。這樣的山寨產品大概做2-3個為止,期間最好藉機了解當下流行的開源框架,也可從中學點兒經驗,便於快速形成自己的代碼風格;

五、以上花在學習上的時間大概4-5個月了,接著你需要真正了解什麼是項目。最好找做這行的朋友給你一個完整的項目代碼,從頭到尾給你講一遍項目框架和整體結構,如果無條件那就多去github逛逛。

六、開始找工作,誠實些,讓別人看到你的態度。我面試別人的幾次中都是先看態度,事實也證明了,這種選擇沒錯。

七、如果你找到工作了,那麼恭喜你,但同時也要提醒你,你的學習之路才剛開始,現在你就可以按照大牛們推薦的自學模式來了,該了解的始終逃不掉的。

第一條也許你回覺得再平常不過了,那為什麼我還要單獨列出來呢,仔細看,仔細回想,大多數人在第一條那裡都糾結過。


我把題主的問題分成兩半吧:

零基礎自學Android?答案是肯定的。

並去找工作可行性大么?個人現在的情況是正在求職中,但是從其他知友的答案來看也是肯定的!

下面的答案有個私心就是安利下自己已經上線的應用以及求職中的自己吧。

---------------------------------------------

首先來說下我的背景以及這大半年來我的自學情況吧:

1.本科通信工程,非計算機科班,大一學過C語言基礎,後來因為專業課程需要,學了一點彙編以及Matlab。這部分經歷我認為對於我後來的編程學習只有基礎語法理解方面的幫助。

2.去年11月中開始系統學習編程語言,由於想做Android開發,所以入門語言選擇了Java。

3.11月中到12月中,邊看傳智播客的一套視頻邊敲裡面的練習。

4.12月中到1月中,20天左右時間看了《編程之美》,並用Java實現書里百分之五十左右的演算法題,剩下的題由於難度太大 或者比較複雜,當時沒有深入研究下去。

5.1月中到2月中,選擇了網易公開課裡面的《斯坦福大學公開課—編程方法學》這套視頻,同樣是邊看視頻,邊完成裡面的Assignment。在這裡感謝帥帥同學@王帥 推薦這套視頻。裡面的Assignment題都是經典題目,對於初學者來說非常適合。

6.2月底開始學習Android語言,花了1個月左右的時間,照著《第一行代碼》裡面的例子,敲代碼進行實現。

--------------------------------------------

由於在學習編程之前就有兩個小產品的構思,所以也沒有想自己基礎是否打紮實了,先試著去實現,看看能不能做出個可用的產品來。截止到目前為止,兩個小產品都已經開發完畢了,其中一個「蘋果序列號查詢」已經在小米、豌豆莢、Google Play、魅族Flyme等應用市場上線並且有了一版更新(4月14日上線,到目前為止下載量已經超過1000),它是下面這個樣子的:

關於開發「蘋果序列號查詢」具體實現邏輯介紹,請移步(最近好像需要翻牆):JeffinBao - Android開發,讀書,見人,行事

另一個是我的個人簡歷應用,仿照地圖搜索的樣式做的,它是下面這個樣子的:

關於開發「JeffinBaoCV」這個個人簡歷應用的介紹,也請移步:JeffinBao - Android開發,讀書,見人,行事

----------------------------------------------

上面算是回答了零基礎自學Android這半個問題的一部分吧,針對題主具體幾個問題,我也來說說自己的看法吧。

1.自學vs報班?

我跟題主一樣都屬於裸辭開始學編程準備轉行的,這樣風險很大,但從另一方面說決心也比較大。我覺得題主的情況,加上如果題主自制力還過得去的話都應該自學。

報班雖然有人指導,但是學習的節奏是跟著培訓班的課程;自學只有自己一個人,難免會孤單,所以我的辦法是每天都去圖書館自習(除了玩和休息以外基本一周6天去圖書館),圖書館氛圍比家裡好很多,看著別人都在學自己的東西,也就不太好意思多開小差了;自學過程中大部分時間Google就是指導者,遇到一個問題,如何通過Google找到適合的答案也是一項技能啊。

2.自學能找到工作么?

這個問題等我找到工作了再來做肯定的回答吧!

3.自學到什麼程度可以去工作?

具體技術到什麼程度我現在也無法描述,畢竟還沒有找到工作。但是從非技術角度,我認為辭職差不多7個月以後,我應該開始找工作了:

a.不希望無工作狀態持續太久,雖然辭職前的經濟準備是按照至少1年不工作的標準來的,但是真正執行起來發現花錢的速度遠遠比自己預計的要快,而且這中間,前同事們都已經紛紛加過一次薪,這無形當中會給我一定的壓力。

b.雖然我感覺自己還算是一個自制力比較強的人了,但是在自學過程中,也會有偷懶的情況發生,一般一周花在編程上的時間在36-40小時左右,因為沒有商業項目上的壓力,自己的緊迫感不是那麼強,所以希望能儘快找到工作,給予自己更大的刺激和壓力。簡單來說就是自學越到後期,自己的惰性就會越大。

4.關於學習資料,流程?

我剛開始的一段回答中就是我這半年多來的學習過程。

-----------------------------------------

寫了這麼多,不知道有沒有幫助到題主,下面是我的應用以及個人情況的介紹:

1.小米、豌豆莢、魅族Flyme、Google Play、鎚子應用商店上搜索「蘋果序列號查詢」,有任何問題,歡迎反饋給我丫。

2.第二個應用做的是個人簡歷—JeffinBaoCV,沒有上線,感興趣的朋友可以通過下面鏈接下載(由於身邊手機不多,可能在小屏幕低版本系統的手機上會有適配問題,如果有,也歡迎反饋給我丫,多謝):百度雲 請輸入提取密碼.(提取碼:9x6d)

3.下面是跟我有關一些主頁的鏈接:

個人主頁:JeffinBao - Android開發,讀書,見人,行事
主要用於寫技術文章和一些自己認為寫得比較好的文章,剛開始用jekyll引擎不久,所以內容比較少。

GitHub主頁:JeffinBao (Jeffin.Bao) · GitHub
主要用於託管自己的代碼,尋找一些好的開源項目來學習使用。

如果你對我感興趣,請私信我或者通過下面郵箱聯繫我吧,謝謝!

郵箱:bjf13609846991@gmail.com

----------------------------------------- 我是大大的分割線

經過兩周的時間,我順利在杭州找到一份Android開發的職位,運氣很好。只想說明一點,我的親身經歷證明

零基礎自學Android並去找工作可行性大么?

是可以實現的啊!!!一定要加油並且堅持啊!!!


自學能力很強,比較自律的話就自學吧,找本書開始練,不停的寫
這一階段主要要掌握的:
如果沒接觸java語法和編程,那麼需要了解基本的工程結構;java語法和幾個常用的類和操作,比如File文件操作,HttpClient(現在推薦UrlConnection)網路鏈接,常用的集合類HashMap,ArrayList等;代碼的調試技巧(log系統和斷點等其他);android常用控制項和ui布局能力。
ok,這一步快的話3個月自學能掌握的比較好,慢一點也沒關係,有人交流和請教的話可以加快,然後找個實習機會(或者事情較少、要求較低的正式職位),然後開始實戰練習,這是前期進步最快的階段,通過需求來檢驗自己,充實自己,到了無法提高的時候(一年左右)就要開始看更加深入的書和閱讀一些開源源碼了。
基本不了解培訓情況和效果,所以不知道怎麼說,但是交流的環境和氣氛應該比自學好很多,看你取捨。我也是畢業才接觸android,實習時看java,學習簡單的控制項,然後開始工作了也很多時間學習,所以不用怕,哪怕工資低一點,只要有機會。漲工資真的不要太快。
加油,祝你做到!


我學經濟學的 畢業後零基礎去北京的培訓機構學習 當前做android兩年 都是因為公司不捨得花錢 所以項目的android端都是一個人負責 自我感覺實力應該中等

雖然培訓機構是個坑 但是我卻很需要它 我自我懷疑我的自學能力 首先我之前幾乎沒接觸過任何代碼 當時的我連eclipse都不知道長什麼樣 我需要一個人教 我找到了培訓機構

我並沒有說一定要學android 只是想學一門編程技術 當時覺得未來手機發展會好 打算學手機應用開發 去培訓機構報名 本來我報的是ios 但是過去才發現這原來需要蘋果電腦 臨時改成android開發

我是班上唯一的南方人 也是班上僅有三個從未有過編程基礎的學生 現在我是唯一堅持做android沒改行的

培訓機構只是一個把你帶上道的領路人 不要迷戀他 我之所以學 是因為我很早就膜拜那些通過代碼實現出許多特效的人 所以我打算插一腳
中間很多次自我懷疑 但最後還是堅持下來了 在培訓的幾個月 自從懂得怎麼敲代碼後 天天看各種源碼 雖然完全不懂 然後天天敲著玩 周末也是 來北京幾個月哪裡也沒怎麼去 除了住的地方和上課的地方
剛培訓出來後 雖然老師有說叫我們修改工作經歷 並贈送我們幾個項目 不過我沒這麼做 首先當時還是迷茫期 不確定自己實力 覺得過去工作沒一段時間被發現是菜雞然後滾蛋很沒面子 所以實話實說 不是計算機專業 沒工作經驗 碰了一個多月的壁 結果還是機構老師聯繫了一家願意招的 不過很坑 老闆不懂技術 只是想最低成本開發 然後最少的錢拉到項目 屬於業界毒瘤的那種
不過我還是在這公司幹了 在這種變態老闆加變態客戶的地方 我的技術提升簡直是量級的 還能獨立負責項目 還能去面試新人 然後指出這個新人是坑

不過我本來就沒拿這個當做賺大錢的工具 我真的是因為真愛 不然也不會在那種外包公司活那麼久 後來想做產品 就回到的家鄉開發產品 工資會比不是編程的同學高 但比編程的人士低

當前我還是有危機感 因為我花了兩年時間研究android 其他語言我都不懂 我這邊這個三線城市各種程序員各種技能點點滿 什麼php.android.html樣樣精通 我壓力還蠻大的 也準備開始新語言的學習 當前打算自學

未來我打算一直敲代碼到老年痴呆為止


可能性不大,但如果你有國外付費賬號根外國老師學還是有可能的。閉關修鍊2個月,並且身邊有個隨時可以回答你問題的過來人。


以我在成都手游圈的見聞來說,能寫出一個可以正常運行的連連看,就能找到工作。自學或者報班都差不多。
這是2013年的行情。

我真的不是在黑。


據我所知道的,我們公司有一個原先是干廚師的,培訓轉行了java!
還有一個大學化工的,培訓轉行了安卓!


我用我自己的實踐證明了,這個是可行的。從零開始,沒有多少Java知識,到現在也得到了自己比較想要的工作。在學習一件事情之前,重要的是看準方向並堅持走下去。


以前在知乎上看到一句話,但不知道是誰的了,在這裡借用一下:程序猿都是放養的,你去參加培訓班可能會被養成萌寵哦。


2016/07/12過來補充一下自己的經歷,自己斷斷續續的也算是學習了一年吧,因為大四課程還有畢業的事情中間間斷了很長時間。
感覺自己應該算是粗略的過了三遍吧,第一遍就如同原答案一樣什麼都不懂的去學Android,然後才發現需要Java基礎,去補Java。這一階段也就是囫圇吞棗,不知其味,語法也不明所以。
第二階段開始漸漸的熟悉了語法,開始再回顧以前忽略的內容,遇到問題去網上尋找答案,開始接觸Google,並覺得自己英語水平真心不夠用。
第三段就是開始敲項目,自己嘗試寫項目。並對以後得職業有了一定的了解和規劃,學習更多的框架並更加深入的去了解Android。
。。。。。。原答案。。。。。。
看完排名第一的那位回答以後,我深深覺得自己被坑了(?_?),Android需要java基礎啊,java基礎,java基礎!!重要的話說三遍!否則看書也是白看啊,就是看了第一的那個回答我才去買的第一行代碼,翻開沒幾頁才看到需要java基礎啊(?_?)!!對著書敲代碼不明白意思的有木有啊!!於是我便滾去看了一個星期的java,看到數組那邊又滾回android了,發現依舊不懂啊,準備再去學一個月的java!!(?_?),想哭有沒有啊!


如果99年有知乎的,會不會有下面這個場景呢?
一個35歲的中年人在電腦前敲下了一個問題:
「一個大學英語老師能否帶領另外17個人去做電商,並且15年後成功在美國上市身價千億成為中國首富,可行性大嗎?」


你先把自己掂量一下。看看自己的自制力如何。自制力強的可以自學。自制力差的報班比較好。
自學到什麼程度呢。其實吧。我覺得軟體開發一般來說技術不重要。又不是什麼高端人士架構師、資料庫管理員之類的什麼鬼。一般人寫代碼就一個字抄。
我覺得讀程是程序員最重要沒有之一的能力了。我是上的培訓班,在學校里學的算比較好的。有單位在我沒畢業前就把我招走了。去了單位以後見識各種沒聽說過的新技術,照樣啥都不會。學的東西感覺一點也用不上。沒辦法啊。努力用功唄。把別人寫好的程序複製過來,然後不斷的調試。一點一點的摸看都是啥意思。最終弄出來想要的。我那個領導就說了。你們這些新人,寫程序不是寫程序都是調出來的。
技術都是日新月異的,自學見的總是有限。先加入一個工作,然後比別人更努力的去工作,學會工作所需要的技術才是硬道理。閉門造車誰知道你學的有沒有用呢。
硬要說要學到什麼程度,我招沒經驗的新人的時候都是比較寬容的。隨便問幾個不痛不癢的問題。主要看態度吧。難道公司還指望新招的沒有工作經驗人挑大樑不成。
說點個人經驗。開始的時候最好找個小公司。千萬別找外包。小公司你努力,你乾的就多。你提升就快。我第一份工作進公司三個月。摸清了公司做的平台的所有模塊。平台上用的新技術都是我學的。對技術提升很大。還非常有成就感。覺得自己對公司多重要,雖然這都是錯覺。現在在一個大公司,一點存在感都沒有。感覺大家都是按部就班的混日子,太難出頭了。
最後還有一句話,學編程,先翻牆。


本科應屆生,自學android基礎一個多月(之前一年前自學過java一個多月),然後開始做畢設,大概2個月。目前找到android開發工作。自學主要是網路資源,比如慕課網等視頻學習,電子書就是題主那些。然後遇到問題去博客找解答,qq群加了幾個,聊天居多。。。個人感覺入行不難,繼續走下去就需要自身的努力了。畢竟是搞技術,自己停止不前就是後退。


推薦閱讀:

「傳輸自動生成代碼並執行、生成所需文件」能否成為未來的下載方式?
在 GitHub 上保持 365 天全綠是怎樣一種體驗?
為什麼 Qt Creator 的編譯如此之慢?
兒童學編程,教什麼語言好?
如果不讀博士,做深度學習能找到工作嗎?還想學一下編程,C++和python,該怎麼學習呢?

TAG:程序員 | 編程 | Android 開發 | Java 編程 |