如果都象你这样,这软件就给你毁了,差点忘记了,你是代码工人,所以你不需要知道这些
你有好的材料,对一栋楼是有好处的!从这方面讲,我们应该好好学习javase!
但是,盖楼我们要先设计,没有好的设计,我们盖楼的料用的再好,你也盖不出白宫来!
研究好材料,是一种艺术,从计算机角度讲就是数学到艺术,我们追求更快的计算,更高效的查询!
研究好设计,也是一种艺术,我们不仅仅可以盖出稳固的大楼,而且可以盖出“金字塔”,是经典!
设计做的好,可以做架构师,像banq老师这样,着眼点是整栋楼,高层次,可以不关心具体代码(如果已经有了稳定代码)!
具体技术做的好,可以搞开发,作高级工程师(不是信息产业部到那套东西啊!别误会,我想当讨厌那套考试!),有非常高效的代码质量!
我觉得都不能放弃,扔掉任何一种,就是“偏科”!
PS:我也认为设计模式非常重要,这方面非常同意banq 的观点。
关键是一个市场需求的问题,现在中国的大多数大学在培养的都是那种向底层研究型的人才,我曾经在大一新老生交流会上作为一个新生这样质疑老生,咱现在学习的很多东西都是研究型的,和市场应用挂钩的到底有多少,老生回答我,向我们学校这样的课程体系主要还是培养研究生(实际上国内很多大学都是这样的模式),培养研究型人才。但中国真的需要这么多搞研究的人吗,大家进大学都是为了去研究坚深的学问的??实际在搞研究的人并不能马上带来生产力,需要很长时间的研究积累,才能带来生产力的大幅提升,而在这些搞研究的人搞研究时,谁来给他们挣饭吃,是那些所谓的代码工人。好了,大家进大学都是一个目的,都是去搞底层的研究,那谁去挣饭吃??实际我觉得,应用型人才和研究型人才应该控制一个比例,个人认为至少90%以上的人应该成为应用型人才,而不是10%以下的人去搞研究,让这些研究成为行业的智库。而中国现在培养应用和研究型人才的比例却严重失调。
我想就算在美国计算机专业也没有这样的比例吧。
————总结:让需要搞研究且适合搞研究的人去钻研底层的东西;让需要吃饭的,马上带来生产力的人去做应用、市场,让他们去学习OO,框架,而且大部人适合走后面一条路。
既然方向明确了,我们再来讨论如何施行这样的策略。作为初学者,我完全同意从OO开始,从OO开始并不代表我反对大家去向底层研究,而是一个方法的问题,原因如下。
初学者从OO开始学,开始入门,先学会编出一些东西出来,不管他原理是什么。是好是坏都没关系,起码体会到了其中的滋味。积累一些开发小项目的经验。这样,我们都这门学科有了一些兴趣,因为我们发现可以做出很多很好玩的东西出来
慢在慢地学习编程的过程中,我们发现有很多困惑。有些东西我们编出来很差,做有些东西的时候我们有些力不从心。好,这时候是引入底层理论的最好时机,大家初步学习一些底层的东西,发现它对我们遇到的那些困惑,麻烦有很好的帮助作用,有了以前编程的经历,项目的经历。你在学习这些理论的时候,你会发现不是那么的枯燥,无聊。不可理解,正如楼上所言那样:“你连冰箱能干什么都不知道就去研究冰箱是怎么做出来的”,你从一开始就研究底层理论,往往觉得有些莫名其妙,不可理喻。如果是这样的顺序则大不一样:“哇,这东西真好玩,可以干很多很有用,很好玩的事啊!!!”再到,“可是这是为什么??”这时候我们就开始向下去研究了。这才是一个符合自然规律的顺序,也是很容易被大家接受的顺序。实际上,美国的大部分大学都是已这样的顺序来教学的,不信大家可以找这本书看看《JAVA大学简明教程》——美国大学JAVA教科书 电子工业出版社。
好,有了初期的这样一段时间的培养,我们开始对学生们开始筛选(不管是学校的筛选还是学生主动的自己对自己筛选),看看自己到底是适合去搞研究还是适合做应用的东西。
实际上搞研究时需要非常大的耐心,毅力,智慧以及坚韧不拔,克服困难的精神的。而这些品质并不是每一个人都能拥有的,每一个志向去搞研究的大学生们可以扪心自问下自己是不是真的适合去搞研究。我的个人例子,我的父亲不是搞计算机的。他是搞古汉语研究的,打我记事时起,我的记忆就是,每次我从睡梦中醒来。就是他做在书桌前看书,写论文,搞研究,而这时往往是凌晨三、四点。他搞研究几十年如斯,无论三九严寒或是炎炎酷暑皆是如此。做研究的人就是需要这样的,能耐得住寂寞。这些研究往往能为一门科学,一个行业带来巨大的贡献。就一个企业而言,企业要造激烈的市场竞争的生存,如果大型的企业需要有自己的研究部门来为自己生产力的提高,市场的发展提供源源不断的动力。就需要这些研究型人才。但在做研究的人并不是能马上带来生产力的,往往需要几年,几十的技术,知识的积累。才能在市场上运用,而且不一定是研究出来的东西就一定能成功。相反,很多的研究都是以失败告终的。那么,这些研究的人不直接带来生产力,或者不能马上带来生产力,谁来养活他们,是靠那些做市场方向的人。
综上,不是什么人都适合去搞研究,只有一小部分的人被需要且适合去搞研究,他们是一个行业的智库,发动机。但需要经过长时间的积累和花很多的资源培养的。所以学生们,要自己问自己是否真的适合去做研究型人才。如果你真非常的适合去做研究,那么你就花去你大部分的时间去研究深层的知识。
上面讲了从向底层研究理论开始发掘适合去做研究的人,下面开始讲从花了一部分时间学习基础理论但却发现自己适合去做应用型人才的人(实际上大部分适合走这个方向,90%+)。
就为以后的发展而言,前面花去的那先学习基础理论的那一部分时间是值得的,但就应用型人才而言,学习一些必要的基础知识就足够了,不应把过多的精力和时间放在研究底层理论上。这是一个基于以上论述的一个方向的选择问题。对于志向与应用的人应该讲更多的时间放在“如何去用好冰箱”上,而不是研究“冰箱到底是怎么工作的,具体到冰箱的每一个细节”。对于软件而言,应用型人才应该讲更多的、大部分的时间放在OO,框架,项目的学习上,偶尔花一小部分时间去研究下该科学的基础知识,是为了拔高自己做项目的能力,提高自己对新知识的适应能力。
综上,个人觉得对于初学者而言是非常适合从OO,框架开始的。
说了这么多,仅个人意见,许都想法还相当不周密,请大家多多指正。现在写完已经是凌晨2:32分了
对于初学者而言,个人觉得必要的编程语言基础还是必要的,起码如果你学JAVA,首先一些必要的J2SE的基本概念还是需要弄懂,如果你连最基本的“对象”这个概念是怎么回事都没弄懂,你怎么去学后面的OO、框架,至于算法,数据结构,再遇到具体的问题,需要他们的知识的时候,再花一小部分时间去研究学习需要的部分,我想,几个项目下来,实际应用常用的几个算法,数据结构也就差不多都齐了,完全没必要从一开始入门的时候就花大量的时间去吧它研究得很深,真需要往深研究不是我们这些做应用的人需要去走的,是那些做研究的人需要去做的事,我们是需要拿来主要,直接拿他们研究出来的成功的东西来应用就OK了,实际上在和市场上滚打很长时间后,做应用的一部分人就分化出去去搞研究了,而且这样分化出的搞研究的人,出来的东西往往成功几率会更大。因为他们知道市场需要什么,他们知道其中的利弊。
其实,我第一次知道Jdon、知道彭老师,还是我在学校的时候。大约在2008年。呵呵。老师向我们推荐的这个网站。
我很喜欢这个话题。佛说佛有理,僧说僧有理。个人很赞同bang老师所讲的。但是本人也不反对其他人的观点。基础必要,思想重要。
有一个现象:有一部分计算机专业毕业的学面向对象、学设计模式,并没有非计算机专业毕业的学的好。
正如彭老师所说的....
我早就注意到这个现象,而且还很普遍。所以,个人认为数学的思维方式不利于面向对象思维的建立,不利于软件设计能力的提高。