>还是希望大家加强算法及数据结构方面的修养。每天做CRUD难道不厌倦么??不期望自己有个突破么??
这两句我认为没有前后关系,CRUD累了,我会做个框架或代码工具来替代我做,这样我省心了,但是你又让我去学算法,我累不累啊?就象你和累了一天的搬运工说:累了吧?去学点数学吧!
>>这两句我认为没有前后关系,CRUD累了,我会做个框架或代码工具来替代我做,这样我省心了,但是你又让我去学算法,我累不累啊?就象你和累了一天的搬运工说:累了吧?去学点数学吧!

楼上开始强词夺理了么??框架的作用不是依然是代替你做CRUD么,本质不变。我想说的是你每天都做这种项目,有没有一天想做一点具备一点难度的项目,这种难度不是研究新的框架,而是一种新的挑战,你致力于解决一个业务难题了。最后楼上说搬运工的事情,呵呵,简直就是可笑之极,我是从程序上面说的,你一定要说搬运工,要是搬运工都能做你做的事情,你觉得你很光彩??

大家想想为什么算法那么晦涩,大家一提到算法就头疼,因为算法更加抽象,它是人们解决问题的一个思路方法。而OO,不管怎样,大部分都是我们能够接触到的东西,虽然抽象一些,但是并不说那么晦涩。算法是与语言无关的,任何语言都可以实现算法,但是框架大部分是跟语言绑定的,不具备通用性,那个更加珍贵大家自己体会吧。

这个贴子很长,我没全部看完。

下面简单说一下我个人认为的计算机学习曲线:
1 编程语言API --功能
2 算法,数据结构,操作系统,编译原理等 --性能
3 框架,模式 --可重用

学习计算机跟个人的成长是类似的:遵循兴趣,曲折前进

初始关注的是如何实现,开发出来就是最大的激励 --重点在项目功能。

实现功能后,开始反思如何才能把性能提高 --即项目更好的实现方法

最后的兴趣点自然是如何找出不同项目间的共通的东西,提炼出共同的精髓--重用。

学习应遵循自然发展之道,兴趣点在不断发展中完成自然转移。

如果刚开始就过于关注模式和框架
入门者会失去兴趣,共鸣也不强烈。
模式,框架是老辈人的肺腑之言,经验精华
不过没有经过挫折历练的年轻人可能不想听,即使听了也不一定有感触,学不到精华。

有些路,即使是弯路也是必须要走的。

不过,"最终你会回来跟我一起唱这首歌的"---大话西游,唐三藏

完整代码不能下 ,能不能全贴出来?
站的层次不一样而已,考虑的角度不一样
>站的层次不一样而已,考虑的角度不一样
非常正确,技术思想和程序员素质两者之间是不能脱离的,俗话说:屁股决定脑袋,在什么层次,就有什么想法,如下面两个帖子,都是因为没有真正掌握OO思想,从而对语言工具不习惯的例子,其实,如果要达到同样的软件设计质量或思想,无论什么工具只是途径,花费精力都差不多。:

真不知道有了C#.net,为什么还有人用基于java的应用程序了(j2ee,struts等) :
http://www.jdon.com/jivejdon/thread/31480.html

java真的没前途
http://www.jdon.com/jivejdon/thread/31253.html

呵呵,不知道大家听过这样一句话么

一流的企业做文化、做标准,二流的企业做品牌、做产品,三流的企业做项目。

那个更加需要软件需求变更大家可以自己看吧。

每次上Jdon看文章,就好象要参加一场激烈的“辨论会”一样。我喜欢这种辩论,我认为:无论是专家还是初学者,他们所说的都有一定的道理,每个人的立场不一样、所观察的角度不一样,就会出现“同一个问题多种看法”的局面,真是“公说公有理,婆说婆有理”啊。在我看来,没有绝对的对与错,我想,我们应该更多的是综合这些观点,从每一个观点中摄取正确的部分,结果会得到一个更完美的答案。在这个话题中,Banq与zjlzjlzjl以及其它读者展开了一次激烈的讨论。个人认为,他们观点都有极端的倾向。我想,BanQ应该是专家级的人物,他必定经历过许许多多项目实践,每个项目必定会有好与坏的地方,也许有经历过项目失败的惨痛,正因为他经历过这些“挫折”之后,才会让他深深的感觉到、体会到软件设计比算法更为重要,而zjlzjlzjl也许还是个在校学习的学生,他没有任何的项目经验,而又受一些老师或书籍的“传统”观念的影响,结果得出这种看法。
基础固然重要,而BanQ和zjlzjlzjl所说的基础是两种不同的概念,学Java技术当然要学J2se,J2se是Java所有一切技术的基础。从语言本身的角度来看,这种说法是对的,没有任何错误,zjlzjlzjl就是从这个角度出发去考虑问题的。而BanQ是站在软件开发的角度来看这个基础问题,他认为,要开发一个具有生命力的软件并不是掌握了所谓的基础(计算机原理、编译原理、数据结构等等)就能够开发出来的,重在强调于软件架构设计问题,而“新一代”软件架构都采用了许多优秀框架,如:struts、spring、Hibernate等。这些优秀框架都用到了许多设计模式,这些设计都是OO大师们多年来总结出的经验,设计模式让软件更具生命力,他可以让软件“健康”的成长 ,而设计模式是运用了OO思想,OO思想对于以前面向过程编程的程序员来说,必须要经历一种“蜕变”,因此他需要一定的时间。BanQ就认为,如果你现在是一个初学者,你就不应该再去学习面向过程的程序设计(如C语言),而是一开始就应该学习面向对象的程序设计(OOP),OOP本身就是符合人的一种思维方式。如果还是按照“传统”的学习方式去学习软件开发,就必然要经历一次从面向过程到面向对象的“蜕变”,我们完全没有必要经历这次“蜕变”,
直接从面向对象开始学习就好了。因此提出了这样一种观点:

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

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

