我的自學(xué)編程故事

前言

之前有人留言說(shuō)想看我的所謂奮斗史,前天的這篇調(diào)查「以產(chǎn)品思維去做微信公眾號(hào)」也顯示這部分人比例還不少,今天突然想到我在2年前在知乎回答過(guò)一個(gè)「如何自學(xué)Android編程」的問(wèn)題,今天特地去重新看了一遍,2年多的時(shí)間再次看這篇文章勾起了我不少的回憶,很感謝當(dāng)初的回答,記錄了我人生的一個(gè)階段,給我留下了人生一筆寶貴的財(cái)富。雖然可能有部分人看過(guò),但是我覺(jué)得還是有必要搬到這里,給那些還在迷茫的人一些激勵(lì)。

問(wèn)題:如何自學(xué) Android 編程?

想自學(xué)android編程,從何入手。2000年本科入學(xué),期間學(xué)過(guò)c c++ 數(shù)據(jù)結(jié)構(gòu),之后就再也沒(méi)有用過(guò)。本人數(shù)學(xué)專業(yè)出身。求大牛們指點(diǎn)迷津。

我的回答

瀉藥。我想我是有資格來(lái)回答你的問(wèn)題的,我算是徹底的從編程白癡一步步學(xué)習(xí)過(guò)來(lái)的。

之前寫了一篇博客「Android學(xué)習(xí)之路」被瘋狂轉(zhuǎn)發(fā),帶起了一陣學(xué)習(xí)Android的大風(fēng),我不曉得具體影響了多少人,但是這篇博客已經(jīng)成為Android新手學(xué)習(xí)必備的資料。很多人問(wèn)我是怎么一路過(guò)來(lái)的,姑且借這個(gè)機(jī)會(huì)說(shuō)說(shuō)我的故事吧。

內(nèi)容有點(diǎn)長(zhǎng),大家姑且當(dāng)做勵(lì)志小說(shuō)來(lái)看吧,對(duì)這些經(jīng)歷不感興趣的可以直接看最后「如何自學(xué)Android」部分。

大學(xué)

大學(xué)上的是全國(guó)二流本科,專業(yè)主要就是數(shù)學(xué)專業(yè)。大學(xué)的總結(jié)就是:逃課、掛科、籃球、泡妞、Dota。

目前為止可以說(shuō)我的大學(xué)是我這輩子過(guò)的最爽的時(shí)期,大一開始就逃課,好點(diǎn)的理由是我對(duì)大學(xué)那些課程完全沒(méi)興趣,其實(shí)本質(zhì)上是因?yàn)楦呖继珘阂至?,大學(xué)之后沒(méi)人管了,開始無(wú)止境的放縱自己。毫不夸張的說(shuō)大學(xué)四年上的課應(yīng)該沒(méi)有逃的課多。逃課最直接的影響就是掛科,從大一掛到大三,專業(yè)課數(shù)學(xué)分析特么每年都掛,后來(lái)聽說(shuō)補(bǔ)考考不過(guò)要重修,還得交錢,這特么讓家里人知道還了得,于是發(fā)憤圖強(qiáng),最終補(bǔ)考每門都以優(yōu)秀的成績(jī)過(guò)了。

相信英語(yǔ)四級(jí)應(yīng)該是大學(xué)必考吧,英語(yǔ)四級(jí)這輩子我都忘不了,我考了三次才過(guò),每次考試說(shuō)是裸考都褒獎(jiǎng)了,大學(xué)英語(yǔ)全是吃高中的底子,第一次沒(méi)過(guò),少了十幾分,第二次他媽睡覺(jué)睡過(guò)了,就沒(méi)有去考,現(xiàn)在想想當(dāng)時(shí)的自己真是腦殘,終于在第三次勉強(qiáng)過(guò)了?,F(xiàn)在想想幸虧當(dāng)時(shí)過(guò)了,之后畢業(yè)找工作時(shí)英語(yǔ)四級(jí)是最低要求。做編程這行,英語(yǔ)真的挺重要的,大學(xué)的時(shí)候一定得想辦法把四級(jí)給過(guò)了。

