请选择 进入手机版 | 继续访问电脑版
本站特色:极好的技术研究氛围!所有技术交流,必有回复!

疯狂Java联盟

 找回密码
 加入联盟
查看: 59638|回复: 52

[经验] Java的学习线路图

    [复制链接]
发表于 2008-6-14 00:29:26 | 显示全部楼层 |阅读模式
    经常看到有些学生、求职者捧着一本类似JBuilder入门、Eclipse指南之类的图书学习Java,当他们学会了在这些工具中拖出窗体、安装按钮之后,就觉得自己掌握、甚至精通了Java;又或是找来一本类似JSP动态网站编程之类的图书,学会使用JSP脚本编写一些页面后,就自我感觉掌握了Java开发。
    还有一些学生、求职者听说J2EE、Spring或EJB很有前途,于是立即跑到书店、或图书馆找来一本相关图书。希望立即学会它们,然后进入软件开发业、大显身手。
    还有一些学生、求职者非常希望找到一本既速成、又大而全的图书,比如突击J2EE开发、一本书精通J2EE之类的图书(包括笔者曾出版的《轻量级J2EE企业应用实战》一书,据说销量不错),希望这样一本图书就可以打通自己的“任督二脉”,一跃成为J2EE开发高手。
    也有些学生、求职者非常喜欢J2EE项目实战、项目大全之类的图书,他们的想法很单纯:我按照书上介绍,按图索骥、依葫芦画瓢,应该很快就可学会J2EE,很快就能成为一个受人羡慕的J2EE程序员了。
    ……
    凡此种种,不一而足。但最后的结果往往是失败,因为这种学习没有积累、没有根基,学习过程中困难重重,每天都被一些相同、类似的问题所困扰,起初热情十足,经常上论坛询问,按别人的说法解决问题之后和高兴,既不知道为什么错?也不知道为什么对?只是盲目地抄袭别人的说法。最后的结果有两种:
    1.久而久之,热情丧失,最后放弃学习。
    2.大部分常见问题都问遍了,最后也可以从事一些重复性开发,但一旦遇到新问题,又将束手无策。
    第二种情形在普通程序员中占了极大的比例,笔者多次听到、看到(在网络上)有些程序员抱怨:我做了2年多Java程序员了,工资还是3000多点。偶尔笔者会与他们聊聊工作相关内容,他们会告诉笔者:我也用Spring了啊,我也用EJB了啊……他们感到非常不平衡,为什么我的工资这么低?其实笔者很想告诉他们:你们太浮躁了!你们确实是用了SpringHibernate又或是EJB,但你们未想过为什么要用这些技术?用这些技术有什么好处?如果不用这些技术行不行?
    很多时候,我们的程序员把Java当成一种脚本,而不是一门面向对象的语言。他们习惯了在JSP脚本中使用Java,但从不去想JSP如何运行,Web服务器里的网络通信、多线层机制,为何一个JSP页面能同时向多个请求者提供服务?更不会想如何开发Web服务器;他们像代码机器一样编写Spring Bean代码,但从不去理解Spring容器的作用,更不会想如何开发Spring容器。
    有时候,笔者的学生在编写五子棋、梭哈等作业感到困难时,会向他们的程序员师兄、朋友求救,这些程序员告诉他:不用写了,网上有下载的!听到这样回答,笔者不禁感到哑然:网上还有Windows下载呢!网上下载和自己编写是两码事。偶尔,笔者会怀念以前黑色屏幕、绿荧荧字符时代,那时候程序员很单纯:当我们想偷懒时,习惯思维是写一个小工具;现在程序员很聪明:当他们想偷懒时,习惯思维是从网上下一个小工具。但是,谁更幸福?
    当笔者的学生把他们完成的小作业放上互联网之后,然后就有许多人称他们为“高手”!这个称呼却让他们万分惭愧;惭愧之余,他们也感到万分欣喜,非常有成就感,这就是编程的快乐。编程的过程,与寻宝的过程完全一样:历经辛苦,终于找到心中的梦想,这是何等的快乐?
    如果真的打算将编程当成职业,那就不应该如此浮躁,而是应该扎扎实实先学好Java语言,然后按Java本身的学习规律,踏踏实实一步一个脚印地学习,把基本功练扎实了才可获得更大胆成功。
    实际情况是,有多少程序员真正掌握了Java的面向对象?真正掌握了Java的多线程、网络通信、反射等内容?有多少Java程序员真正理解了类初始化时内存运行过程?又有多少程序员理解Java对象从创建到消失的全部细节?有几个程序员真正独立地编写过五子棋、梭哈、桌面弹球这种小游戏?又有几个Java程序员敢说:我可以开发Struts?我可以开发Spring?我可以开发Tomcat?很多人又会说:这些都是许多人开发出来的!实际情况是:许多开源框架的核心最初完全是由一个人开发的。现在这些优秀程序已经出来了!你,是否深入研究过它们,是否深度掌握了它们?
    如果要真正掌握Java,包括后期的Java EE相关技术(例如StrutsSpringHiberateEJB等),一定要记住笔者的话:绝不要从IDE(如JBuilderEclipseNetBeans)工具开始学习!IDE工具的功能很强大,初学者学起来也很容易上手,但也非常危险:因为IDE工具已经为我们做了许多事情,而软件开发者要全部了解软件开发的全部步骤。
    笔者就自己对Java EE体系的理解,对Java EE学习者给出一个粗略线路图,如下图所示:
