作者TonyQ (骨头)
站内java
标题Re: [问题] 关於Java自学?
时间Mon Jun 9 18:11:20 2008
※ 引述《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)
1F:推 PsMonkey:冏... 你有这麽欠 P 币嘛? 06/09 18:53
2F:→ TonyQ:心血来潮啊...有讨论总是好事...(我P币都拿来买信箱=.=) 06/09 19:01
3F:推 PsMonkey:当个版主就用不完了... 谁叫你不来当 [指] 06/09 19:25
4F:推 smayday:我比较好奇 有这样能力的TonyQ大大 所领的薪水会是多少 :P 06/09 19:27
5F:→ TonyQ:知道归知道 里面我也还没做到全部 XD 06/09 20:03
6F:→ TonyQ:目前还是学生不敢说自己有能力,只能说还在学习。:) 06/09 20:05
7F:推 Nipple5566:同为学生的我 我很佩服你 06/09 20:32
8F:推 Jabemin:感谢T大...这样学习上会比较有架构.. 06/09 20:32
9F:→ TonyQ:一起努力吧!我也还在向版上几位强者像Q老大或者Koji学长等 06/09 20:41
10F:→ TonyQ:看齐^^;; 另外,技术不会比解决问题比较有价值...^^;; 06/09 20:45
11F:推 BearWu:推Tony大,之前也问过一些问题,感谢 06/09 21:19
12F:推 csihcs:推一个 06/10 02:23
13F:推 polomoss:版主很好赚吗!?~~不过我觉得介面真的很难写..... 06/10 09:34
14F:推 hsiaoli:感谢Tony大大,虽然我不是新手,但是看了你的文章也可以检 06/10 09:43
15F:→ hsiaoli:视自己到底会了什麽,有没有资格说自己会java,感恩哦^_^ 06/10 09:45