現(xiàn)在想想大學(xué)和編程唯一相關(guān)的課程就是C語(yǔ)言了,但是對(duì)于我們專業(yè)是屬于全校公開課,最終這門課雖然考過(guò)了,但是連i++ 和++i我都弄不明白,可想而知你們應(yīng)該能猜到我是怎么過(guò)的。

由于高中就開始打籃球,大學(xué)時(shí)毫無(wú)疑問(wèn)就入了學(xué)院籃球隊(duì),而且擔(dān)任隊(duì)長(zhǎng),所以大一、大二過(guò)來(lái)基本就是一大半是在籃球場(chǎng)度過(guò)的,也是因?yàn)榛@球征服了我現(xiàn)在的老婆。大二下學(xué)期周圍的人都在玩Dota,于是也開始了游戲之路,籃球也基本放棄了,那時(shí)候玩的瘋狂,記得最長(zhǎng)的一次和同學(xué)在網(wǎng)吧連續(xù)包夜兩星期,不過(guò)白天是回來(lái)睡覺(jué)的,不然估計(jì)早猝死在網(wǎng)吧了。

轉(zhuǎn)眼間大四了,這一年終于在我老婆的監(jiān)督下不再掛科了,而且在畢業(yè)前的最后一次評(píng)比竟然拿到了三等獎(jiǎng)學(xué)金,真是受寵若驚啊,后來(lái)錢也被狐朋狗友們拿去腐敗了。周圍的同學(xué)都在準(zhǔn)備考研,我卻唯獨(dú)對(duì)考研沒(méi)興趣,自始至終都沒(méi)有為考研花過(guò)一分錢,買過(guò)一本書。后來(lái)證明我的決定是正確的,周圍的小伙伴放棄的放棄,考不上的考不上,考上的后面也沒(méi)見(jiàn)混的有多好,當(dāng)然如果能考上好的學(xué)校還是很有幫助的。

畢業(yè)

又一轉(zhuǎn)眼畢業(yè)了,去參加了學(xué)校幾個(gè)招聘會(huì)也是醉了,全是沒(méi)聽過(guò)的小企業(yè),一去參觀都是各種廠房,根本不需要任何學(xué)歷,是個(gè)人出點(diǎn)力都可以干的那種,要么就是各種電話銷售。。。那時(shí)候真的有點(diǎn)急了,大學(xué)四年,畢業(yè)一份像樣的工作都找不到,回去怎么面對(duì)鄉(xiāng)親父老。

三月份的時(shí)候一家IT測(cè)試培訓(xùn)機(jī)構(gòu)來(lái)做宣講會(huì)(具體什么名字我就不說(shuō)了,免得認(rèn)為是廣告),聽完之后就說(shuō)培訓(xùn)之后包就業(yè),培訓(xùn)地點(diǎn)在大上海的最中心,當(dāng)然是自費(fèi),但是可以工作之后分期付款。那時(shí)候哪知道測(cè)試是干嘛的,更不懂IT是干嘛的,回來(lái)就查了下這個(gè)機(jī)構(gòu)確實(shí)存在,網(wǎng)站也有的,知道不是騙子遍決定來(lái)上海試一試。當(dāng)時(shí)下定決定要來(lái)上海培訓(xùn)之后,幾個(gè)狐朋狗友毫不猶豫的跟著我一起來(lái)了,總共應(yīng)該是7個(gè)人,決定之后沒(méi)幾天便毅然而然的背著大包小包來(lái)到上海,我們之中一部分是一次性付費(fèi),另一部分是分期。后來(lái)證明我們當(dāng)時(shí)來(lái)上海的決定是正確的。

培訓(xùn)之路

這里并不是宣傳大家去培訓(xùn),只不過(guò)被工作所逼,學(xué)校不好,大學(xué)也沒(méi)學(xué)啥真本事,稍微有點(diǎn)出路都不會(huì)去培訓(xùn)!