xxxx.jpg

评分

1

查看全部评分

发表于 2008-6-14 01:33:30 | 显示全部楼层
今日看这个帖子,依然觉得惭愧,因为到现在位置,还是没有研究过这些框架的代码
 楼主| 发表于 2008-6-14 15:15:50 | 显示全部楼层
总是看到很多人在学习J2EE,但其实个人觉得是不是为时过早?
个人觉得:学习J2EE之前,还是应该先把基础打扎实。
发表于 2008-6-14 16:11:42 | 显示全部楼层
цк 老师说得对!我们应该多思考问题,多动手,尽量不要“参考”别人答案。程序写多了,基础才能扎实。
 楼主| 发表于 2008-6-14 19:11:43 | 显示全部楼层
原帖由 xiaozhu 于 2008-6-14 16:47 发表
java的界面编程好像基本上不用了吧 ,java用的最多了还是java web编程 WinForm 进行界面编程效率快多了


现在是告诉你成为一个扎实的Java程序员,而不是速成Java程序员。
如果你觉得某个知识不用学习,原因呢?
—如果你觉得他简单,那你至少要掌握它,才能说他简单吧。
-如果你觉得他复杂,那你更应该掌握它!

学习Java界面编程,不仅是学习这种知识,更是学习界面编程的思考方式。
在我眼里,Java界面编程、WinForm、Qt、Motif界面编程都差不多。
——Java界面编程效率也不见得就比WinForm低,关键在于你的熟练程度。
就像我在ROR敏捷开发最佳实践中说的:很多觉得ROR开发效率比Java EE高,
其实不然,关键在于你是否对Java EE够熟悉。

再者,Java还有一个发展方向——Java ME,可能有人会觉得:
我没学Java ME是遗憾,
但只要你把Java SE学好,Java ME也是随手而来——而Java ME
主要就是界面编程了。

很多人Java学不好,关键就是走了速成这条路。
对Java EE应用中的各种问题,包括各种框架本身出现Bug,基本上我都可以逐一
解决——个人觉得,并不是我有任何过人之处,而是我写了8年多Java程序。
而早期我写得最多的就是Applet了。呵呵。

有机会发一些用Java开发的桌面程序给大家看看。

[ 本帖最后由 kongyeeku 于 2008-8-4 14:33 编辑 ]
 楼主| 发表于 2008-6-14 20:51:49 | 显示全部楼层
请求置顶,加高亮。让大家都看看
我画这个线路图画了近2天时间啊。
发表于 2008-6-25 12:55:29 | 显示全部楼层
老师WorkFlow的讲义,从去年就说要给我,到现在都没给。什么时候给啊。我还惦记着呢
发表于 2008-6-25 19:14:13 | 显示全部楼层
他硬盘没好东西,我想要的是他U盘的东西。可惜一直都没机会下手。唉……
 楼主| 发表于 2008-6-25 19:22:40 | 显示全部楼层
好的,下次聚会做一个工作流的QuickStart讲解吧。
发表于 2008-6-25 19:34:25 | 显示全部楼层

回复 13# 278393600 的帖子

东西不在多,而在精。一个Spring的src也才几M。不经典吗
您需要登录后才可以回帖 登录 | 加入联盟

本版积分规则

视频、代码、电子书下载
请关注"疯狂图书"公众号
QQ交流1群: 545923995  未满
微信群请扫二维码
QQ交流1群:
545923995
(未满)

小黑屋|手机版|Archiver|疯狂Java联盟 ( 粤ICP备11094030号 )

GMT+8, 2019-5-19 16:47 , Processed in 0.450688 second(s), 10 queries , File On.

快速回复 返回顶部 返回列表