`
阅读更多
学习Java其实应该上升到如何学习程序设计这种境界,其实学习程序设计又是接受一种编
程思想。每一种语言的程序设计思想大同小异,只是一些由语言特性的而带来的细微差别
,比如Java中的Interface,你几乎在以前的学习中没有碰到过。以下我仔细给你说几点

 
1。我们必须明确一个大方向,也就是说现在面向对象的编程范畴。尽管人工智能曾经有
所浪潮(看看Borland为什么有Turbo Prolog),但未来5-10年工业界广泛承认并接受的
将是面向对象式的编程。
 
2。工业界目前最流行的面向对象编程语言就是C++和Java。所以基本上锁定这两个方向就
可以了。而且完全可以同时掌握。
 
3。掌握Java的精华特性而且一定要知道为什么。比如,Interface和multi-thread。用
interface是更好的多继承的模型,而多线程则是设计到语言一级的重要特性。要完全理
解interface是为什么,用多线程又有几种常用的编程模型。
 
4。理解了语言的特性是为什么了之后,就可以试着上升到设计这个层次,毕竟学习语言
是要用的。目前比较好的开发模式是采用自定向下的面向对象的设计,加上MVC的模式(
你可以看一下我介绍的关于MVC的内容)。首先要找出最顶层的对象(这往往是最难的)
,然后一层一层往下递归 ,记住每次应符合7+/-2的原则,因为我们人的短记忆就是这样。一般

有图形用户界面的 应从界面开始设计。
 
5。有了基本设计模型后,可以学一些设计模式(Design Pattern)。这是目前证明很有效
的。比如体系结构模式(Layering分层,Pipe/Filter管道或过滤器),设计模式(有很
多,比如对象池Object Pool、缓冲池Cache等),编程模式(比如Copy-on-Write)。懂了这些模

式之后,就会对 系统的整体结构有很好的把握,而学术上也有倾向一个系统完全可以由各种模式

组合而成 。前面提到的MT实际上就有好几种模式,掌握后就不用自己花很多时间去试了。另外

一个 很重要的领域就是并行 和分布式计算领域,大概有20种左右。
 
6。接下来就不能纸上谈兵了,最好的方法其实是实践。一般教科书上的例子并不能算是
实践,只能算是让你掌握语言特性用的。而提倡做实际的Project也不是太好,因为你还
没有熟练的能力去综合各种技术,这样只能是你自己越来越迷糊。我认为比较好的方法是
找一些比较经典的例子, 每个例子比较集中一种编程思想而设计的,比如在我的实践当中,我曾

经学习过一个很经 典的例子就是用Java实现的HotDraw(源自SmallTalk),你可以用rolemodel或

hotdraw在 搜索引擎上找一下,我记不大清楚了。好象rolemodel.com是个网站,上面有原代码和

一些基本设计的文档。另 一个来源可以到www.umlchina.com是个不错的文档基地。从HotDraw上

我学到了什么是 Framework,以及如何用rolemodel的方式来构造,这样我就可以应用到其他的地

方。顺便 说一句,这个例子你绝对不会觉得小,只会觉得大,并且他还是真正的商用的

Framework 。
 
7。结合前面学到的设计模式你就可以很好的理解这些经典的例子。并且自己可以用他来
实现一些简单的系统。如果可以对他进行进一步的修改,找出你觉得可以提高性能的地方
,加上自己的设计,那就更上一个层次了,也就会真正地感到有所收获。
 
8。好象以上谈的跟Java没什么关系,其实我们早就应该从单纯的学习语言到真正的学习
好编程的领域。学习技术是没有止境的,你学习第一种语言可能要半年时间,以后每种语
言都不应该超过两个月,否则你会觉得学习语言是包袱,是痛苦。
 
9。学习是为了用的,是为了让你的程序产生价值,把握住这个原则会比较轻松点。
 
没有第10点了,因为没有东西是十全十美的,哈哈~~。

我可以结合自己的经验大致给你说一说,希望对你有所帮助,少走些弯路。
 
学习Java其实应该上升到如何学习程序设计这种境界,其实学习程序设计又是接受一种编
程思想。每一种语言的程序设计思想大同小异,只是一些由语言特性的而带来的细微差别
,比如Java中的Interface,你几乎在以前的学习中没有碰到过。以下我仔细给你说几点

 
1。我们必须明确一个大方向,也就是说现在面向对象的编程范畴。尽管人工智能曾经有
所浪潮(看看Borland为什么有Turbo Prolog),但未来5-10年工业界广泛承认并接受的
将是面向对象式的编程。
 
2。工业界目前最流行的面向对象编程语言就是C++和Java。所以基本上锁定这两个方向就
可以了。而且完全可以同时掌握。
 
3。掌握Java的精华特性而且一定要知道为什么。比如,Interface和multi-thread。用
interface是更好的多继承的模型,而多线程则是设计到语言一级的重要特性。要完全理
解interface是为什么,用多线程又有几种常用的编程模型。
 
4。理解了语言的特性是为什么了之后,就可以试着上升到设计这个层次,毕竟学习语言
是要用的。目前比较好的开发模式是采用自定向下的面向对象的设计,加上MVC的模式(
你可以看一下我介绍的关于MVC的内容)。首先要找出最顶层的对象(这往往是最难的)
,然后一层一层往下递归 ,记住每次应符合7+/-2的原则,因为我们人的短记忆就是这样。一般

有图形用户界面的 应从界面开始设计。
 
5。有了基本设计模型后,可以学一些设计模式(Design Pattern)。这是目前证明很有效
的。比如体系结构模式(Layering分层,Pipe/Filter管道或过滤器),设计模式(有很
多,比如对象池Object Pool、缓冲池Cache等),编程模式(比如Copy-on-Write)。懂了这些模

式之后,就会对 系统的整体结构有很好的把握,而学术上也有倾向一个系统完全可以由各种模式

组合而成 。前面提到的MT实际上就有好几种模式,掌握后就不用自己花很多时间去试了。另外

一个 很重要的领域就是并行 和分布式计算领域,大概有20种左右。
 
6。接下来就不能纸上谈兵了,最好的方法其实是实践。一般教科书上的例子并不能算是
实践,只能算是让你掌握语言特性用的。而提倡做实际的Project也不是太好,因为你还
没有熟练的能力去综合各种技术,这样只能是你自己越来越迷糊。我认为比较好的方法是
找一些比较经典的例子, 每个例子比较集中一种编程思想而设计的,比如在我的实践当中,我曾

经学习过一个很经 典的例子就是用Java实现的HotDraw(源自SmallTalk),你可以用rolemodel或

hotdraw在 搜索引擎上找一下,我记不大清楚了。好象rolemodel.com是个网站,上面有原代码和

一些基本设计的文档。另 一个来源可以到www.umlchina.com是个不错的文档基地。从HotDraw上

我学到了什么是 Framework,以及如何用rolemodel的方式来构造,这样我就可以应用到其他的地

方。顺便 说一句,这个例子你绝对不会觉得小,只会觉得大,并且他还是真正的商用的

Framework 。
 
7。结合前面学到的设计模式你就可以很好的理解这些经典的例子。并且自己可以用他来
实现一些简单的系统。如果可以对他进行进一步的修改,找出你觉得可以提高性能的地方
,加上自己的设计,那就更上一个层次了,也就会真正地感到有所收获。
 
8。好象以上谈的跟Java没什么关系,其实我们早就应该从单纯的学习语言到真正的学习
好编程的领域。学习技术是没有止境的,你学习第一种语言可能要半年时间,以后每种语
言都不应该超过两个月,否则你会觉得学习语言是包袱,是痛苦。
 
9。学习是为了用的,是为了让你的程序产生价值,把握住这个原则会比较轻松点。
 
没有第10点了,因为没有东西是十全十美的,哈哈~~。




分享到:
评论
2 楼 zhangzcz1999 2008-01-25  
不错!学习!
1 楼 15806021755 2008-01-24  
也是,呵呵!
我也是初学者

相关推荐

    Java面试CRUD程序员,增长了工作年限,技术原地踏步

    Java面试CRUD程序员,增长了工作年限,技术原地踏步

    大踏步地走进大数据云计算时代.pdf

    大踏步地走进大数据云计算时代.pdf

    中微半导体:大踏步走向国际市场.pdf

    中微半导体:大踏步走向国际市场.pdf

    大学军训踏步心得.docx

    【大学军训踏步心得】 大学军训,作为大学生活的起点,是一种独特的生活体验,它不仅仅是一项体能训练,更是一次身心的磨炼。踏步,作为军训中的基本动作,看似简单,实则蕴含了深刻的道理。 首先,踏步训练旨在...

    JAVA工程师个人职业规划.pdf

    一个例子是,一位只专注于一个行业并持续十年的工程师,往往能够取得显著成就,而频繁跳槽只会导致原地踏步。 在职业规划中,找到一位职业导师或职场导师也是很重要的。他们可以提供行业经验,帮助拨开职场迷雾,...

    云石踏步节点

    详细的节点图,云石节点图,不懂得可以看一下 弄的还是蛮详细的

    楼梯踏步粉刷施工技术交底大全.doc

    楼梯踏步粉刷施工技术交底大全.doc

    房屋建筑学试卷(附答案,山东建筑大学)1.doc

    若底层中间平台净高不足,可以通过降低地面、减少梯段踏步数量或两者结合来解决。 四、方案补图题和五、六题主要考察实际设计能力,包括厂房定位轴线布置、地坪层构造、散水设计、屋顶防水构造以及楼梯设计。这些...

    楼梯踏步维修资料.docx

    楼梯踏步维修资料.docx

    房屋建筑学课后习题与答案.pdf

    - 楼梯宽度、踏步高宽比、栏杆高度等需符合人体工程学和规范要求。 - 楼板层需考虑隔声、防水、防火等功能,常见类型有预制板、现浇板等。 - 屋顶设计需兼顾美观、实用和防水,形式多样,如平顶、斜顶、穹顶等。 ...

    楼梯踏步_高度与宽度问题.doc

    这样的设置使得成年人能够轻松地行走,符合人体工程学原理。室外台阶的踏步高度建议不超过0.15米,宽度则不应小于0.30米。站房内的旅客楼梯踏步高度和宽度也有相应要求,分别为不大于0.15米和不小于0.3米,以适应...

    楼梯踏步大理石技术交底.doc

    楼梯踏步大理石技术交底.doc

    人工智能辅助下大学英语写作自主学习的教学手段革新——以批改网辅助为例.pdf

    而在写作教学的后半环节,教师往往力不从心,导致写作讲评课往往变成笼统的“范文欣赏课”,学生在写作学习上的自我效能感较低,产生了畏难焦虑情绪,导致写作能力原地踏步。而且,英语作为公共课时,教师人工评判...

    楼梯踏步_高度及宽度问题.doc

    楼梯的坡度一般控制在30°左右,这是基于人体工程学和行走习惯的最佳角度。对于使用频率较低的服务楼梯,坡度可以放宽,但不应超过45°。步距通常采用2r+g的公式计算,其中r代表踏步高度,g代表踏步宽度。这个范围...

    在学习总结中成长.doc

    对于学生管理,口镇中小从习惯养成做起,如踏步走、无声就餐等,这些细节反映出学校致力于培养学生的良好生活习惯和社会责任感,符合“五年影响一生”的教育理念。 4. 常规教学资料的实用性和时效性: 羊里中小的...

    楼梯踏步维修.pdf

    这篇文档主要介绍了山西建筑工程(集团)总公司太原博物馆及平台工程中关于楼梯踏步维修的冬期施工方案。文章首先概述了工程的总体情况,包括小区的建筑构成,其中1#到9#楼的楼梯面层均采用水泥砂浆面层。然后,文章...

    楼梯踏步护角

    1. **设计原理**:楼梯踏步护角的设计主要考虑人体工程学和安全性。它们应与楼梯的倾斜角度匹配,确保行人上下楼梯时不会绊倒或碰撞到尖锐的边角。同时,护角的形状和材质需能有效吸收冲击力,降低意外滑倒造成的...

    使用Java8 Optional的正确姿势

    我们知道 Java 8 增加了一些很有用的 API, 其中一个是 Optional. 如果对它不稍假探索, 只是轻描淡写的认为它可以优雅的解决 NullPointException 的问题, 于是代码开始这么写了  Optional<User> user = ……  ...

    机器学习.pdf机器学习.pdf

    卷积神经网络(CNN)方法的提出使得特征抽取方面取得了进展,而深度学习的兴起则使得这一方向大踏步前进。 在特征表示后,数学表示发生变化,形成了特征抽取的映射。特征抽取的进步,也是深度学习的亮点之一。在...

    楼梯踏步技术交底.doc

    楼梯踏步技术交底是建筑工程中关于楼梯踏步施工的重要指导文档,主要涵盖了楼梯踏步的施工工艺、质量标准和具体操作步骤。以下是对该文档关键知识点的详细说明: 1. **工程概况**:工程涉及的楼梯踏步设计有所不同...

Global site tag (gtag.js) - Google Analytics