培訓(xùn)的日子還是蠻輕松的,一周就上四天課,朝九晚五,畢竟大家家庭都不富裕,家里辛苦攻讀了四年大學(xué),畢業(yè)還要再交錢去培訓(xùn),打心里大家都很愧疚。一開始卯足了勁要好好學(xué)習(xí),但是堅(jiān)持了沒(méi)多久就有點(diǎn)放松了,但是好歹也是都有學(xué)習(xí)的。

培訓(xùn)的時(shí)候算是接觸了點(diǎn)編程吧,課程有C語(yǔ)言、Oracle、Linux,然后其他都是軟件測(cè)試的理論,其實(shí)都是非?;A(chǔ)的東西,算是帶你入行吧,Orace就學(xué)習(xí)一些基本SQL語(yǔ)句,Linux就學(xué)了幾個(gè)命令,但是起碼知道原來(lái)電腦可以干這么多事,之前還一直以為電腦就是用來(lái)看電影、聊天、打游戲的呢?,F(xiàn)在回頭看給我一周的時(shí)間我可以看完整個(gè)培訓(xùn)課程,但是當(dāng)時(shí)的培訓(xùn)周期要四個(gè)月。

第一份工作「SunNet」

7月份拿到畢業(yè)證書就直接來(lái)了上海,四個(gè)月的時(shí)間對(duì)于我來(lái)說(shuō)實(shí)在太漫長(zhǎng)了,我等不及了,于是在課程還有最后一個(gè)月的時(shí)候我提前出來(lái)單獨(dú)找工作,當(dāng)時(shí)培訓(xùn)老師說(shuō)工作后的工資大多是3500左右,我覺(jué)得我學(xué)的比別人好,所以必須要比別人高,做好了長(zhǎng)期準(zhǔn)備面試的過(guò)程。沒(méi)想到面試第一家就直接錄取了(后來(lái)才知道原來(lái)是公司的測(cè)試懷孕在家,急需測(cè)試),公司名叫SunNet,中文名山諾,工資4000。收到offer的時(shí)候欣喜若狂!

真正接觸編程

之后便在SunNet正式入職,工作就是測(cè)試,但是就在SunNet我才真正的接觸了什么是編程。SunNet是一家小型外企,總部在休斯頓,上海這邊主要是研發(fā)部。研發(fā)人員總共不到10人,主要業(yè)務(wù)是以web為主,使用語(yǔ)言是.NET。當(dāng)然我的職責(zé)就是web測(cè)試了,工作倒是沒(méi)什么難點(diǎn),主要測(cè)試就我一個(gè),一進(jìn)來(lái)就有好幾個(gè)項(xiàng)目等著我測(cè)試,還好自己是數(shù)學(xué)專業(yè),邏輯思維能力還不錯(cuò),加加班總算能按時(shí)完成任務(wù)。

三個(gè)月的時(shí)間順利轉(zhuǎn)正,之后的某一天偶然得知公司一開發(fā)人員工資比我高2000,其實(shí)也就比我早畢業(yè)一年而已,才知道原來(lái)開發(fā)和測(cè)試工資差距這么大,于是當(dāng)時(shí)就下定決心要轉(zhuǎn)行做開發(fā),所以說(shuō)起我從測(cè)試轉(zhuǎn)行開發(fā)的原因是因?yàn)殄X,一開始說(shuō)因?yàn)榕d趣堅(jiān)持下來(lái)的都是扯淡。。。

編程之路

由于在公司我的主要任務(wù)仍然是測(cè)試,任務(wù)也挺多,基本每天要9點(diǎn)能到家。下定決心之后只能利用業(yè)余時(shí)間來(lái)學(xué)習(xí),由于公司主要業(yè)務(wù)是.NET,很自然我一開始學(xué)習(xí)的方向便是.NET,后來(lái)才了解到.NET是基于C#的,學(xué)習(xí).NET之前必須要先學(xué)習(xí)C#,于是像公司借了一本C#學(xué)習(xí)資料,就這樣學(xué)習(xí)了大概兩周吧,還仔仔細(xì)細(xì)做了一大堆筆記。之后覺(jué)得語(yǔ)法學(xué)的差不多了,便又借了本.NET的書開始學(xué)習(xí)web開發(fā)。

