首先,自學的話,書是必不可少的,我推薦幾本學習編程的書,作為過來人,這些書非常適合初學者。
關於java的學習,個人非常推薦《java編程藝術》和《thinking in java》。《java編程藝術》這本書好像有七百多頁,我也不是很記得,這本書對很多細節都有詳細的敘述,thinking in java就不多說了,必讀之書。
關於android編程學習,個人推薦《深入淺出google android》和《android核心技術與實例詳解》,這兩本書真的很適合初學android的人。
想學好編程,除了練習代碼之外,看多一些書也是非常重要,我的學校圖書館有很多編程書,我都看了不知多少本,每看一本書都有很大收獲,多看書真的很重要。
第二,善於上網找資料也是很重要的,網上有各種原代碼,各種視頻,各種心得體會。還有很多實際運用,這是書沒的。
第三,編程需要耐心,忌浮誇,正所謂堅持就是勝利。尤其是編程,不要遇到難題就放棄,當你的水平到了一定水平之後就會發現以前的難題都不算什麼。
第四,拿來主義,我覺得在編程的學習上是比較重要。不是說抄別人的源碼,而是先理解後模仿,在理解的同時想下有沒有可以改進的地方。
第五,學android之前,必須有扎實的java基礎,這是必須的,不要只是半桶水就學習android,否則越學android會越困難。
第六,要是對編程不是有很大興趣,單純覺得會編程很牛,可以在小白面前說幾個專業術語裝大神,我建議不要浪費時間。正所謂言者不智,智者不言,低調,再低調,真正的高手很多都是比較低調(我言了,所以我不是高手。偶爾我虛榮心暴增,會裝一下B,大家多見諒),多去一下編程論壇學習。
2. 新手剛剛學習android,推薦android開發的入門教程
學習android注意事項:
1,android技術准備實訓目標:通過這部分的學習,學員能夠達到學習android開發課程的基本要求。熟練使用Java語言,實現GUI桌面應用程序的開發JDK的安裝和配置開發工具Eclipse3.4安裝。實訓知識點: Java標識符、數據類型流程式控制制、面向對象編程、繼承、抽象類、介面、包、異常、IO流、Swing、游戲演算法介紹
,2,android入門實訓目標:通過這部分的學習,學員具備了android程序開發的能力,能獨立完成常用的應用軟體。實訓知識點: Android系統概述和內置工具、Android 開發環境的搭建和啟動模擬器、建立android工程、Android應用程序開發及運行編譯結構、API參考文檔的使用、使用am工具啟動android應用程序、部署應用到真實手機、控制項和事件編程、菜單編程、對話框編程、視圖組編程、各種布局的使用、Grid視圖組、List視圖組、使用Tab組織UI
,3,android進階實訓目標:通過這部分的學習,學員的android開發能力會有大幅提高。等感測器編程、android優化和性能提高。實訓知識點及案例分析:Service概述、創建和啟動、生命周期、許可權及跨進程調用;廣播的概念及生命周期、廣播發送的許可權廣播接收器的實現、接收SMS簡訊、播放MP3;內容提供器的概念作用和常見介面、使用內容提供器實現增刪改查、內容提供其許可權和創建內容提供器、SQLite資料庫添刪改查操作、使用list視圖組顯示數據;Widget概念和製作方法、Widget各種XML描述文件詳解2D圖形圖像及文本、Gallery UI編程、GridView編程、OnDraw編程、drawable編程基本動畫編程技巧、Tween動畫、Frame動畫、TimerOpenGL ES的2D和3D繪圖GPS服務、GPRS網路使用、android藍牙開發、android方向、加速表、光線、磁場、臨近性、溫度
4,項目實戰實訓目標:本階段讓學員開發,設計Android網上購物系統,其中包括Android圖形界面開發,Android聲音,Android網路通訊,和伺服器後端進行通訊交換數據。
Android基礎知識:
一、Android開發的分類:
1、Android客戶端應用程序
如新浪微博、網銀客戶端、凡客、淘寶客戶端,快盤客戶端。Android在這里的應用還是界面層的東西為主。核心還在WEB。客戶端界面很重要,用戶體驗度很重要。從應用需求上來講,幾乎大一點的網站,都需要有手機客戶端程序。
2、Android通用類程序
如基於LBS(基於位置的服務)的應用 (這類一般會嵌入到客戶端應用程序中),流媒體播放應用。由於移動設備的方便便捷、3G、4G網路的發展,這類應用有不錯的前景。
3、Android游戲開發
需要掌握的游戲引擎LGame,游戲框架等。手機上的游戲會是一大塊內容,有前途。
4、Android底層開發
需要掌握C、Linux等較底層的東西,發展方向應該是驅動、協議開發,嵌入式開發。
開始學習了解一般從界面、控制項開始,這也是大部分人認為簡單、比較快上手的原因。學習一段時間後,自己可以定一個方向發展。
二、Android學習需要哪些知識點
1、Java基礎知識
J2SE:Java基礎類(lang包,IO包,util包(集合框架),面向對象,多線程,網路編程)
2、J2EE知識
如果你想從事的Android客戶端應用程序的開發,這部分知識是必備的。顯然Android客戶端只是做的數據的請求、展現,所需的數據在伺服器端。
技能點:Tomcat(Weblogic),XML解析,JSON解析,JSP/Servlet。了解SSH。
3、Linux、C語言知識
可以作為你後續發展需要了解的。
在論壇上、QQ上看到不少童鞋Java基礎還比較欠缺,就開始搞Android了,當然就問題多多。學習熱情可嘉,但需要打一個好的基礎,有一個好的學習路線。
三、Android學習比較好的資料
1、應該說現在市面上的書,入門的還是不少,但一般現在只講了簡單控制項的單個用法。
《Android開發範例大全》,《Android應用開發詳解》可以參考。想了解游戲的話,可以參考《Android2.0游戲開發實戰寶典》。
2、Android學習視頻,也基本上停留在講簡單入門,單個控制項用法為主,這方面遠不及Java,J2EE,SSH的視頻那麼豐富。應該講,你看完了這些,離開發還有很大一段距離。而且,這些視頻在講課方法上不如一些Java的好。現在的視頻資料太豐富,從哈佛、斯坦福的課程,到IPHONE開發課程,都有。但全部跟著視頻完成所有的學習,有很長一段跟要走。
3、Android的論壇比較多,論壇的缺點就是什麼東西得自己一個個查找、去等。自學是一個艱苦而漫長的過程。對你的鍛煉和提升也最大。自學有一個缺點,就是容易迷失方向,一個知識點你永遠不知道要掌握多深,相關的應用是什麼。自學就好比像你一個人在走一條目標很遠,前面叉路很多的暗道一樣。
4、培訓機構學習。如果你時間上允許不失為一種好的選擇,可以快速入門。互聯網產品(時代)有一個重要特點,就是拿資金換時間。如果能快速入門,到這個行業去發展,就比自己慢慢學習要好得多。畢竟現在Android開發太熱了。對開發人員的要求也會逐漸提高。(如既要求能做Android開發,又做IPHONE移植開發)。
3. 如何學習安卓開發
Android開發學習路線的七大階段
第一階段:Java面向對象編程;
第二階段:Java Web開發;
第三階段:android UI編程;
第四階段:android網路編程與數據存儲;
第五階段:android手機硬體管理;
第六階段:Android圖形編程技術;
第七階段:Android游戲開發。
4. 如何自學 Android 編程
很多朋友一上手就開始學習Android,似乎太著急了一些。Android應用程序開發是以Java語言為基礎的,所以沒有扎實的Java基礎知識,只是機械的照抄別人的代碼,是沒有任何意義的。那麼Java學到什麼程度才算是過關呢?我個人認為至少要掌握以下兩個方面的內容:
a) Java基礎語法:具體的知識點列表可以在這里下載:《Java知識點列表》V1.0。這部分內容沒有討價還價的餘地,必須爛熟於胸。至於具體的學習方法,可以看書或者是看視頻,但是關鍵是要多加練習,無論是書上的練習還是視頻裡面的練習,都需要仔仔細細的完成;
b)設計模式:由於在Android系統的框架層當中,使用了大量的設計模式,如果沒有這個方面的知識,對於Android的理解就會大打折扣。設計模式的種類非常之多,一個一個的全部掌握,是不現實的,必須首先掌握面向對象的基礎設計原則,有了這些基礎原則的支持,就可以舉一反三。這部分內容可以在《Effective Java》和《Agile.Software.Development:Principles,Patterns.and.Practices》這兩本書中找到。
2.Linux基礎知識
大家都知道,Android系統的基礎是Linux操作系統。在開發過程當中,我們也需要使用到一些Linux命令。所以說一些Linux的基礎知識是必須的(話說現在的程序員,不懂Linux都不好意思跟人家打招呼),推薦大家看看《鳥哥的私房菜》這本書,寫的相當不錯;
3.資料庫基礎知識
這個比較簡單,就是一個增刪改查的資料庫操作,可以看一下這本書:《SQL編程練習與解答》
4.網路協議
至少需要學習兩種基礎的協議,HTTP協議與Socket協議;
5.Android基礎知識
有了以上的鋪墊,再來看Android,是不是覺得輕鬆了很多呢?至於基礎知識的學習順序,最好的方法就是按照Android SDK幫助文檔當中的Dev Guide裡面的順序,我的《Android視頻教程》也基本上是按照這個順序錄制的;
6.伺服器端開發知識
由於很多Android應用程序都需要伺服器端的支持,所以掌握一些伺服器端開發知識還是非常有必要的。至於選擇哪一種伺服器端知識進行學習,就比較麻煩了,因為技術的種類實在是太多了:
a)Java EE:就是上面郵件當中所提到的SSH—Struts+Spring+Hibernate。這種技術的優點的功能完整、強大,已經使用了很多年,而且既然大家已經非常熟悉Java了,那麼學習SSH看起來也順理成章。但是使用這種技術開發伺服器端程序,非常麻煩。即使是一些簡單的功能,也可能需要大量的代碼和配置文件來實現;
b)PHP:簡單易學,開發快速。但是我們需要多學一種語言,是否得不償失,就要大家自己判斷了;
c).NET:這項技術的特點和Java EE差不多,但是要想掌握.NET,則需要掌握c#,也是個麻煩的事情;
d)ruby on rails:這是我個人最喜歡的伺服器端技術,簡潔,優雅,寥寥幾行代碼,就可以實現很復雜的功能,但是這需要Ruby語言知識作為基礎;
至於選擇哪一種技術,就看大家自己的判斷了。
夢想:要成為一個專業的Android開發者,以上的這些知識都必不可少。看起來好像很多,多的可怕。所以還是那句話--「耐心,耐心很重要」。
學習一門專業要很長時間啊,耐心很重要,很多朋友也來問我C4D,能感覺到大家都想急著學會,其實要有長時間的積累才能有長遠進步,Android開發,最近公司要做程序,也涉及到,如果UI設計師的我學會了Android,是不是可以獨立做開發了。
5. 如何自學Android編程
1. 如果你是非科班畢業想要轉行編程,看了我的經歷你一定很有信心與動力,我能,你一樣能,何況我中間走了這么多彎路;
2. 如果你接觸過一些數據結構、編程語言之類的,想要學習編程,想題主這種,你更應該有信心,你比那些非科班的人已經多了一些基礎,你要做的只是堅定信念,堅持走下去;
3. 不要感慨上天的不公平,一路走來很悲催,走了太多的彎路,遇到了太多的困難,都是我這輩子難以忘記的坎坷,但同時我是幸運的,我的前任老大Aaron以及現任CTO都深深的影響著我後來的職業發現,我在薄荷的一些小夥伴們對我的幫助,我女朋友無數個日夜的理解與支持,上帝在給你製造坎坷的時候總會對你有些眷顧;
4. 如果你准備或已經在做開發的人員,沒有信心或動力,又或是對未來迷茫的時候,姑且當做一篇勵志小說來看,你要做的就是做好你當下在做的事,相信你的付出一定能有所收獲;
建議
評論里有人說是在校生,想要給點建議,那就以一個反例的身份給出事後的一些建議吧:
1. 每天花1小時看書,難的不是1小時,難的在堅持;
2. 最好不要掛科,因為掛了你還是得花時間補回來;
3. 英語對編程來說很重要,試著習慣英語閱讀;
4. 數據結構和演算法要學好,這算是對編程來說最重要的課了,以後不見得能用得上,但用的時候起碼你有印象;
5. 大三或者大四一定要去實習,對於編程來說經驗還是比較重要的,實習經歷比你那些理論要有效的多;
6. 找個女朋友吧,不是說工作了你就找不到了,而是工作之後從事編程很少有時間和精力去接觸別的女孩,所以可以的話在畢業前找個可以同甘苦的女朋友吧;
7. 第一份工作很重要,因為你會受一些周圍同事、公司氛圍的影響,我為自己遇到Aaron、Vincent而感到幸運,他們倆是我目前為止最尊重的兩個人;
如何自學android編程
最後才應該是題主最需要的:
1. Android學習之路 前面說過我的這篇博客是Android新手必備資料;
2. 書不在多,適合你就好,這里推薦一本Android和兩本Java書籍吧;
《第一行代碼》:郭霖大神的著作,我是看過郭神博客過來的;
《Thinking In Java》:Java經典書籍,不必說;
《Effective Java》:Java進階必備書籍;
3. 有些人一開始看書也有困難,沒關系,那就去網上看視頻,結合視頻和書一起看,邊看邊敲,推薦下Mars老師視頻,包括java基礎以及Android篇都有:Java4Android.zip_免費高速下載
極客學院的視頻:零基礎Android學習路徑圖
口味不同的人可去各大網站自行搜索適合自己的教學視頻。
4. 多去混GitHub,目前最流行的開源社區,多參與開源項目,慢慢試著讀牛人們的代碼,時機到的時候自己也可以為開源社區貢獻力量,可以這樣說在GitHub上認真混一年,比你在大學四年學的東西要多的多;
5. 關注一些Android界不錯的博客:
我(stormzhang)的博客:http://stormzhang.com/
Trinea的博客:Trinea
代碼家的博客: 代碼家
6. 善於利用搜索引擎,從用Google做起,學會英文關鍵字搜索,有問題第一時間想到去搜索而不是去請教別人;
大家都有了以上相同的教程,但是人和人之間的區別在於:別人有顆更強大的內心,可怕的是比你聰明的人比你還要更努力!!
當你下定決心,准備前行的時候,剩下的只有堅持了。。。
http://www.hu.com/question/26417244
6. 如何自學 Android 編程
1、學Java
目前,Java語言在Android開發中占據絕對統治地位,所以開發Android的第一步就是學好Java,建議至少完整的看一本Java入門書籍,推薦:
Java語言程序設計 (豆瓣):我原來看的入門書籍,我老師推薦的,分為《基礎篇》和《進階篇》。
Java編程思想 (第4版)
(豆瓣):從Java的基礎語法到最高級特性(深入的面向對象概念、多線程、自動項目構建、單元測試和調試等),更講述了java語言的前世今生,語言特性,設計理念等等,閱讀本書需要一定的java基礎,個人經驗,建議至少看完《Java語言程序設計-基礎篇》再看這本書。
2、學Android
第一行代碼
(豆瓣):郭霖大大編寫的Android入門書籍,推薦這本書的原因有兩個,一是郭霖大大的語言通俗易懂,二是這本書很新,是基於Android4.0的入門書籍,根據友盟指數的統計,Android4.0以下的設備已不足10%,所以,你現在入門,拋棄那些仍舊停留在Android2.x的入門書籍吧。
AndroidDevTools:從開發工具到入門教程,從代碼規范到版本控制工具,一切與android相關的都在這個網站上,Android入門請參考該網站的
Android Dev Tutorials 模塊。
Android學習之路:stormzhang大大編寫的Android入門文章,對於有一定java基礎的人來說,Android入門有這一篇文章就足夠了。(該文章同樣被收錄在AndroidDevTools中)
郭霖的專欄:郭霖大大CSDN專欄。
stormzhang.com 的頁面:stormzhang大大的個人博客。
3、遇到問題怎麼辦
Google:用google搜出來的結果比網路質量高。至於如何不翻·牆就使用google請自行知乎,但是作為一個Android開發者,你早晚要學會翻·牆。
博客園 - 開發者的網上家園
博客頻道 - CSDN.NET
Stack Overflow:國外的開發者問答社區,無需翻·牆。
GitHub · Build software better,
together.:國外的代碼託管平台,這里有很多Java/Android開源項目,無需翻·牆。
7. android 編程怎麼學習
1、「android開發學習路線圖」(在網路中搜),了解ANDORID編程學習內容。
2、在網路中搜「ppy2790博客」,大量Android學習資料,Android項目:貪吃蛇開發視頻,新浪微博Android開發,捷通機票Android客戶端
3、到「IT學習資源站」大量IT學習資料,參到學習討論,互動學習。
8. 如何自學 Android 編程
自學Android開發可以分階段學習安排,由基礎學起,在學習中可以能會遇到很多問題,這就需要多向別人請教解決了,自學會稍微吃力些,有人帶學是最好不過的。學Android編程可以參照以下階段來學習安排:
第一階段:Java面向對象編程
1.Java基本數據類型與表達式,分支循環。
2.String和StringBuffer的使用、正則表達式。
3.面向對象的抽象,封裝,繼承,多態,類與對象,對象初始化和回收;構造函數、this關鍵字、方法和方法的參數傳遞過程、static關鍵字、內部類,Java的垃極回收機制,Javadoc介紹。
4.對象實例化過程、方法的覆蓋、final關鍵字、抽象類、介面、繼承的優點和缺點剖析;對象的多態性:子類和父類之間的轉換、抽象類和介面在多態中的應用、多態帶來的好處。
5.Java異常處理,異常的機制原理。
6.常用的設計模式:Singleton、Template、Strategy模式。
7.JavaAPI介紹:種基本數據類型包裝類,System和Runtime類,Date和DateFomat類等。
8.Java集合介紹:Collection、Set、List、ArrayList、Vector、LinkedList、Hashset、TreeSet、Map、HashMap、TreeMap、Iterator、Enumeration等常用集合類API。 9.Java I/O輸入輸出流:File和FileRandomAccess類,位元組流InputStream和OutputStream,字元流Reader和Writer,以及相應實現類,IO性能分析,位元組和字元的轉化流,包裝流的概念,以及常用包裝類,計算機編碼。
10.Java高級特性:反射、代理和泛型。
11.多線程原理:如何在程序中創建多線程(Thread、Runnable),線程安全問題,線程的同步,線程之間的通訊、死鎖。 12.Socket網路編程。
第二階段:Java Web開發
1.Java解析XML文件DOM4J。
2.MySql資料庫的應用、多表連接查詢的應用。
3.Jsp和Servlet應用。
4.Http協議解析。
5.Tomcat伺服器的應用配置。
6.WebService服務配置應用。
第三階段:android UI編程
1、Android開發環境搭建:Android介紹,Android開發環境搭建,第一個Android應用程序,Android應用程序目錄結構。
2、Android初級控制項的使用:
TextView控制項的使用Button控制項的使用方法EditText控制項的使用方法ImageView的使用方法RadioButton的使用方法Checkbox的使用方法Menu的使用方法
3、Android高級控制項的使用:
Autocompletion的使用方法ListView的使用方法GridView的使用方法Adapter的使用方法Spinner的使用方法Gallary的使用方法ScrollView的使用方法
4、對話框與菜單的使用:
Dialog的基本概念AlertDialog的使用方法DatePickerDialog的使用方法Menu的使用方法自定義Menu的實現方法
5、控制項的布局方法:
線性布局的使用方法相對布局的使用方法表格布局的使用方法
6、多Acitivity管理:
AndroidManifest.xml文件的作用 Intent的使用方法使用Intent傳遞數據的方法啟動Activity的方法IntentFilter的使用方法Activity Group的使用方法
7、自定義控制項實現方法:
自定義ListView的實現方法可折疊ListView的使用方法自定義Adapter的實現方法自定義View的實現方法動態控制項布局的上實現方法
第四階段:android網路編程與數據存儲
1、基於Android平台的HTTP通訊:
Http協議回顧Apache Commons 工具包介紹使用Get方法向伺服器提交數據的方法解析伺服器響應數據的方法使用POST方法向伺服器提交數據的實現方法向伺服器提交非文本數據的實現方法使用Http協議實現多線程下載使用Http協議實現斷點續傳
2、Android數據存儲技術:
SQLite3資料庫簡介SQL語句回顧SQLite3編程介面介紹SQLite3事務管理SQLite3游標使用方法SQLite3性能分析訪問SDCard的方法訪問SharedPreferences的方法
3、ContentProvider使用方法:
ContentProvider實現共享數據、URI的解析與UriMatcher、ContentUris的使用、使用ContentResolver操作ContentProvider、ContentProvider的監聽Android當中的非同步操作:Handler的使用方法;非同步任務的基本概念;AsyncTask的使用方法。
第五階段:android手機硬體管理
1、地圖及定位技術:GPS簡介;LocationManager的使用方法;在Google Map上添加標記的方法;查詢某地附近建築的方法;使用Google Map實現點對點導航。
2、感測器使用方法:方向、加速度(重力)、光線、磁場、距離、溫度等感測器的使用。
3、近場通信技術:NFC技術簡介;NFC技術是用場景介紹;NFC技術實現方法。
4、媒體管理技術:MediaPlayer的使用方法。
5、觸摸屏技術:手勢識別;多點觸摸技術。
第六階段:Android圖形編程技術
1、圖形處理基礎:2D圖形編程基礎;
2、點、線、面等基本圖形元素繪制方法;
3、Android動畫框架簡介;
4、位移動畫的實現方法;
5、淡入淡出動畫的實現方法;
6、旋轉動畫的實現方法;
7、Matrix的使用方法。
第七階段:Android游戲開發
1、Android游戲開發:Android游戲開發概述;
2、SurfaceView的使用方法;
3、物理小球技術;
4、碰撞檢測技術;
5、圖片、文字和背景音樂等資源的使用方法;
6、游戲引擎基礎概念;
7、Cocoa2d-Android引擎使用方法;
8、OpenGL ES使用方法。
自學一般人會很難堅持下去,學習中遇到的問題解決效率不是很高,可以參加明確講師授課的Android開發培訓班,由資深高級講師帶領學習,和同學們共同學習,遇到問題互相解決,學習效率還是非常高的。