我是如何自學(xué)成為程序員的
java語(yǔ)言基礎(chǔ)
首先肯定需要的就是java語(yǔ)言了,雖然有一些別的語(yǔ)言也可以開(kāi)發(fā)android,但是都是小眾。因?yàn)锳ndroid SDK 是基于Java 開(kāi)發(fā)的,使用的語(yǔ)言是Java,如果有了Java 基礎(chǔ),學(xué)Android 就會(huì)事半功倍;比如在Android 中要使用到的接口,抽象類(lèi),類(lèi)型轉(zhuǎn)換,繼承,覆蓋,匿名內(nèi)部類(lèi),多線(xiàn)程,這些都是Java 語(yǔ)言的,如果以前沒(méi)有基礎(chǔ)過(guò),學(xué)Android 會(huì)很郁悶的;當(dāng)然如果你有C++ 基礎(chǔ),當(dāng)然也可以基于NDK 開(kāi)發(fā),可以不使用Java;
最近冒出來(lái)的kotlin是google官方支持的開(kāi)發(fā)語(yǔ)言,但是靠真正流行還需要很長(zhǎng)時(shí)間,個(gè)人推薦還是以java為主,但是kotlin盡量也要學(xué)習(xí)一下,多學(xué)一門(mén)語(yǔ)言怎么也是有好處的
對(duì)于沒(méi)有java基礎(chǔ)的同學(xué)我推薦一些資源:
Mars 的Java4Android視頻資源,可以在51cto中找到,很好的視頻資源,適合初學(xué)者學(xué)習(xí),我當(dāng)初就是從這里開(kāi)始了程序員這條不歸路。
《Java從入門(mén)到精通(第3版)》從初學(xué)者角度出發(fā),通過(guò)通俗易懂的語(yǔ)言、豐富多彩的實(shí)例
搭建Android開(kāi)發(fā)環(huán)境
現(xiàn)在大部分開(kāi)發(fā)人員都用的是Android Studio,從2014年底到現(xiàn)在,經(jīng)過(guò)了三年時(shí)間的完善,AS已經(jīng)成為了大部分Android程序員的開(kāi)發(fā)神器,(筆者剛開(kāi)始做Android 就用的AS,沒(méi)體會(huì)到什么,但是我發(fā)現(xiàn)用過(guò)AS的人都會(huì)深深的迷上它,而去放棄Eclips
了解Android 運(yùn)行原理,一個(gè)工程的項(xiàng)目結(jié)構(gòu)
有兩種流行的結(jié)構(gòu):老的Ant & Eclipse ADT 工程結(jié)構(gòu),和新的Gradle & Android Studio 工程結(jié)構(gòu), 你應(yīng)該選擇新的工程結(jié)構(gòu),如果你的工程還在使用老的結(jié)構(gòu),考慮放棄吧,將工程移植到新的結(jié)構(gòu)。這里我們對(duì)兩個(gè)項(xiàng)目結(jié)構(gòu)做一下對(duì)比
老的結(jié)構(gòu):
old-structure
├─ assets
├─ libs
├─ res
├─ src
│ └─ com/futurice/project
├─ AndroidManifest.xml
├─ build.gradle
├─?project.properties
└─?proguard-rules.pro
新的結(jié)構(gòu)
new-structure
├─ library-foobar
├─ app
│ ├─ libs
│ ├─ src
│ │ ├─ androidTest
│ │ │ └─ java
│ │ │ └─ com/futurice/project
│ │ └─ main
│ │ ├─ java
│ │ │ └─ com/futurice/project
│ │ ├─ res
│ │ └─ AndroidManifest.xml
│ ├─ build.gradle
│ └─?proguard-rules.pro
├─ build.gradle
└─ settings.gradle
主要的區(qū)別在于,新的結(jié)構(gòu)明確的分開(kāi)了'source sets' (main
,androidTest
),這是Gradle的一個(gè)理念。 通過(guò)這個(gè)你可以做到,例如,添加源組‘paid’和‘free’在src中,讓你的應(yīng)用程序具有付費(fèi)和免費(fèi)的兩種模式的源代碼。
你的項(xiàng)目引用第三方項(xiàng)目庫(kù)時(shí)(例如,library-foobar),擁有一個(gè)頂級(jí)包名app
從第三方庫(kù)項(xiàng)目區(qū)分你的應(yīng)用程序是非常有用的。 然后settings.gradle
不斷引用這些庫(kù)項(xiàng)目,其中app/build.gradle
可以引用。
如何系統(tǒng)學(xué)習(xí)Android
因?yàn)橐榻B的東西太多了,這里給大家推薦一張安卓知識(shí)體系的圖片,最近看到別人整理的一份也挺好的,對(duì)我收益很大,

