Re: [問題] 關於Java自學?
※ 引述《Jabemin (踏穩每一步~~~~)》之銘言:
: 情況是這樣子
: 因為之前對寫程式還蠻有興趣的...有去修過外系Java的課(我非資訊本科)
: 那時候我買了一本"Java2-全方位學習(朱仲傑)"回來自讀
: 這本書挺厚的..裡面大都文字敘述..講觀念居多..範例程式相對較少..
: 以致於觀念上雖足以應付考試...不過程式寫起來還是半調子..囧
: 之後看了網路上的推薦..又去買了"Java-How to program(螞蟻本第三版)"
: 但之後因為沒再修課..且工作上又用不到..所以這本書已塵封許久...
有興趣有心情就拿起來念,
很多基礎觀念不是只有寫程式就會知道的。
: ==================================================================
: 時間拉回到現在...因為今年度有考上資訊相關的研究所
: 想利用開學前的暑假期間好好把程式加強一番,把基礎打穩!
: 所以想請教版上的前輩...
: 若利用二個月時間來自學Java的話,目標和方向怎麼定比較好?
: 因為之前考試的時候有也用到 C 在寫程式,所以對於一些程式的基本概念都有
: 但因為有學長建議我可以先學Java試試看,且手邊Java的參考書籍也較多
: 所以選擇上就以Java為主要目標.
: 而書的部份我要怎麼使用比較好,目前我只對物件導向稍微有概念而已..
: 所以針對螞蟻本的話..以兩個月來學我應該把重點放在什麼地方?
不管用什麼書,重要的還是你現在會到什麼內容,
然後去找出自己不足的地方,再多做加強。
首先,你要先建立一下自我檢查量表,
我簡單憑記憶列個表看看你可以達到什麼地步。
(按照可能的接觸的順序排列)
這張表還蠻主觀的,各位版友有興趣可以互相交流一下。
#基本應知的東西,裡面不知道的東西趕快先去學一學。
1.java基本應用
知道什麼是JDK跟JRE跟什麼是JVM(能建置環境並執行)
知道J2EE、J2SE、J2ME這三個領域的對象的差異
知道if-else、switch是什麼
知道for、while是什麼
知道 API Document的使用方法(http://0rz.tw/ee0jy)
知道String有哪些函式、怎麼切割字串跟組合字串。
知道main的用途與main的參數用法
知道static method怎麼設計
知道class跟instance method怎麼設計
知道Classpath是什麼,能引用第三方的套件。(通常是jar檔)
知道什麼是IDE,並瞭解IDE提供開發流程中哪些協助,扮演什麼角色。
2.資料結構基礎
知道什麼是Array
知道什麼是List (ArrayList、LinkedList)
知道什麼是Map (HashMap、TreeMap的不同點?)
知道如何瀏覽Map及其他Collection的瀏覽法(iterator())
選配:
Stack跟Queue還有Set比較偏概念,Set可能會比較常用,
他的不重複概念還蠻好用的,建議是知道一下大概是做什麼用,
3.演算法基礎
知道什麼是演算法
有時間複雜度的概念
有空間複雜度的概念
知道什麼叫遞迴 (實務上偶爾會有機會用到)
對基本的演算法有一定瞭解
基本排序法(buble、selection、insertion、quick、merge)
動態規劃(Dynamic Programming)
4.Java進階應用
能用java.text.* 做日期的格式化、數字的格式化
能用java.io.* 做文字檔的讀檔、存檔 (java.util.Scanner也行)
能用 java.lang.Math 做一些數學運算
知道什麼是Jar檔,並瞭解class是能夠被反編譯(de-compile)的。
知道什麼是 JDBC ,能對資料庫操作有基本瞭解。
能熟悉使用IDE,減少多餘開發時間在製造錯誤跟重複的行為上。
能瞭解在Object這個基底類別中,toString、equals、hashcode
這三個method扮演什麼樣的角色。
────────────────────────────────
清單可能有缺,不過不會少,
以上是我個人敢跟別人說「我會 Java 基礎」的list,
或者是別人跟我說他會寫Java,我會預期他具備的基礎。
我是覺得要完成上面那些list,以新手來講一兩個月差不多就過去了,
除非你環境條件很好(你名義老闆在你後面,他非常趕。)逼著你往下學。XD
────────────────────────────────
再下面是一些我覺得學到目前為止,值得努力的目標。
如果說前面是基礎,這部份就是「加值」。
(當然,依領域有不同加值效果。)
這裡面每個領域要學到敢說「精通」,通常都起碼要好幾個月,
所以沒有先後順序關係,純粹是表列而已;當然這裡也需要前面的基礎。
1.Java高階應用
會利用 java.net.* 處理網路上的溝通
(ex. Socket、ServerSocket,也可以用URL抓抓網頁之類)
會利用 javax.swing.* 、 java.awt.* (或者SWT)做GUI的處理
瞭解什麼是介面,並能利用介面撰寫程式。
瞭解什麼是 Design Pattern,並且能舉出java api中
使用Pattern的實例。
能以J2SE基礎切入J2EE的 JSP 網頁應用程式。(有興趣可再深入J2EE)
能以J2SE基礎編寫J2ME的應用程式(MIDP)
有能力依需求編寫一個以上的Thread,並考慮到Thread-safe的問題。
2.工具部份
能瞭解 Framework 是什麼,並瞭解目前能見到的Framework的目標。
能瞭解 Ant 這個建立開發的自動化流程的工具
我目前所能想到的清單大概就這樣,如有不合理之處,
各位業界先輩請不吝幫小弟更正。^^;;
: ======================================================================
: 以上,不好意思,問題有點多,這算是長久累積下來的問題...
: 畢竟之前學習上並沒有連貫性,學程式是興趣但用不到的話真的很容易斷掉..
: 最後我想再請問一下..針對 C 語言和 Java而言,這兩者能做的工作有何不同?
: 我知道 C 比較近硬體,Java感覺博大精深,因為我目前都只懂皮毛而已...
: 無法得知兩者之後的發展性和差異性? 也請有經驗的前輩告知...感激不盡!
其實所謂博大精深,都是建立在長久使用經驗上,
講白話點就是只要下功夫,什麼都可以博大精深。
如果你著重的是快速開發各種程式,Java也不一定是首選,
還有ruby、python之類的程式可以學。
而且現在當紅的web竄起,以工作為考量又不想走硬體或韌體的話,
asp.net、php、J2EE其實都很值得考慮。
對我來會用Java的理由,純粹是因為它是我第一個程式母語,
而且我不會C/C++,只會Java VB C#,
跟其他兩樣比起來我比較喜歡Java而已。(汗)
由於接觸過兩種以上語言的關係,我個人是覺得語言不需要自我設限,
重點是有沒有學語言的時間、環境、條件跟需要。
--
個人認為需求是最重要的,當然這應該跟我主要涉入 SOHO市場,
常常有機會去嚐試不同的語言有關。
--
▄▅▆▇███▇▆▅▄▃ ╰┼╯─╮ ╮
◥███████████◣ ╰┼╯=│=│
◥██████───────◣ *. ╯ ╯ ╯ の 物 語 .*
◥███████──────◣ ~ ◢◣ ◢◣
◥██████───────◤ ◥◤* 空白的世界.翼 *◥◤
◥██▁▂▃▄▅▆▇███▆▅▄▃▂▂~telnet://tony1223.no-ip.info
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.134.27.68
※ 編輯: TonyQ 來自: 220.134.27.68 (06/09 18:18)
推
06/09 18:53, , 1F
06/09 18:53, 1F
→
06/09 19:01, , 2F
06/09 19:01, 2F
推
06/09 19:25, , 3F
06/09 19:25, 3F
推
06/09 19:27, , 4F
06/09 19:27, 4F
→
06/09 20:03, , 5F
06/09 20:03, 5F
→
06/09 20:05, , 6F
06/09 20:05, 6F
推
06/09 20:32, , 7F
06/09 20:32, 7F
推
06/09 20:32, , 8F
06/09 20:32, 8F
→
06/09 20:41, , 9F
06/09 20:41, 9F
→
06/09 20:45, , 10F
06/09 20:45, 10F
推
06/09 21:19, , 11F
06/09 21:19, 11F
推
06/10 02:23, , 12F
06/10 02:23, 12F
推
06/10 09:34, , 13F
06/10 09:34, 13F
推
06/10 09:43, , 14F
06/10 09:43, 14F
→
06/10 09:45, , 15F
06/10 09:45, 15F
討論串 (同標題文章)
java 近期熱門文章
PTT數位生活區 即時熱門文章