1
rayu 2013-06-21 23:21:22 +08:00 1
找到兴趣点,尝试去读开源代码。
|
2
DearMark 2013-06-22 00:04:01 +08:00
求高手现身,我也好迷茫。
|
3
garth 2013-06-22 00:36:35 +08:00 1
程序语言不是用来学的,应用至上!
我曾经也像楼主一样迷茫过。 其实学习一样技能,掌握其核心的东西,熟练常用的东西,其它的就建立在大脑中索引好了,需要用时再去翻。 高手同样是需要去查阅各类文档的! 学Java的话,基本是学完Java SE后,再向某个方向继续深入学习,例如Java ee或Android或其它。 |
4
polythene 2013-06-22 00:59:15 +08:00 1
我只想说,去他×的Java,什么都搞得庞大无比,什么都搞得巨复杂,Java界难道就没有一个好的设计师么??
|
5
Narcissu5 2013-06-22 02:25:37 +08:00 1
不要从《thinking in java》 开始,不要听所谓大神的建议,不要上csdn。从写能运行能工作的程序开始,get your hand dirty!!!
|
7
iMouseWu OP |
11
hewwcn 2013-06-22 12:26:00 +08:00
我是从马士兵的视频开始走起的。马士兵的J2SE讲得不错。
think in java确实不适合新手,至少要等到可以独立写个应用再看比较好。 其实我觉得如果不涉及j2ee,其实还不算复杂,所以LZ可以试着从SE转Android再转EE |
12
denger 2013-06-22 12:31:02 +08:00
不建议直接在没有什么计算机基础的情况就学Java。建议先从 C 开始,从基本语法到 -> 结构体 -> 指针 -> IO -> 网络编程 之后再去学 Java。
|
15
ahnujyyang 2013-06-22 23:48:04 +08:00
我学java的时候是先学的基础然后学的servlet+jsp+tomcat 最后学的SSH,其他的就是去一些著名的论坛博客看大神写的文章了,靠自己理解了,写的多了,自然就懂了,用到再查是最实际的。实用才是王道啊!!!
|
16
likuku 2013-06-23 03:06:33 +08:00
先学C的话,会对学习OO风格的Java会造成困扰,建议有条件别碰C和其它任何非OO语言,直接从C++/Java开始。
|
17
iMouseWu OP |
18
iMouseWu OP @ahnujyyang 的确是实用才是王道!但是个人觉得,如果只会用的话,不明白机理的话,我觉得还是不利于进一步发展的!所以我觉得到一定的时候应该去追求更加底层的东西!
|
19
iMouseWu OP @RisingV 个人感觉一开始入手java的话不需要对内存.JVM的了解!因为毕竟是入门,等到了一定的时候(不一定要很熟练,就是每当一个问题抛出来的时候都会去问为什么的时候),就会自发对底层的一些的产生渴望!就想我现在,对一些方法概念确实会用,但是我就会去想为什么要这个样子,所以这个时候就需要去研究底层的东西了,研究jvm的机理,研究内存,研究源码什么的!但是也不用太深入研究,只要懂得原理就好!。。。我觉得等到一定的时候,对Java非常熟练以后,再去好好的钻研底层的东西,这样我觉得才能使代码更加的优化,效率也更加的高!
|
20
iMouseWu OP @hewwcn 看基础的java se确实不怎么复杂。但是衍生出来的很多东西,个人感觉还是蛮多的!就像上面的链接所说的25种,确实很可怕!
|
21
denger 2013-06-23 22:56:37 +08:00
@RisingV
@akinoniku @iMouseWu 先学 C 的好处: 1. C 的语法和一些概念最为纯粹,而且在各语言中基本相通。比如最基本 变量概念、for if while 以及各种数据类型等等. 而 Java 所包含的东西相对增多了,值/引用、拆装/装箱、final、static 包含后续的各种 List Map 等一堆的 Class 的更会让初学者眼花缭乱往往会加大你在前期学习过程的理解难度。 2. 先你学完C之后(至少能独立写出比如 打印三角形、纸牌游戏之类)的程序后,然后再进一步学 Java 的话,学习时会非常轻松愉快,并且在一些知识点上结合C会有更好更深的理解。 3. 关于 OO 上,我觉得这只是对于一个长期从事非 OO 语言的程序员突然转换成写 OO语言才会存在这个问题。对于一个写 C 只有几个月的初学者来说(因为可能连面向过程和面向对象还没弄清楚),并不会存在转换的问题。 4. 不用在环境上折腾,什么 JDK、环境变量、JAVA_HOME JRE Eclipse 之类的. C 的话如果是在 Linux 下,只要装个 VIM 简单了解一下 GCC 就能直接 "Hello Word"。 5. ..... 好处实在是太多了,且并不觉得先学 C 会有什么坏处。而且你以后随便个人兴趣有可能会学 Python 或 Ruby 之类,站在 C和Java 的基础上比单纯的站在 Java 的基础上起点往往会高很多。 |
22
denger 2013-06-23 23:19:09 +08:00 1
最后再来一句:连泥嘛“函数/function”都不知道是神马就开始写“方法/method”了?连 "指针/结构体/struct" 都不知道是神马就开始搞 "对象" 了?
kidding... :) |
23
likuku 2013-06-24 00:04:22 +08:00
|
24
luikore 2013-06-24 01:09:19 +08:00
父親がSEで、Javaの仕事のせいで毎日深夜にならないと帰ってこない。そのせいで母親が毎日文句を言ってるし、僕は父親に週末も遊んでもらった記憶が無い。父親がC#の仕事をしていれば定時帰宅で母親は笑顔、週末は公園で僕と遊んでくれたのに・・・。
|
25
iMouseWu OP @likuku @denger
我觉得 “对于一个写 C 只有几个月的初学者来说(因为可能连面向过程和面向对象还没弄清楚)这句话说的很有道理!” 其实@denger 说的也蛮有道理的!其实本人就是从C开始入门的,但是个人感觉的话因为学了一个学期的C,可能是课本过于简单,所以对C基本没有什么概念当时!就很简单的入门!然后过了1年半就开始接触Java了。一开始真心不知道要怎么调用方法!其实这也不是@likuku说的惯性!个人觉得就是对面向对象一点概念都没有导致的!所以对我来说!入门C其实对Java的作用就是知道的方法,算是对语言的一个入门吧!可能是教材的问题!也许教材适当的话,可能会有@denger说的可能哦! @RisingV @akinoniku |
27
akinoniku 2013-06-24 09:37:14 +08:00
|
28
railgun 2013-06-24 09:50:42 +08:00
我看了,我觉得那文章里的大部分东西都是要在应用中慢慢掌握的,现在只要知道有这回事就行了
|
29
so898 2013-06-24 10:09:11 +08:00
|
30
davepkxxx 2013-06-24 10:25:40 +08:00
首先是入门书籍:《Java核心技术》《Java编程思想》
然后是帮助你提高的书籍:《Effective Java》《重构》《大话设计模式》 研究一些开源项目的代码:Struts、Struts2、Spring、Hibernate。 最后就是自己动手写一些工具、框架:JSON工具、数据库连接池、Spring扩展、持久层框架、MVC框架。 最终要的就是在工作中解决实际问题。 |
31
davepkxxx 2013-06-24 10:28:20 +08:00
对了,在启动这些之前我建议你学习以下编程基础,比如数据结构,比较好的办法是买本C语言的书学习一下,推荐谭浩强的《c语言程序设计》。
|
32
zarzen 2013-06-24 10:41:59 +08:00
我就记得、我老师说、有个android的项目你去做吧。看一下java。看了一段时间不知道在干什么,也没什么特别的,放弃。然后直接开始写了……(当然,我之前学过C++)c系列语言编程思路根本没什么特别的。
至于ls那些说的c ,OO什么的,还推荐先学C……典型的中国大学风格。反正我是不能理解的。内存之类的跟效率有关。但是跟业务逻辑的关系有多大?一个东西在没有做出来之前就开始考虑效率,除非它是操作系统什么的。否则就是浪费时间。 至于java,那么多坑爹的概念,让我至今对它没有好感。不是复杂了,才体现牛逼。 |
33
Beckham007 2013-06-24 11:04:39 +08:00
Java主要是学习思想,多读源代码吧。。。
|
34
denger 2013-06-24 13:18:32 +08:00
@zarzen
推荐先学C就叫典型的中国大学风格? C作为大多数编程语言的鼻祖至今仍无半点衰褪这并不是没有原因的。 另外你也没看明白为什么别人推荐先学C?你以为先学C之后就会了解 Java 的原理?了解内存效率?如果这样认为末免也太小看 JVM 和那些专门搞编程语言底层的人了吧。 说白了,之所以说 C 最好入门是因为它纯粹、简单(语言的体系简单),没有象 Java 那样大的体系结构及大量 Java Docs API、抽象以及新增的各种概念(你自己都说了:"至于java,那么多坑爹的概念"),对于一个连 if else以及基本的数据结构类型都没完全搞清楚的人来说,这些必定会给初学者造成学习的干扰,所以 LZ 在学习后出现迷茫的情况也就不奇怪了。 |
35
hit9 2013-06-24 13:44:00 +08:00
学习java啊、、我的历程就是看了下java的代码,然后就学不下去了、、
|
36
jjx 2013-06-24 14:34:00 +08:00
最佳心得: 别学java
|
37
b824379598 2013-06-24 16:18:08 +08:00
JAVA各种框架
框啊框 把人都框死了 |
38
iMouseWu OP @akinoniku 各种东西的入门确实很重要!教材什么的也很重要!就像我们学习的教材C就蛮简单,因为是学校老师自己写的课本!所以就单单的入门的话个人感觉还不错!但是书上涉及到的C的核心真的讲的很少!以至于我现在问我的同学你觉得C怎么样!他们都说很简单!所以我觉得可能和教材有关系,如果是入门的话!
|
39
iMouseWu OP @railgun 其实我也是这么觉得的!因为里面的东西实在是太多了!而且有些东西根本我现在就没有接触过!所以有些是要在应用中去接触!当初第一眼看了上面的25条,直接傻了!
|
40
iMouseWu OP @so898 先mark一个。最近时间紧没时间细看!等过段时间再仔细研究下!个人感觉没有什么鄙视不鄙视的!确实有很多鄙视java,把什么东西都搞的这么复杂!但是个人感觉语言这东西,其实不管什么语言你都可以去完成一件事情。就拿写一个聊天室的程序来说,你可以用java写也可以用node.js来写!只是开发效率和运行效率有差而已!所以现在为什么会有这么多的语言出现(虽然个人知道的语言不多),个人感觉就是为了完成一件事情更加的有效率和简单,而设计出来的一个东西!所以语言个人感觉只是一个工具!而我们做的就是把这个工具用好,或者用这个工具做出一个新的工具来!现在对语言的认识也不是很深入,希望可以共同进步!
|
41
Lbcove 2013-06-24 17:04:01 +08:00
语言只是一门语言,基础比较重要,至少C是最基本要学习的,其他相关的操作系统,数据结构,计算机网络,数据库等都是最好要掌握的基础。要从大体上认识这门语言能干什么,优势在哪,劣势在哪。学习语言也是为了开发应用,开发软件的流程,比如软件工程等就比较重要。能较好清楚自己的定位。基础好了学起来不是很费力。
|
42
iMouseWu OP @Beckham007 个人感觉还有底层!
|
43
iMouseWu OP @denger @zarzen ,C确实很牛。C也确实要比java什么简单(这里的简单并不是所说的内容简单),没有java doc api。没有各种烦人的框架!因为个人没有研究过jvm所以对内存这方面的比较也不能发表什么看法!就像@b824379598 所说的,各种框架的出现确实让人目不暇接!
个人感觉java里面的框架就想各种新出的语言一样,只是为了让人更加简单的做事情而出现的一种事务!所以@denger 为什么会有烦人的java doc api也不奇怪了!因为什么都已经给你写好了,你只需要调用就OK了呗!(也许这就是面向对象中“封装”的精髓所在吧)所以学习框架最终还是要回到本质,也就是框架的源代码。也许哪一天自己能像@davepkxxx所说的,可以写出一个工具来,也许就是达到另外一个高度了吧! 其实语言的纷争就没有停过C,C++,java.@Lbcove .对的至少要知道一门语言的优势和劣势在哪里。就像我上面说的,不管什么事情,什么语言都可以干,只是效率的问题罢了! NEVER GIVE UP |
45
ipconfiger 2013-06-24 17:27:18 +08:00
最好的学习方法就是,忘掉java吧
|
46
iMouseWu OP @ipconfiger ......其实java也还是不错的!我比较喜欢诶!
|
47
davepkxxx 2013-06-24 18:35:12 +08:00
@iMouseWu 好吧,这里就多说一些吧,毕竟身为一个靠Java吃饭的人。
《Effective Java》是一本非常优秀的书,它的作用是帮你合理规避Java中一些可能引起BUG或异味的地方,并帮你选择一条更好的道路,这些地方不少是Java设计中的不足或缺陷。 《重构》对于Java、C/C++、C#这种为大型、复杂、安全性要求高、多人/多团队协作开发的准备的语言来说很重要,因为到了这个时候,需要有清晰的项目结构和明确的代码逻辑。 对于设计模式,很多书都很优秀,我选《大话设计模式》其实是因为它通俗易懂,因为当时我还是个菜鸟。设计模式主要是为了解决很多实际问题,比如安全性保障、多人协作方便、提高开发效率、降低代码耦合。这些问题有些是为了帮助解决软件开发过程中遇到的问题,有些是为了弥补Java自身的不足。 Java是开源界少有的高质量代码聚集地,原因是经过很多商业项目的检验,并且其中很多代码是由非常优秀的公司和人贡献的。那些流行开源代码库中的项目,是重构、设计模式这些概念非常精彩的范例。当然你使用的时候只用看用户手册和API就够了,不需要关心它是如何实现的,除非你遇到BUG。 自己写框架是一个非常有趣而同时又很折磨人的事情,但是对自己水平的提高非常大。设计的时候不必拘泥于Java本身和现有的框架,参考一些其它的语言和它们的框架。 |
48
hooluupog 2013-06-24 18:44:10 +08:00
c入的门,java开始做项目,python/c++/Go这些自学,c++很少使用。JVM平台很好很强大。
|
49
zarzen 2013-06-24 19:46:55 +08:00
|
51
zarzen 2013-06-24 19:53:36 +08:00
@iMouseWu
网易公开课有个编程范式课,你可以看看。 这样照着C做基础那条路子,我觉得还行。我不支持先学C是因为,c过于接近机器。不适合,入门。 至于java,我认为它有今天,在于商业支持。商业支持带来了普及化,规范化,民工化。所以它是很好的工具。但是java的不断演化中可以看出,它感受到了自己的不足。 |
52
denger 2013-06-24 22:01:33 +08:00
@zarzen 我说的是相对 Java 而言。至于别人如何觉得,我管不着,我只是表达我的想法而已,一个 从 C -> xx -> Java 的过来人的心得。
至于什么 Python Ruby 之类在该贴感觉就有点偏题了... |
53
denger 2013-06-24 22:15:16 +08:00
@zarzen
C "过于"接近机器? 请问您指的是它的指针还是它的内存管理上或其它?现在学习哪门语言到了一定程序不需要对内存甚至更深的原理或接近机器的进行了解或优化? 提前了解这些基础有什么不好。当然,如果你今后的志向只是每天只是写写 Demo 或 没多大访问量的程序就另说了. 在我看来,Java 有今天, 其商业上的成功并不是关键,更大的成功来源于开源的推动。 |
54
ipconfiger 2013-06-24 22:53:44 +08:00
@iMouseWu 8年前我也这么想滴,可惜啊
|
56
Ricepig 2013-06-26 12:29:26 +08:00 via iPhone
java程序员表示不知道define,free,头文件,指针为何物。大概也不知道makefile为什么能写的那么复杂。
哈哈 |
57
iMouseWu OP @Ricepig 个人感觉C中指针是精华!。。但是我觉得在Java中引用变量其实是1级指针的另外一种体现!虽然不知道java里面是否存在多级指针的体现!但是一级指针的体现可以有!
|
58
Ricepig 2013-06-26 18:26:25 +08:00 via iPhone
@iMouseWu 这未免把指针看的高级了一点,事实上指针除了达成类似引用的作用,还有其它作用。指针和位操作也是c语言接近硬件的典型特性。
java程序员就不一定要接触这些了。 |
59
iMouseWu OP @Ricepig 这个倒是!我觉得正式因为C语言接近硬件,所以它的效率会比java高,也更加难学!
C也没有很深入了解! |
60
manoon 2013-06-26 23:02:57 +08:00 via Android
@iMouseWu
father works with j2se, everynight late 2 back. mother often complains. and there is no memoeries about park or pleasure ground. if father worked with c#,he would back home on time everyday .mother would be happy and smile every day. and of course could go out togethet for playing in syumatu. |