j2se基础的重要性

07-04-03 zjlzjlzjl
              

大家都发表关于模式,框架的话题,难道对这些模式,框架掌握了就能把项目做好了吗?

模式,框架固然重要,最重要的还是基础,还是java语言本身,请banq老师回答我,你为什么关于基础这方面的东西说很少那,你不觉的这样会误导好多学java的人吗?你是不是觉的自己的水平很高了,不需要强调这方面了,我这不是书你给大家提的建议不好,而是说你应该多关注一下java的初学者,而不要一味地讲高深的东西,觉的自己的水平很高一样,你能采取我的意见吗?请尽快回贴,谢谢bang老师.

              

28
banq
2007-04-04 10:13

我不想说太多,我可以告诉你我目前的情况:

我已经几年没有去翻j2se了,这不是说我对j2se滚瓜烂熟,而是几乎都记不得,我自己做的系统都是基于我自己的API工具和框架。

当然,不是说开发不需要j2se,需要时会通过google来查,但是击中j2se API的几率很小。

所以,我们可能要反思一个问题,我们过去包括你的思维中关于软件基础的定义是否有误区?是J2SE API是基础?还是模式设计是软件基础?

传统教育和习惯都认为前者,而我认为是后者......这也可能是中国软件不能起飞的一个重要原因。

以上个人观点,仅供参考。

banq
2007-04-04 12:13

开一个新贴再谈继续深入探究:

既然模式设计是基础,为什么象楼主等很多初学者觉得复杂,不认为是基础呢?

我个人认为这和先入为主有关,也就是说:如果你首先接受的是一种“畸形”误导性教育:学习数据库 API等这些死记硬背的东西,养成认为死记硬背的知识是基础的习惯逻辑和思维。

很多软件大师一再强调,OO面向对象思想其实不需要培训,是符合人类最自然的想法,小孩不需要学习,可以知道飞机是交通工具的一种,交通工具是飞机 火车 汽车的一个抽象概况,这些都是与生俱来的OO基础认识却被我们的畸形教育排斥了,让广大程序员反而走上与OO背道而驰的编程生涯。

所以,J道试图通过社区形式“释真正OO自然之道”,拨解很多初学者心中迷雾,帮助他们找到真正的软件学习之道。

zjlzjlzjl
2007-04-04 21:35

banq老师,你也是从大学过来的吧,象你那样说,对待OO面向对象的程序设计不需要学习,对小孩也知道飞机是交通工具的一种,交通工具是飞机 火车 汽车的一个抽象概况,如果小孩没受过教育他们能知道这些东西吗?你说的你的j2se的知识都忘了,并不代表你没看过啊,既然你看过了,你已经了解java的基础了,并且在你的工作中得到了实践,如果没有数据结构,操作系统,编译原理,数学等方面的基础知识,懂再多的设计模式又有什么用的,那还能称得上是个程序员吗?我真不知道你是怎么看待编程的?只能说你没有站在初学者的角度去看待编程,你说j2se不需要仔细的学,那为什么JAVA编程思想这本书销量那么大那,难道你没看过这本书,这不正是介绍java的基础知识和原理的吗?j2ee是搞高层开发的,相对来说对好多的基础知识还用的少点,要是搞底层开发,用java试试,要是没用一定的基础知识看看行不行.好多东西是不需要去死记硬背,但该记住的一定要记住,如果脑子里不积累一定的知识行吗?基础的知识也不一定非要死记硬背,但要理解吧,就是创新也要在前人知识的基础上去创新吧!

banq
2007-04-05 10:01

你保留你的观点,你可以继续依靠你的传统教育观点去“误人子弟”,或者你也认为我也是这样,但是我相信很多跟着J道成长的程序员已经完全明白我的意思。

顺便说一下:JAVA编程思想名称中思想的意思就是OO思想,就是设计思想,所以我们认为它是基础,观点一致,我还要批判一下这本书缺点:由于作者是从C转业过来的,很多思维还是从C标准来述说,无疑中会误导很多初学者的思维方式,其实Java和C是完全不同思维方式的语言了。

Java是注重向上思维,什么叫向上思维:就是站在前人肩膀上思考,我以前举过例子:以前“程序员”杂志刊登台湾一个软件大师关于“Collection字节码研究”,因为Java中Collection很神奇,有时好像J2SE中只需要掌握一个COllection就可以走遍天下了,所以,好奇的程序员希望打开Collection这个黑盒子,瞧瞧里面是什么东西,可能有人已经觉得很可笑了,里面能有什么呢?不过是汇编语言字节码罢了,COllection神奇不是它的内部,而是它的使用方式上,也就是模式使用上。

那种将技术分解,喜欢深入技术内部探讨的思维方式就称为向下思维,这种思维表现在:数据库连接池 线程池等等都要自己做,其实,我们重点是来如何应用这些组件的技术,就象如何堆积木,而不是研究如何制造一个个积木块。我相信,老板都不会允许象你这样浪费时间和精力来研究如何制造积木块,这是一个构件分工大生产时代,不是小作坊了。

向上思维就是拔高思维,拿来主义,一个新技术不必关心它是如何做出来的,而是重点研究是如何使用它,使用的场合和条件是什么,这些就是模式啊。

说到这里,如果我说不学习"数据结构,操作系统,编译原理,数学",照样可以作出架构优质的高性能Java系统,你可能不惊奇了,Collection和数据库技术已经就是依据数学结构做出来的,你学了数学结构,自以为懂了很基础知识,碰到COllection,你就会自然去打开看看,自豪运用你的数学结构理解它一番,可是这些对于你如何使用COllection根本是两个领域的知识(如何使用Collection是模式领域知识),这些都是先入为主造成浪费时间,能力不足的表现。

操作系统和编译原理 我更不要讲了,DSL语言出现,会讲领域专家画的类图直接编译成Java等高级语言,这是新的编译原理,但是这个编译原理和高级语言编译成汇编语言原理可是大相径庭,其中模式架构是主要的,数学等则退位其次。

关于数学是否要学,我以前说过:企业软件不是数学 和管理,企业软件是研究如何让自身更具生命性,伴随人共同成长的学科。数学和管理等只能是专业领域的,属于软件需求领域前端,很多人觉得做软件,好像数学一定要好,也是错误的,如果我们依次类推,做ERP软件所有程序员是不是都必须是企业管理专家?实际上一个好的管理软件是由管理专家加上软件架构专业人才和程序员共同分工完成的。

过多学习"数据结构,操作系统,编译原理",会让我们产生软件到底就是数学的思维,这是相当有害的,软件不只是数学,也是艺术,领域建模就是一门创新的艺术,你如何通过模型建立来模拟客观世界,这就很象绘画写生一样,越能抓住本质,你的软件系统就越具有生命性,否则东施效颦,软件模仿了客观世界的皮毛,客观需求一变化,软件就全部瘫痪,甚至重写,这些都已经深刻说明,软件是一种思维方式,是一种认识世界的过程。

以上这些观点,可散见到我以前各个帖子观点,收集在此,一直挂在首页,希望能够帮助更多Java初学者,如果你看到觉得,觉得自己世界观以及过去成长经历受到完全否定,思想接受不了,可以关闭这个帖子,希望没有打扰你“正常”编程生涯,对不起了。

60Go 1 2 3 4 ... 60 下一页