但是web開發(fā)遠(yuǎn)沒(méi)有學(xué)習(xí)一門語(yǔ)言這么簡(jiǎn)單,后來(lái)才知道web開發(fā)涉及到html, css, javascript, ajax, database等,范圍太廣了,于是為了效率,我只能每一項(xiàng)掌握住基礎(chǔ),于是網(wǎng)上搜索找到 w3school 在線教程 這個(gè)好東西,里面的東西都是基礎(chǔ)的,我把教程整理到手機(jī)里,每天上下班的地鐵上,吃飯的時(shí)候,回家的時(shí)候等等利用一切時(shí)間來(lái)學(xué)習(xí),也是差不多大概2周的時(shí)間掌握了html, css, js的一點(diǎn)基礎(chǔ),接下來(lái)準(zhǔn)備正式學(xué)習(xí).NET的時(shí)候,被我們老大知道我正在學(xué)習(xí)開發(fā),我們老大叫Aaron,是一位典型的程序員,比較胖,人品超好,知道后不建議我學(xué)習(xí).NET,說(shuō).NET出來(lái)都十來(lái)年了,已經(jīng)很成熟了,很多人在學(xué)校都有.NET教程,現(xiàn)在學(xué)習(xí)已經(jīng)比別人晚了。現(xiàn)在移動(dòng)開發(fā)剛嶄露頭角,也沒(méi)多少人會(huì),建議我直接學(xué)習(xí)移動(dòng)開發(fā)。真是一句點(diǎn)醒了我啊??!

移動(dòng)開發(fā)

聽了老大的建議,于是放棄了.NET,開始準(zhǔn)備學(xué)習(xí)移動(dòng)開發(fā)。那時(shí)候是12年初,整個(gè)移動(dòng)互聯(lián)網(wǎng)也是剛起步階段,iPhone4還是非常火的時(shí)候,毫無(wú)疑問(wèn)我把目標(biāo)鎖定在了iPhone開發(fā)上。

這次有經(jīng)驗(yàn)了,知道了iPhone開發(fā)首先肯定得有一門編程語(yǔ)言的,了解到是Objective-C,于是又從公司借了一本OC的書(公司書很多,老大每月都會(huì)買來(lái)好多書,雖然看的人很少),又花了將近一周的時(shí)間來(lái)了解了基本語(yǔ)法,因?yàn)橹皩W(xué)了C#,這次沒(méi)完全看完的情況下想直接上手實(shí)踐。正打算學(xué)習(xí)的時(shí)候,才知道iOS開發(fā)必須得在mac上才可以,也就是說(shuō)我得自己有臺(tái)mac電腦,雖然當(dāng)時(shí)公司是有的,但是回家的時(shí)候不能繼續(xù)學(xué)習(xí)練習(xí),肯定影響效率的,一臺(tái)mac對(duì)于當(dāng)時(shí)的我簡(jiǎn)直是奢侈品,雖然現(xiàn)在也依然是奢侈品,但當(dāng)時(shí)根本不可能買得起。于是只有放棄iPhone開發(fā)轉(zhuǎn)向Android(后來(lái)才知道有虛擬機(jī)這東西。。。)

