觉得要把JAVA基础扎实了,至少看哪些书 ?

《java编程思想》,《JAVA核心技术》,《effective Java》,《深入理解JAVA虚拟机》,《JAVA线程》,《Agile Java》,应该差不多了吧 ?

另外关于OO分析和设计,我是<敏捷软件开发>,<JAVA与模式>,<Thinking in uml> 这3本书配合着看,还有读开源Java论坛Jive, 在jdon论坛上看到什么 领域驱动模型 DDD,也买了本 DDD的书,看了一点,先放到一边了.

感觉自己数据结构功底不足,心虚啊,还要花时间锻炼基本编程能力,多做数据结构习题.

看到金碟公司的顶级架构师写的心得体会,我颇有感触"

"不知不觉做软件已经做了十年,有成功的喜悦,也有失败的痛苦,但总不敢称自己是高手,因为和我心目中真正的高手们比起来,还差的太远。世界上并没有成为高手的捷径,但一些基本原则是可以遵循的。

  1. 扎实的基础。数据结构、离散数学、编译原理,这些是所有计算机科学的基础,如果不掌握他们,很难写出高水平的程序。据我的观察,学计算机专业的人比学其他专业的人更能写出高质量的软件。程序人人都会写,但当你发现写到一定程度很难再提高的时候,就应该想想是不是要回过头来学学这些最基本的理论。不要一开始就去学OOP,即使你再精通OOP,遇到一些基本算法的时候可能也会束手无策。"

深有体会,过去上学的时候我也不是很喜欢学习算法,尽量蒙混过关,可是做了这么多年的软件之后,又把这些书捡起来重新看了很多次,越看越发现其实很多东西原来真的就已经在书本上写的清清楚楚了,过去只是没有经验,根本不知道这些东西的重要性。算法就是《九阳真经》,当《乾坤大挪移》不能进境的时候要考虑一下自己的内力是否已经达到了一定水平。

你不直接从OO开始入手,永远扎实不了Java基础,都是围着鼓边在敲,不能直入中心,浪费时间生命和资源以及家人对你的期待。学习算法和数据结构就像中药,不死不活耗你生命,其实学什么这个问题不想清楚,人生很多问题都不会想清楚,就会很失败。

那些所谓成功者的名言,可能只是自大者的梦语,他们也确实不清楚知道哪些重要知识让他们成功,如果他们知道,就成了上帝,就能够复制,那么每个人学习这些知识就能成为成功者。再说了,中国公司成名成功,没有一个是依靠技术取胜的,都是技术以外原因,那么技术人员冒充成功者出来说名言,就更可笑了,更愚蠢的是一些人相信这些名言。

至于原因,可以参考本站大量讨论,如算法重要吗:
http://www.jdon.com/jivejdon/thread/35102.html

[该贴被banq于2009-06-19 09:44修改过]

OO也不能偏废。既然选择了,既然用Java编码,你不可能不OO。
算法、OO都是基础的东西。
[该贴被beepbug于2009-06-19 18:14修改过]

学习java有二年半的时间了,实际工作经验就算二年吧。
我发现一个事情就是不能极端,OO与算法都是一样重要的,而且我学习这些也没有冲突,它们都有自己的领域。
一直看jdon一路下来学到了很多,我也常常思考,做上层系统确实是大局关方面的思路。我想基础的算法还是应该知道的,可能现在的开发人员都不太重视,或是企业系统中用的不是很多.
如果说有那些书,我觉得这几本吧,现在java还有相关基础性的东西还在看(记忆力不是很好,所以需要常看)。
java编程思想(有的章节没看过),java数据结构与算法,深入java虚拟机技术(我也是看的重点,没有都看完),java并发编程(正在看),领域驱动设计DDD,深入浅出设计模式等.

用到那些知识,看那个,这样的记忆效果是最好的。 通常也会真正的理解里面的东西。

java这个大家族太庞大了吧!要学的东西太多了吧,可能最基础的就是前面几位说的OO吧!

个人意见!!!

我是从0开始学习的,想请问刚接触java应该怎么去学,走不必要的弯路,谢谢了!QQ1013589566,不介意可以加下QQ聊了!

个人理解,按照顺序和由浅入深四个步骤。
1、Core Java----------入门,广泛学习
2、Effective Java------细节,算法、思维
3、Java设计模式-------架构设计、OO思想
4、深入Java虚拟机-----理论提升
如果是工程应用,只要满足第一步,再进行针对性模仿学习就可上手开工啦,若要能够做代码优化,模块封装则需要2和3初步知识。