所以,我们可能要反思一个问题,我们过去包括你的思维中关于软件基础的定义是否有误区?是J2SE API是基础?还是模式设计是软件基础?传统教育和习惯都认为前者,而我认为是后者......这也可能是中国软件不能起飞的一个重要原因。
既然模式设计是基础,为什么象楼主等很多初学者觉得复杂,不认为是基础呢?

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

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


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

BanQ提出的看法似乎有些“走题”的迹象,首先,zjlzjlzjl提出的问题是学习Java技术的基础,而不是软件设计的基础。因此zjlzjlzjl认为应该多为初学者考虑,多讨论一些J2se的问题,而不是整天讨论这些初学者看不明白的问题。而BanQ就认为,J2SE这些东西不应该放在这里讨论,如果我们过多的讨论J2SE的问题,会使得其它读者认为掌握J2SE是最重要的,因而花了大量的时间和精力去学习J2SE,这样就会“误人子弟”。BanQ强调的是软件设计的基础,而不是语言或技术本身的基础。因此,他们俩的观点原说就越偏离主题。

不知道大家讨论讨论去,我总感觉oo这个东西,说起来真的很容易!但是做起来就不是那么的容易了!我也曾经试着去分析和设计过,但是感觉还是感觉很是迷茫,在网上找了一些好的oo设计,分析,编码实例也没有好的!不知道大家有没有推荐给小弟一个好的!好让我也学学!
>我总感觉oo这个东西,说起来真的很容易,不知道大家有没有推荐给小弟一个好的!好让我也学学

软件分分析 设计 编程三个阶段,分析方法学习Evans DDD;设计方法学习GoF设计模式,本站都有专门讨论.

目前似乎我也遇到这个困惑,请Coolyu0916谈一下。tks
我学SSH等这些框架纯粹是个人兴趣爱好的使然,原来本科时就一直有强烈的兴趣从php/asp一路走来,直到java(非jsp),然后对狂热的喜欢java:)自然而然就走上了java web开发的道路。现在可以说算是入门的程度。面临实习时遇到困惑:然找份工作不是很难,但是感觉从事J2EE这个方向,工作也大多是用几个主流的开源框架做一些开发。这样只是用技术而不是研究技术,也无法体现出研究生跟专科毕业就从事类似开发有什么优势可言(目前来看,甚至是劣势)。java应该是这样的吗?我想应该是no。java门槛不是很高这是公认的现实,以前一很牛的学长听到我做java web开发时回复我说:怎么去做这个了,你怎么跟那些已经有两三年工作经验的人去比?说的偶战战兢兢。
同学中从事linux下c编程的显得平静的多,整天看协议,看算法,写代码。整天在思考中度过应该是幸福的。就目前的行情来说,似乎做java web基本就与算法无缘了。开发做完一个项目,没什么令人惊喜的算法,虽然有JUnit等令人眼花缭乱令人欣喜丰富的工具而让人体验到工程开发的乐趣,但是少了自己动脑思考的算法,总觉得少了点什么。
个人对如何利用框架实现应用不是特别感兴趣,更对struts,hibernate源代码感兴趣,但是目前谁能给提供一个这样的岗位来做类似的事情?Coolyu0916您说IBM,Microsoft,但是就目前我接触的来看,同学去IBM实习的大都是测试,就算是CRL组也是如此。Google招聘的大多是纯算法的实习生,这些职位属于清华,北大的牛人们。纯搞算法也确实太累了,最好的是算法跟应用开发结合起来。
乱说了这些,可能也根本没表达出自己的意思来,但这就是目前的状态,学习SSH困惑时的状态,找工作时困惑的状态----LOST
=============
另:其实没必要抱着说服别人的情绪来谈话题,各自表达,互相理解,观者各取所需最好
另:语言表述能力有限,说的不合理之处希望大家海涵,个人是怀一种崇敬的心态来请教的
体会颇多,学习颇多。
不同的对象,需要不同的起点。
培养出兴趣 优于 勤奋刻苦
寻找一条平滑的学习曲线 优于 从难从严
结合实践学以致用 优于 钻研理论知识和艰深技术

虽然我认为后者也有其价值,但是前者更有可能取得成功
前者可以称为“敏捷学习方法”,后者更像瀑布型
[该贴被daquan198163于2007年05月10日 13:50修改过]

banq,我顶你!你的观点我是非常赞同的!
过程和OO是水与火.中国对OO程序的教育应该以设计思想这个宏观上入手.这样初学者就更好的去领悟与实践!我也是从C过程语言过来的.确实有很大的束缚感,自从找到JDON后,我一直对JDON很是关注,并在此对BANQ对中国软件在OO方面的努力表示敬意!