Android學(xué)習(xí)之路
幾經(jīng)波折,終于才確定自己的方向,這期間已經(jīng)耽誤了不少時(shí)間,走了不少?gòu)澛妨?,但是仍然阻擋不住我轉(zhuǎn)行開發(fā)的腳步。公司關(guān)于Android的書竟然沒(méi)有,于是我自己親自買了一本Android書籍,叫「瘋狂Android講義」,作者是李剛??!不說(shuō)這本書有多好吧,這本書比較厚,非常厚,所以講的一些基礎(chǔ)比較細(xì),新手按照上面的完全可以看懂,現(xiàn)在不知道這本書內(nèi)容更新了沒(méi),之前內(nèi)容對(duì)于現(xiàn)在來(lái)說(shuō)有點(diǎn)老。這個(gè)時(shí)候應(yīng)該是12年的3月份,說(shuō)起來(lái)也巧,這個(gè)月公司剛好接了個(gè)移動(dòng)端項(xiàng)目,iOS有人來(lái)做,但是公司上下沒(méi)有會(huì)Android開發(fā)的,其他人都有自己的項(xiàng)目在忙,老大看出我的興趣,就問(wèn)我想不想試一下,我當(dāng)然欣然同意了,只此就開始正式的邊做邊學(xué)習(xí)Android。

那個(gè)時(shí)候的測(cè)試任務(wù)仍然很重,于是我只能擠出時(shí)間來(lái)做這個(gè)項(xiàng)目,基本是每晚以及周末都會(huì)自動(dòng)加班來(lái)完成這個(gè)項(xiàng)目,現(xiàn)在看來(lái)那個(gè)項(xiàng)目真是太簡(jiǎn)單不過(guò)了,快的話一周都不要就可以搞定了,但在當(dāng)時(shí)我摸爬滾打了一個(gè)多月總算搞定了。

做完這個(gè)項(xiàng)目自己有了點(diǎn)信心,但當(dāng)時(shí)自己的主要任務(wù)還是測(cè)試,自己開發(fā)的時(shí)間是少之又少,于是下定決心離職找一個(gè)專門做Android的工作。說(shuō)明原因之后老大很理解,也是建議我想做開發(fā)的話就放手去找一個(gè)專門做開發(fā)的職位,這樣進(jìn)步會(huì)比較快。

第一份工作能遇到我的老大Aaron,真是我的福分!

薄荷

12年4月底離職之后,我便開始在家里準(zhǔn)備面試,投簡(jiǎn)歷,由于自己的基礎(chǔ)很薄弱,之前的Android經(jīng)驗(yàn)也非常少,那時(shí)候說(shuō)是招聘Android職位,但是很多公司面試基本全是Java內(nèi)容,而且我能感受到工作內(nèi)容和Android相關(guān)的也比較少。來(lái)薄荷面試的時(shí)候感覺(jué)很好,包括CTO、CEO的面試都感覺(jué)不錯(cuò),果然沒(méi)幾天就收到offer,來(lái)之不易的機(jī)會(huì),非常珍惜。

12年5月中入職薄荷,你們以為我到了薄荷之后Android之路就一帆風(fēng)順?錯(cuò)了,路更艱難。我是薄荷入職的第一位Android工程師,薄荷在那時(shí)候只做iOS平臺(tái)的App,事實(shí)證明這種做法不可取,包括BOSS后面也親自說(shuō)投資人來(lái)投資的時(shí)候一看數(shù)據(jù)這么少,后面做了Android平臺(tái)之后用戶數(shù)據(jù)才慢慢上來(lái),畢竟還是Android用戶基數(shù)大。

來(lái)薄荷的第一個(gè)任務(wù)是做聯(lián)想TV的一個(gè)視頻App,很蛋疼,折騰聯(lián)想的SDK,遙控器等,好歹App功能比較簡(jiǎn)單,試用期間完成的還不錯(cuò),就這樣順利轉(zhuǎn)正了。轉(zhuǎn)正之后做了第一個(gè)Android App,叫減肥食物庫(kù),功能與頁(yè)面全部Copy iOS版的App。這個(gè)時(shí)候一大堆沒(méi)做過(guò)的東西全部涌來(lái)了,網(wǎng)絡(luò)庫(kù)、http、api對(duì)接、組件定制等等,那個(gè)時(shí)候沒(méi)有像現(xiàn)在各種資料、開源庫(kù)一大堆,公司也沒(méi)人能給指導(dǎo),只有硬著頭皮慢慢來(lái),為了能把進(jìn)度趕上去,上線前夕曾經(jīng)連續(xù)在公司通宵三天三夜,累了就在公司趴一會(huì),這輩子就經(jīng)歷過(guò)這一次,雖然項(xiàng)目最終也拖延,但總算在接受范圍之內(nèi)上線,這在當(dāng)時(shí)是第一個(gè)試水Android平臺(tái)的App,可惜的是上線之后表現(xiàn)不好,沒(méi)有達(dá)到預(yù)期的效果。