推薦一些實(shí)用的資源
推薦大家一個(gè)網(wǎng)站“極客導(dǎo)航——程序員自己的導(dǎo)航”,里面介紹了常用網(wǎng)站,工具大全,經(jīng)典博客,進(jìn)階之路,源碼下載,跳槽指南,精品網(wǎng)站,邊角作用的一些常用網(wǎng)站,一些Android大牛的博客都在里面,我經(jīng)常會(huì)看。

總結(jié)
1. 如果你是非科班畢業(yè)想要轉(zhuǎn)行編程,看了我的經(jīng)歷你一定很有信心與動(dòng)力,我能,你一樣能,何況我中間走了這么多彎路;
2. 如果你接觸過(guò)一些數(shù)據(jù)結(jié)構(gòu)、編程語(yǔ)言之類(lèi)的,想要學(xué)習(xí)編程,你更應(yīng)該有信心,你比那些非科班的人已經(jīng)多了一些基礎(chǔ),你要做的只是堅(jiān)定信念,堅(jiān)持走下去;
3. 不要感慨上天的不公平,我一路走來(lái)很悲催,走了太多的彎路,遇到了太多的困難,都是我這輩子難以忘記的,但同時(shí)我是幸運(yùn)的,因?yàn)槲矣兴?,我感謝我女朋友無(wú)數(shù)個(gè)日夜的理解與支持,上帝在給你制造坎坷的時(shí)候總會(huì)對(duì)你有些眷顧;
4. 如果你準(zhǔn)備或已經(jīng)在做開(kāi)發(fā)的人員,沒(méi)有信心或動(dòng)力,又或是對(duì)未來(lái)迷茫的時(shí)候,姑且當(dāng)做一篇?jiǎng)?lì)志小說(shuō)來(lái)看,你要做的就是做好你當(dāng)下在做的事,相信你的付出一定能有所收獲;
建議
寫(xiě)到這里想要給點(diǎn)建議,那就以一個(gè)反例的身份給出事后的一些建議吧:
1.每天花1小時(shí)看書(shū),難的不是1小時(shí),難的在堅(jiān)持;
2.英語(yǔ)對(duì)編程來(lái)說(shuō)很重要,試著習(xí)慣英語(yǔ)閱讀;(扇貝系列的軟件)
3.數(shù)據(jù)結(jié)構(gòu)和算法要學(xué)好,這算是對(duì)編程來(lái)說(shuō)最重要的課了,以后不見(jiàn)得能用得上,但用的時(shí)候起碼你有印象;
4.善于利用搜索引擎,從用Google做起,學(xué)會(huì)英文關(guān)鍵字搜索,有問(wèn)題第一時(shí)間想到去搜索而不是去請(qǐng)教別人;
5.多去混GitHub,目前最流行的開(kāi)源社區(qū),多參與開(kāi)源項(xiàng)目,慢慢試著讀牛人們的代碼,時(shí)機(jī)到的時(shí)候自己也可以為6.開(kāi)源社區(qū)貢獻(xiàn)力量,可以這樣說(shuō)在GitHub上認(rèn)真混一年,比你在大學(xué)四年學(xué)的東西要多的多;
7.第一份工作很重要,因?yàn)槟銜?huì)受一些周?chē)?、公司氛圍的影響?br>8.最后一條是盡快找一個(gè)女朋友,因?yàn)槟愕墓ぷ魇鼓憬佑|到的女性會(huì)越來(lái)越少。
大家都有了以上相同的教程,但是人和人之間的區(qū)別在于:別人有顆更強(qiáng)大的內(nèi)心,可怕的是比你聰明的人比你還要更努力??!
當(dāng)你下定決心,準(zhǔn)備前行的時(shí)候,剩下的只有堅(jiān)持了。。。
想要了解更多可以點(diǎn)擊:尚學(xué)堂最新2020版Java300集教程課程_