引出篇
“切忌浮躁”——我想这是在任何学习方法中,都会特意提出来的。
在国内的几个论坛也混了几年,甚至眼看着曾经轰轰烈烈的javaunion从成长到消失。在javaunion ,chinajavaworld,dev2dev,javaresearch,cn-java等论坛上,也相遇或结识了很多java爱好者,有经验丰富者,也有初出茅庐者。
其实,国内技术论坛,是个很奇怪很有意思的地方。从这里成长了一批批的开发者,但也从这里消失了一批批的开发者。犹记得javaunion论坛曾经的一篇名为“为什么两年前的问题,依然在今天还在重复的问”的帖子,引起了很大的争论和深思。这个问题的探讨,不是本篇的主题,拿到这里来,只是作为一个引子,引出我今天要说的话题。不过,建议大家回头可以想一想。
其实,在接触的java爱好者中,还是初学者居多,而其中不乏有“好高骛远,心浮气躁”者。先举个例子吧,这个例子就发生在我身边,我的一个朋友身上。我想,这样的例子,在很多人身上都有可能发生,如果不加注意的话。
事情是这样的:
我的一位好友,他以前是学asp的,毕业后也从事的是asp网页编程工作。大家也知道了,最近两年,asp编程越来越少了(当然待遇也普遍走低,而这时候, java却在逐渐的火爆)。他说他想转java,问我该怎么学。我说“先看书吧,看完书再说”,借了他一本《java核心技术——基础篇》,并告诉他,哪些是应该先看的,哪些是需要仔细看得,哪些是需要多看几遍的。可是,第三天就跑过来告诉我,他去了一家用java开发的公司,说公司用ejb编程,并说他也开始用ejb编程了。(后来,我才知道他是照着别人的例子依葫芦画瓢了)。
如果事情到这里的时候,接下来,俺们这位A兄,如果抽时间能够将java基础好好弥补,一些j2ee体系或者api知识补充一下,发展前景就很不错了。
可惜的是,半年以后,这位朋友,依然停留用ejb依葫芦画瓢的编程上,半点开创性的编程都没有。(我想,应该说,是没有内容可以让他扩充了吧)。不过,更可惜的是,他至今还似乎没有意识到这些,甚至在与朋友们交谈的时候,他还会自豪的说“我用了ejb”。
这个故事到这里的时候,是个悲惨的结局,至少目前是的。我的这位朋友,面对java,也只会告诉别人“我用了ejb”。
今年,包括明年将召开的“Java One”大会,都有一个共同的主题——推广Java的普及。其实,这也变相的告诉了我们,至少在现在,java的初学者还是很多,而且今后步入这一行业的初学者也会更多。
越迟的进入java这个领域,对大多数来说,就会面对更大的竞争压力,因为你的同行比你早进入了半年。
当一位新进入的初学者还在看java 面向对象的概念的时候,发现同行们已经在看的是jsp/servlet了,而这个行业已经在流行ejb了。心急如焚的这位,就开始匆忙的学习jsp。匆忙的配置好tomcat,匆忙的写了两个成功jsp页面后,发现身边很多同事开始热衷ejb了,于是又开始匆忙了编ejb。写了没几天,突然发现原来很流行 struts——struts是什么东东呢,于是又开始匆忙的学。学了没几天,出去一聚会,发现身边的人,都在聊什么java设计模式。于是一拍脑袋,又开始学设计模式……
也许我写的有些夸张了,不过,现实中真的不乏有这样的情况。
当然,这个行业的发展也过于迅速,很多东东,我们刚刚了解的时候,就需要去应用它了。
“浮躁”,让很多人,陷入了不可自拔的越陷越深的循环
“浮躁”,也让很多人,在经过几年的奔波后,发现什么也没有学到
《Thinking in Java》从它出世的那一刻起,就被赋予了java图书中的圣典。他成为圣典,并不是它说了多少知识,多少api。它只说了更多的“基础知识”,它告诉和重复说的,就是“这里是基石,你将站在这里,看的更远”
今天匆忙的写了这篇“引出篇”,接下来还打算写两篇“分析篇”“劝导篇”。在此有言语错误的地方,望斧正。
同时,也真诚的希望,大家在学习java的时候,切忌浮躁。知识是需要沉淀的;思想也是在不断的学习、磨练中走向成熟的;而技术也是在不断的创造中开拓的。
分析篇
知识是需要沉淀的;思想也是在不断的学习、磨练中走向成熟的;而技术也是在不断的创造中开拓的。
在《引出篇》中,我简单的举了一个身边的例子,以及夸张的描述了一个浮躁学习的状态。这些只简单的点出了浮躁心态的表象,那么现在让我们来分析一些根源。
在《引出篇》的议论中,有朋友提到“软件业的浮躁”一词,也建议在“分析篇”中从这方面分析一下。有关“软件业”之类的议论,在各大论坛或网站上比比皆是,有抱有积极心态的,有唉声叹气的,有发牢骚的,也有打抱不平的——但这些远远超越了本篇的主题,也超越了我作为一名开发者的眼光。
正如题目所说的那样——“小议”。从自己说起,从自己的角度说起,从自己身边更多的java开发者说起。
其实,现实中,绝大多数开发者,都有或多或少的浮躁心态,真正能够保持“稳重、矜持”的还是很少。因为在刚开始学习java的时候,难免会走些弯路,走些错路;在经验越来越丰富的时候,也难免会因为一两次的成功而骄傲。
接下来主要从三个方面阐述:
(一) 转行中的浮躁心态
(二) 初学java的浮躁心态
(三) 经验越来越多,而引出的浮躁心态
(一)转行中的浮躁心态
在java开发者中,不乏有从其他领域转行过来的。不论是因为自主转行,还是因为公司转型而造成的转行。
1、从自主转行说起
先从自主转行说起吧,这主要包括两类开发者:
一类是以学生为主的,特别是以学计算机软件专业的为主。转行时期大多在大三下或大四上,因为那时候要找工作了。这两年,从java的就业形势来说,还是比较好的。很多原先学vb,vc的就开始转java了。
一类是刚刚工作的为主。转行期,大多在毕业一两年左右。具体表现在,工作一两年后,发现所从事的行业越来越不景气,所从事的语言越来越不好找工作,而这时候,java正在逐渐火爆起来。于是开始学习java,为转行或跳槽作准备。
从这些“自主转行”的java开发者中,我们可以看出,转行很大一方面是有“利益”驱动的。不论是为获得一个好就业机会,还是为了获取一份好的薪水。这个无可厚非,俺自己曾经学习java就是因为为了就业。
但是正因为这样,学习java很可能就带有很大的“行业流行性”。比如现在很流行struts,就会有很多人刚接触java,就开始一窝蜂的学struts,不论当时是否明白servlet,是否明白java/io。
这种浮躁心态,很容易受外界环境影响。也很容易在后来的学习矫正,当然也很容易犯下面(三)提到的因为经验越来越多而浮躁的错误。
有一句很哲理性的话,叫“我们生存在这个环境,为了生存,我们首先就必须适应这个环境”。面对这种浮躁心态,我们也许暂时只能说——“如果你有时间,请回过头去,花些时间,看看java基础。哪怕只是业余的时间,抽空看看”
2、从公司转型说起
然后让我们来看看因为公司转型而造成的转行吧。
公司为了发展,转型是一种较为正常的商业性行为,不论是从java转到vc,还是从vc转到java。反正结局一样,转行了。下面让我们来看看会存在什么样的浮躁心态。
最主要的表现在,经过简单的培训后,能用java开发,满足公司应用了。这时候,开发者会认为java不过如此简单:反正vc和java都是面向对象,反正jsp和asp都是编程,久而之久,这就心态就会蔓延,再结果就是不思进取。再加上很流行一种说法“重要的是思想,用什么语言无所谓”。
面对这种情况,还有些不好处理的就是,受先前经验的影响,一般人很难去劝解这类转行者:举个例子吧,比如你学习了java一年,你的一位转行的同事先前做了几年其他语言的开发工作,现在开始转行java。这个时候,如果你如告诉他,该这么学习java,该注意这个那个。那么你会获得什么呢?除了获得别人的翻白眼,估计很难获取其他的了(当然,如果运气好,如果那位同事是个谦逊的人,说不定是另一番情景)
当然。对于一些很有扎实基本功,思想也很活跃的开发者来说。转行java不过是用另一种语言而已。虽然java的体系很庞杂,不过对于他们来说,了解或应用,只是时间问题而已。
(二)初学java的浮躁心态
初学习java的爱好者或开发者,大多数是比较虚心学习的。但是在学习过程中,很容易受到其他开发者误导,或行业风向的影响,当然也会受到自己一些“急功心切”心理的影响。
1、 因为要学的太多,而浮躁的
java现在的体系结构越来越庞大(与之相关的xml,web service也在飞速的发展),光J2SE就有十几种core api,更不用说J2EE的应用了。一下子面对这么多的api,很多初学者会面临“如何起步,如何入手”的问题。而又有很多初学者,在学了一两个api后,就开始“囫囵吞枣”的学习了。
很多人,在RMI都还模糊不清的时候,就去大谈什么ejb。在web app还不知道是什么,就到处问“如何配置weblogic”。在论坛上,不乏这样的人。
现在的java的分支越来越多,有些api又可能有多种实现包。作为开发者,不论是初学者还是经验丰富者,我们都不可能在短时间内,掌握所有(甚至大部分)。但是,现实中的应用,大多情况下,需要多种组件或api的组合,这又需要多方面的学习,而且需要在较短时间能够将api熟练的应用。这时候就是扎实基本功和学习能力的体现了。
2、因为一两次的成功,而浮躁的
在论坛上,经常会碰到这样的问帖——“我学完了jsp,下面该学什么”。其实,很多初学者,问这样问题也是无心之失,也是对新知识的渴望。就像一个漂流在四顾茫茫的海中央,如果这时候没有人指引,确实很难自己弄清楚该向什么方向游了。但是,对于任何一个开发者来说,应该永远不要说“学完了”。
可惜,现实中,存在很多的开发者,总在一两次的成功后,变得越来越浮躁。
正如我在《引出篇》中所举的那个例子,在用jsp写了几个页面,就认为掌握了jsp;用jdbc会操作了数据库,就认为差不多可以了;依葫芦画瓢写个ejb,就自诩掌握了ejb的,大有人在。
(三)经验越来越多,而引出的浮躁心态
如果这时候,还有些浮躁。真的有些遗憾了。
对于经验越来越丰富的java开发者来说,经历了初学的动荡期,应该都比较成熟稳重了。这时候还会造成浮躁的心态,我想最大的可能性就是一种骄傲心态的直接表现。
有关骄傲的话题,俺就不要说了吧。
面对这种情况,只能一句话了——“山外青山楼外楼”。
本来还想接着写些有关“(四)学术氛围误导的浮躁心态”这一节的。可是想一想,有些自己也是含含糊糊,毕竟眼光还没有那么高的层次,也就打住了。
现实中,我想远比我提到的情况要多,这些也仅仅个人的一些感想,难免有些思想不够全面。如有言词不妥之处,望斧正。
写到这里,想起了小学时候,前黑板的墙上总是贴着八个大字——“好好学习,天天向上”。
顺便说一句,说这么多“假骄戒躁”的话,不是让大家太过于小心翼翼,也不是一定要按部就班的学习。现实中,未尝不可以看看java就学jsp。但是在学习新东西的时候,应该注意提醒自己“不断的弥补基础的缺陷”。这一段话,原本准备放在后续《劝导篇》中的。只因为在《引出篇》的议论中,有网友提到过这么一句——“至今还没有学习J2EE的部分,总觉得J2SE学得不好”。我想这样的心态,也大可不必。纵然j2ee很多是需要构架在j2se的基础上,但是未必需要将j2se十几个core api都搞通后才去学什么j2ee api(比如jsp,servlet甚至ejb)。