Ruby、Rails

這個(gè)App試水表現(xiàn)不好之后,公司決定暫停Android業(yè)務(wù),主攻iOS平臺(tái)。我的位置就變得很尷尬,CTO找我談話希望我能轉(zhuǎn)做Ruby,Android業(yè)務(wù)會(huì)暫停,我們后端的api全部是基于Ruby語(yǔ)言的,雖然當(dāng)時(shí)心里有點(diǎn)不情愿,但是沒(méi)辦法,為了不丟掉工作我只得硬著頭皮做下去,于是就開啟了我的Ruby之旅。

學(xué)習(xí)Ruby以及Rails是我目前為止遇到的最大的困難。Ruby是一種動(dòng)態(tài)語(yǔ)言,Ruby On Rails是一種流行快速開發(fā)web的框架。學(xué)習(xí)ruby不同地方在于要學(xué)習(xí)Linux,代碼基本全是在終端進(jìn)行,沒(méi)有IDE,沒(méi)有編譯檢查,習(xí)慣各種命令行。這對(duì)于一個(gè)剛開始進(jìn)行開發(fā)的人來(lái)說(shuō)真的是太困難了。那個(gè)時(shí)候從內(nèi)心也有抵觸,學(xué)習(xí)領(lǐng)悟能力也超差,我能感覺(jué)到公司領(lǐng)導(dǎo)層對(duì)我已經(jīng)不是很滿意了,現(xiàn)在想想那時(shí)候公司沒(méi)能開除我真是得感謝我們的CTO,一個(gè)很有耐心、敢于給新人機(jī)會(huì)的人。中間遇到非常大的困難,還好得到薄荷ruby工程師小伙伴們的幫助,一直鼓勵(lì)我,遇到問(wèn)題總是不厭其煩,在基礎(chǔ)、經(jīng)驗(yàn)、能力不行的情況下,我總得克服這種困難,讓別人看出我的態(tài)度。于是學(xué)習(xí)Ruby、Rails的那段時(shí)間我每天都是做最后一班公交車回去,我記得好像是11:40. 這個(gè)狀態(tài)持續(xù)一個(gè)月,包括周末,從未間斷。

這一個(gè)月我在公司的主要任務(wù)就是學(xué)習(xí),沒(méi)有給安排任何事情,偶爾幫同事修修電腦,調(diào)下電話線,為此我非常感謝薄荷,感謝我的CTO Vincent,恐怕這在任何一家公司都不能這樣給一個(gè)人單獨(dú)的學(xué)習(xí)時(shí)間吧。一個(gè)月之后,學(xué)習(xí)的終于有點(diǎn)起色,開始實(shí)際做Rails項(xiàng)目,做后臺(tái),寫api,雖然效率很低,代碼很爛,但是在做Ruby的過(guò)程跟著我們CTO學(xué)了不少設(shè)計(jì)上的東西,面向?qū)ο蟮乃枷耄O(shè)計(jì)模式等都在這個(gè)階段接觸的,自此我已經(jīng)習(xí)慣各種終端操作,熟悉一些Linux基本命令,喜愛(ài)Ubuntu,參加了Ruby Conf 2012大會(huì),喜歡Sublime,接觸Git,GitHub,搭建了自己的Blog。我感謝做Ruby的這段時(shí)間,他讓我接觸了不一樣的世界,心態(tài)完全變了,變得更開放,更樂(lè)于分享。

回歸Android

