从c转到java的人思想上有障碍,看见对象就会去想他的地址!这种思维定式不是3天2月能扭转的,没有办法!
楼上的可以先从uml入手,了解面向对象,再转Java
ps:本人就是UML->JAVA的转化过程
请楼上的把J2ee的Turiroal读完!读完之后你就会知道j2ee是什么!j2ee讲的全是解决方案和j2se没关系,你看j2ee但是用C#去实现也可以!只不过j2se是个很好的轮子。
[该贴被zuly于2007年04月05日 23:15修改过]
从c转到java的人思想上有障碍,看见对象就会去想他的地址!这种思维定式不是3天2月能扭转的,没有办法!
楼上的可以先从uml入手,了解面向对象,再转Java
ps:本人就是UML->JAVA的转化过程
请楼上的把J2ee的Turiroal读完!读完之后你就会知道j2ee是什么!j2ee讲的全是解决方案和j2se没关系,你看j2ee但是用C#去实现也可以!只不过j2se是个很好的轮子。
[该贴被zuly于2007年04月05日 23:15修改过]
因为我们陷入了传统基础知识里面跳不出来了,没有创新开拓勇敢的精神,传统又学得不精,老子很早就说了: 为学日益,为道日损. 学得越多,要跳得出来,跳不出来,就死了.
探究这些现象,说大点:说明国人丧失了大智慧的哲学意识,说近点:这是死读书封闭的教育科研体制造成的.
Jdon这个网站就是在研究Java的道,如果你看了老子或庄子的道家思想,就会理解banq为什么会有如此的观点和论调,“跳出来,站在身外看世界”,好象说两国之争也只在蜗牛的角上,如果我们只是想抓只蜗牛来玩儿,又怎么会在乎里面的血战?有用与无用是在于得到他的人如何看待而已。
面向对象模式等与编译原理什么的何为基础,这个问题我想举个例子来说,就好象我们日常所用的各种电器、手表、电脑等,你说其中的机械原理、电子原理等是基础一定没错,没有这些知识哪能造出这些东西,但如果banq说如何更好地用手表计时间、更正确地使用冰箱存储食物、用电视收取信息、用电脑帮助工作才是基础,那对于自然界中的我们——人,来说,可能就更加自然和容易了。
本人大学学的是药学,可以说跟电脑没有一点关系,因为从小的爱好,后来工作中不断从平面设计到网站建设最后到BS结构软件,觉得接触到Java的面向对象非常高兴,这样的程序才象是有生命的,原本跟我想的就一样嘛,后来懂了接口的概念,觉得是一种提升,将行为进行抽象就更妙了,再后来看到模式,很是兴奋啊,觉得这才真的是在编程序,好象孙悟空学会了七十二般变化(见《Java与模式》闫宏著)。至于很多程序员,特别是C、C++系统的所提到的数据结构、编译原理、内存指针,对我来说确实是相对陌生的,在我觉得那才真的是高层次的东西,我打算哪天需要做一些底层的、工具性的软件时再去研究吧。就好象说我先把家里这些日常生活需要用的电器搞得会用,正常运转并且能科学合理充分利用,帮助我解决平常的难题再说,以后哪天如果觉得哪个电器不够好用,需要有所改进,再考虑是不是自己研制一台新的,可能这种可能性会相当小,更多的可能还是找到制造这台机器的厂家,给他们提出改进的建议,他们可能会解决得更加好。
[该贴被wind13于2007年04月06日 10:23修改过]
>Collection和数据库技术已经就是依据数学结构做出来的,你学了数学结构,自以为懂了很基础知识,碰到COllection,你就会自然去打开看看,自豪运用你的数学结构理解它一番,可是这些对于你如何使用COllection根本是两个领域的知识(如何使用Collection是模式领域知识),这些都是先入为主造成浪费时间,能力不足的表现。
对底层数据库,操作系统的研究是浪费精力和时间,但也不能说是能力不足的体现啊,我看能把操作系统研究通的程序员是最伟大的,最可敬的.不研究怎么能用活那,怎么能借鉴别人的技术来开发自己的啊!一大批人是不需要对这进行研究(包括我),可中科院和一些研究所的搞科研的人需要研究啊,不研究中国怎么在计算机界有质的飞跃啊!(banq老师你说对吗?)
>>为什么我们两个看同样的东西,得出结论不一样,就是因为传统基础知识蒙蔽了你的眼睛,让你带上了数据有色眼镜.
banq老师把算法和数据类型看成是符号,这可能是在oo里马上要出现的名词定义吧!
里面的数据也不叫数据了(让你带上了数据有色眼镜),那该叫什么那?
UML建模是很强,建再多的类,实现再多的对象,对象里面总要用到数据类型,算法,只不过类和对象组织的程序比以前的只用函数实现功能的面向过程的程序要好的多的多的.一个简单的链和数组也算是数据结构里面的吧!一个简单的for语句,递归语句也算是简单的算法吧!banq老师说的数据结构和算法就是符号,不懂算法和数据结构,用UML把类图完美的画好,可怎么实现啊(因为人都学模式设计,框架去了,没人懂算法和数据结构了,连进程和线程也不懂了,就知道一切都可以用对象实现,可怎么实现啊?)请banq老师回答!(别再说用符号了,符号代表的太多了)
>>那种将技术分解,喜欢深入技术内部探讨的思维方式就称为向下思维,
深入技术内部就是向下思维,向上思维和向下思维有这样说的吗?就象windows一样,大家只管用它,不需要管它怎么实现,对大部人来说真是这样(包括我),为什么好多公司,好多研究人员千方百计的想让盖茨公开源代码啊!要是windows真公开了,肯定他们会好好的研究一下,争取在windows的基础上做出比它更好的系统,难到这些公司和研究人员也是向下思维吗?(请banq老师回答)
对一门技术的应用和开发是两码事,应用的只管怎么把这门技术用好,而不关它内部怎么具体的工作的.开发就不同了,要知道它的内部工作机制和各个部分怎么才能协调的工作,并且开发出来要让广大的用户喜欢.不懂一些基础知识只懂对象和模式能开发出来吗?
(请banq老师回答)
>>>OO是和这些传统基础知识并行的,是水火不容,是两个路线问题,非此即彼,是相克的,是黑与白,是不匹配的,是mismatch的。
哲学中有这样几句话:"事物之间都是相互联系的","一切事物都在变化之中",怎么能说OO是和这些传统基础知识是水火不容的啊!
有些教育的误导,常常培养人们的辩论能力,而不是理解对方,寻找与对方合作可能的能力,感觉也就好象我们的软件教育,常常把一件简单的事情搞得复杂。
以上问题,看过的人都已经清楚了,已经不必再争论下去了,各自可以思考各自的方向,不可能每个人通过一次辩论后,都变成一样的观点,走一样的路。
道可道,非常道
软件编程之道,恐怕也不是一句两句能说得清楚的。
>>其实数据结构与模式语言的结合可以很好地 重用的解决一类通用问题,下面这个主题就是结合Composite+Visitor模式和二叉树概念解决树形结构通用问题访问这类实际应用中问题,从而形成解决一类问题的框架,这样不是提高我们开发效率和开发质量吗?(banq老师你以前说过吧!)
这是banq老师以前在论坛上给大家说的,而今天又说
>>OO是和这些传统基础知识(数据结构)并行的,是水火不容,是两个路线问题,非此即彼,是相克的,是黑与白,是不匹配的,是mismatch的。
这能不让人费解吗?
作为一个大家心目中的专家,高手,能这样解释问题吗?这还叫科学的思想吗?
我上面问了banq老师好多问题,为什么不回答啊?
你的回答可不是我一个人看的,是有好多登陆论坛的人要看啊!
框架永远脱离不了算法与数据结构的
microsft - 提出了.net平台,可是赚钱的是office与windows
google - 提出了ajax,主营业务是搜索引擎以及广告,用了什么framework?
oracle - 数据库的老大,关系型数据库的基础是什么大家都知道吧,用了framework??
borland - 我曾经最喜欢的企业,现在开始做企业整体解决了,可是效益跟影响力怎么却日益减退那??
还需要举例了??
如果你打算当蓝领工人,那么请努力学习那些framework,因为你的公司需要它们,需要他们来做项目。但是如果真的想发展,走入软件的核心,进入ibm,microsoft,google,去进入到核心,请仍然回到算法与数结构上。
至于你们所说的“基础知识”,说不定哪天你们又会遇到某个数学狂人,对你们现在研究的计算机知识嗤之以鼻,说数学才是基础,数学问题你们研究得太少了等等。
明确问题,研究方向不同,对于做应用性的软件(目前大多数项目也仅止于应用)来说,面向对象的思想、模式、框架等确实已经成为基础知识,更宏观一些。
拿机械行业来举例,我们可能更关心的是类似于机械的结构,如何用现有的别家厂商的发动机组装成自己的产品,可能80%的零件均来自其他厂商,但只要产品是独特的也是可取的。而如果片面强调机械内齿轮的钢材如何如何,镙丝的丝数如何如何才是基础,那可能就有些舍本逐末了,始终明确刚起步时,你要做的是什么。
二位所说的“基础”确实是基础,只不过对于初学者来说,深奥了些,等他们会做一些简单的应用后,等他们已经能胜任当前的应用软件开发的工作后,我想他们会回头来补这一课的,到那时学习这些所谓的“基础”时,可能更容易、更好理解、更明确目标,甚至那时才会在学习的基础上更多地思考“原来我那时用这样的结构是不太好的啊!”“好象那个模式里加入这种算法就更妙了”,而这些思考是一开始学习这些基础不会想到的,反而会觉得枯燥无味,学而无用等等。
我的学习理论:先会用,管他怎么回事!回头再细细研究,一定更有体会!