做ruby的這段時(shí)間很是快樂(lè),付出了這輩子最艱辛的努力,換來(lái)了點(diǎn)小小成果,我喜歡ruby語(yǔ)言,到現(xiàn)在為止都認(rèn)為ruby是最優(yōu)雅的語(yǔ)言。但是Android在我心里一直都有一個(gè)位置,從未放棄過(guò)。直到13年5月的時(shí)候,這個(gè)時(shí)候Android份額近乎瘋狂的增長(zhǎng),公司不得不開始注意Android市場(chǎng),于是公司打算推出Android版app,于是作為公司唯一的Android程序員,CTO再次征求我的意見(jiàn),問(wèn)我想繼續(xù)做ruby還是做Android,雖然我更喜歡ruby語(yǔ)言,但是從心底我更喜歡客戶端開發(fā),和語(yǔ)言無(wú)關(guān),客戶端是用戶最能感知的一部分,做出的東西更有成就感一點(diǎn),我就在等待著這個(gè)機(jī)會(huì),這一刻我毫不猶豫的選擇繼續(xù)做Android。

回歸Android開發(fā)的我一個(gè)人開發(fā)新的App,單槍匹馬,經(jīng)過(guò)之前的一系列挫折,突然感覺(jué)再?zèng)]有更困難的了,一個(gè)人摸索架構(gòu)、克服難題,App一推出便一直快速瘋狂的增長(zhǎng),目前薄荷App總用戶數(shù)已經(jīng)破千萬(wàn),公司也順利融資,業(yè)務(wù)發(fā)展越來(lái)越好。

后話

由于一個(gè)人一步步過(guò)來(lái),我深知這其中的不易,之后自己一直堅(jiān)持寫博客,除了自己的積累外,還希望幫助更多的人,所以現(xiàn)在你們可以看到不管是我的GitHub,博客,微博還是微信公眾賬號(hào)都很樂(lè)于分享,希望自己走過(guò)的這些彎路你們能少經(jīng)歷,雖然最終我也到達(dá)了終點(diǎn),但是如果能有直路可直達(dá)最好不過(guò)了。

總結(jié)

上面啰啰嗦嗦的敘述我的這些陳年經(jīng)歷,看似和題主的問(wèn)題無(wú)關(guān),其實(shí)有很大關(guān)系:

  • 1.如果你是非科班畢業(yè)想要轉(zhuǎn)行編程,看了我的經(jīng)歷你一定很有信心與動(dòng)力,我能,你一樣能,何況我中間走了這么多彎路;

  • 2.如果你接觸過(guò)一些數(shù)據(jù)結(jié)構(gòu)、編程語(yǔ)言之類的,想要學(xué)習(xí)編程,想題主這種,你更應(yīng)該有信心,你比那些非科班的人已經(jīng)多了一些基礎(chǔ),你要做的只是堅(jiān)定信念,堅(jiān)持走下去;

  • 3.不要感慨上天的不公平,一路走來(lái)很悲催,走了太多的彎路,遇到了太多的困難,都是我這輩子難以忘記的坎坷,但同時(shí)我是幸運(yùn)的,我的前任老大Aaron以及現(xiàn)任CTO都深深的影響著我后來(lái)的職業(yè)發(fā)現(xiàn),我在薄荷的一些小伙伴們對(duì)我的幫助,我女朋友無(wú)數(shù)個(gè)日夜的理解與支持,上帝在給你制造坎坷的時(shí)候總會(huì)對(duì)你有些眷顧;

  • 4.如果你準(zhǔn)備或已經(jīng)在做開發(fā)的人員,沒(méi)有信心或動(dòng)力,又或是對(duì)未來(lái)迷茫的時(shí)候,姑且當(dāng)做一篇?jiǎng)?lì)志小說(shuō)來(lái)看,你要做的就是做好你當(dāng)下在做的事,相信你的付出一定能有所收獲;

建議

評(píng)論里有人說(shuō)是在校生,想要給點(diǎn)建議,那就以一個(gè)反例的身份給出事后的一些建議吧:

  • 1.每天花1小時(shí)看書,難的不是1小時(shí),難的在堅(jiān)持;
  • 2.最好不要掛科,因?yàn)閽炝四氵€是得花時(shí)間補(bǔ)回來(lái);
  • 3.英語(yǔ)對(duì)編程來(lái)說(shuō)很重要,試著習(xí)慣英語(yǔ)閱讀;
  • 4.數(shù)據(jù)結(jié)構(gòu)和算法要學(xué)好,這算是對(duì)編程來(lái)說(shuō)最重要的課了,以后不見(jiàn)得能用得上,但用的時(shí)候起碼你有印象;
  • 5.大三或者大四一定要去實(shí)習(xí),對(duì)于編程來(lái)說(shuō)經(jīng)驗(yàn)還是比較重要的,實(shí)習(xí)經(jīng)歷比你那些理論要有效的多;
  • 6.找個(gè)女朋友吧,不是說(shuō)工作了你就找不到了,而是工作之后從事編程很少有時(shí)間和精力去接觸別的女孩,所以可以的話在畢業(yè)前找個(gè)可以同甘苦的女朋友吧;
  • 7.第一份工作很重要,因?yàn)槟銜?huì)受一些周圍同事、公司氛圍的影響,我為自己遇到Aaron、Vincent而感到幸運(yùn),他們倆是我目前為止最尊重的兩個(gè)人;

如何自學(xué)Android編程

最后才應(yīng)該是題主最需要的:

  • 1.「Android學(xué)習(xí)之路」前面說(shuō)過(guò)我的這篇博客是Android新手必備資料;

  • 2.書不在多,適合你就好,這里推薦一本Android和兩本Java書籍吧;

    • 「第一行代碼」:郭霖大神的著作,CSDN博客專家;
    • 「Thinking In Java」:Java經(jīng)典書籍,不必說(shuō);
    • 「Effective Java」:Java進(jìn)階必備書籍;
  • 3.有些人一開始看書也有困難,沒(méi)關(guān)系,那就去網(wǎng)上看視頻,結(jié)合視頻和書一起看,邊看邊敲,推薦下Mars老師視頻,包括java基礎(chǔ)以及Android篇都有:

    • Java4Android.zip_免費(fèi)高速下載
    • 極客學(xué)院的視頻
    • 慕課網(wǎng)的視頻
      口味不同的人可去各大網(wǎng)站自行搜索適合自己的教學(xué)視頻。
  • 4.多去混GitHub,目前最流行的開源社區(qū),多參與開源項(xiàng)目,慢慢試著讀牛人們的代碼,時(shí)機(jī)到的時(shí)候自己也可以為開源社區(qū)貢獻(xiàn)力量,可以這樣說(shuō)在GitHub上認(rèn)真混一年,比你在大學(xué)四年學(xué)的東西要多的多;

  • 5.關(guān)注一些Android界不錯(cuò)的博客:

    • 我的博客:http://stormzhang.com
    • 我的一些好基友的博客,他們既是 Android 牛人,也是活躍在社區(qū),樂(lè)于分享幫助他人,推動(dòng)技術(shù)進(jìn)步的有為青年. http://stormzhang.com/link/
  • 6.善于利用搜索引擎,從用Google做起,學(xué)會(huì)英文關(guān)鍵字搜索,有問(wèn)題第一時(shí)間想到去搜索而不是去請(qǐng)教別人;

  • 7.關(guān)注我的微信公眾號(hào):AndroidDeveloper「googdev」,目前應(yīng)該算是國(guó)內(nèi)最有影響力的個(gè)人Android公眾號(hào)了,我會(huì)經(jīng)常分享一些Android方面的原創(chuàng)干貨,希望能繼續(xù)干著自己喜歡的事,幫助更多的人。

大家都有了以上相同的教程,但是人和人之間的區(qū)別在于:別人有顆更強(qiáng)大的內(nèi)心,可怕的是比你聰明的人比你還要更努力??!

當(dāng)你下定決心,準(zhǔn)備前行的時(shí)候,剩下的只有堅(jiān)持了!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容