工欲善其事,必先利其器
子曰:“工欲善其事,必先利其器。居是邦也,事其大夫之贤者,友其士之仁者
这句话是我近两年的座右铭,引用百科的解释:“工匠想要使(他的)工作做好,一定要先使工具锋利。比喻要做好一件事,准备工作非常重要。”;解释的很清楚,这就和做事要有计划是一个道理。 还有一个我欣赏的话:
无欲速,无见小利。欲速,则不达;见小利,则大事不成。
引用百科的解释:“欲:想要;速:快速;达:达到(目的)。过于急性反而不能达到目的。”
这些真理就如同孙子兵法一样适用,咱们也可以拿到今天来分析一下现在的情况;顺便说一下我写这篇文章的目的,因为开博客同时也建立了2个有关RIA开发的群所以有很多网友找我问问题,询问问题的可以分为两类:
第一类:新手
刚刚接触jQuery或者是Java Web编程的新人,Java和Javascript(jQuery)的基础比较薄弱,有些是刚刚接触SSH架构,有些是刚刚学习web编程,共同特点都是不知道自己要学习什么、怎么学习技术……
他们来我博客找我或者在QQ群里面问,对于这类童鞋我的回答首先问了3个问题:
- 找准学习的目标
- 你是否准好了进入IT行业(当民工)
- 是否有编程的兴趣
对于第一点是给自己在IT路上找准定位,当然对于程序员来说是学习哪一门语言,例如:Java、C++、C#、PHP、.NET等等,当然如果从事基于Web的编程还要学习CSS、Javascript……,你找准了吗?
对于第二点和第三点是心态,很多新人刚刚进入IT行业都会问同样的话题:IT行业发展好吗?IT行业累吗?
我的回答很简单只有两个字:好、累。
就像今天一个到群里面来的一个正在培训的学生,公布一下聊天记录:
Alexandra 23:07:25 it行业如何了 Alexandra 23:07:32 是不是可累了。。 咖啡兔 23:07:34 看你是否喜欢了 Alexandra 23:07:37 。。。 咖啡兔 23:07:41 IT累是肯定的
看得出这个新人有点汗了……他担心自己能不能承受,还有IT技术更新非常快,需要不间断的学习新技术才可以跟得上发展才不会被社会淘汰
Alexandra 23:03:53 晕,技术更新那么快,,,不活了。。。
像这种态度是万万不能有的,既然你选择了这一行就要坚持做下去;所以这里说到了对于软件的兴趣,兴趣是我们大家的良师益友是我们事半功倍的利器,如果没有兴趣再聪明的人也成不了气候,看大这里问一下自己有兴趣吗? 就像我一样初三的时候用借亲戚的学习机和同学的学习机说明书学习五笔,后来学习basic语言一样,你有这样的兴趣吗?
看完这些如果是新人仔细考虑一下吧……#&(#&¥(##&(#&
如果是选择了“没有”的人或许不再继续看下去了,那就留给那些选择“有”的童鞋们:
1、问问题
这里要说的是学习技术的心态,这么长时间来很多人在群里面问问题都是直接说XXX问题怎么解决,有没有使用XXX软件或者插件之类的;群是什么?群是大家讨论问题的一个平台,而有一部分人把群当成了所有知识的来源,就想咱们平常用到的框架或者各种插件使用方法,这些知识在哪里?怎么获取?这两个问题是新童鞋们要搞清楚的,当然还有一些经常这么问问题的老童鞋们;但凡开源软件(鄙视微软)都有官方的文档,而这种文档时机器重要的武器,他是我们获取技术的最佳途径也是最标准的途径,所以你要多看官网文档,像大家经常用到的SSH架构遍地都是,例如那些《无师自通XXX》、《21天精通XXX》,《XXX秘籍》等等……而且还有很多外国牛人写的书国人翻译的,所以这个没有什么问题,在SSH开发中遇到的问题首先要Google(不建议使用百度,技术百度不行,内事还凑合)有没有相同的问题,如果实在找不到再到群里面询问,问的时候也不要急如果有人知道肯定会帮你解决,要不然怎么会有那么多的开源软件供你用呀……
2、学习新技术
而对于目前前端开发使用比较多的jQuery的插件就没有像SSH那么多的书可以看了,当然国内的和国外也有人写关于这方面的书,像国外的《jQuery实践》和国内的cssrain和小飞写的《锋利的jQuery》,都是讲jQuery核心库的知识……当然你也可以不看书而是看jQuery的API文档,官方的文档东西基本都是面面俱到因为这个也是判定一个程序、插件好坏的一个要素,就像我08年学习jQuery一样花了一周看了小飞那帮人翻译制作的CHM的API文档+写测试代码直接就在项目中使用了,大概记下了jQuery提供的功能知道能实现什么,看文档的时候比较难理解的就写代码加深记忆……
上面这些就当做是对新手的入门指引吧
得得得……有点跑题了,该说说那些正在代码海洋中挣扎的民工了
第二类:处在(牛A与牛C)之外的
我也是这一类人。
这里要说说在实际的企业应用中的规则了,拿Java企业应用来说吧(Java之外的朋友别骂我……我只会Java),Java这家伙是一杯香浓的咖啡也是一杯混合了各种调料的与咖啡豆的水;把Java当做水来看把基于Java开发的框架和插件当做是咖啡豆与调料,N多的插件把咖啡调成多种口味,多种吃法。先感叹一下:当民工3年多到现在感觉我要学习的东西还很多……。
企业应用如同多种口味的咖啡,Java发展10余年全球的开发者们也开发除了上万的各种插件供企业开发应用,感谢你们……
企业应用的开发可不是像你写一个DEMO或者测试那么简单,用的技术很多例如:Struts、Hibernate、Spring、WebService、Jms和前端的[X]HTML、CSS、Javascript、Flash、Flex等等,当然还有企业的宝库-数据库,面对这么多的东西对于不在
(牛A与牛C)之间的我们怎么办?我的想法是——逐个击破,平常工作没有时间就挤时间学习你欠缺的技术,学习和提问题方法上面已经提到了就是三步走:官网文档–>Google–>技术群;
1、准备好技术(未雨绸缪)
既然要开发出高质量、搞用户体验的易用系统那就要准备好开发所需要使用的各方面的技术知识,比如坚固的后台架构和搞用户体验+美观的UI,当然这个都有很多人共同完成(像我在小公司里面前后台都得搞,大公司就分工比较清晰了);如果你负责后台的编码工作那就要有坚实的Java基础,比如一些模式、第三方提供的jar包等等,这些东西会让你在开发过程中祈祷事半功倍的效果,因为你不需要闭门造车而是学会怎么使用就可以了(除非你想深入了解它们);
如果你是前端或者专注前端开发那你需要准备好比如XHTML\CSS\Javascript\JSON等这些常用的技术(具体的内容不在本文讨论范围不再解释)
好,需要什么技术都清楚了那么给你一个场景,老板让你开发一个B/S的财务软件,这个就可以使用标准的SSH2架构和RIA方式开发再合适不过了,那么你现在具备这样的能力吗?SSH架构会搭建吗?Ajax方式的RIA会些吗?引入下一话题
2、时刻准备着
国内软件行业的情形和国外不通,你可能听过一些牛人都是精通或者熟练几种语言,精通或者熟练应用各种模式,这是为什么呢?国情决定了我们必须这么做而且还是时刻……因为国内的公司需要的是全才,每年毕业的那么多大学生,2009年有611万大学毕业生,这么多毕业生和你竞争,是,他们刚刚毕业对你影响好像很小或许你认为对你没有威胁,但是他们在工作中进步一年两年后呢?而且他们工资又比你低相对于他们来说你还有优势吗?
说着说着有些激动了……社会是残酷的,还是说技术吧
我先举个例子,看过我博客的童鞋可能知道我08年开发了一个简单的个人账务管理系统,当时也是为了学习一些技术才写的,为的就是在Java中和jQuery集成,就是不想让自己落伍跟得上技术的进步,因为这个我09年有机会接了一个私活(嘿嘿),拿到单子很快就用我自己写的那个小系统的架子开始开发了……
所以既然我们站在了这个行业就要遵守游戏规则,一些新的、利于企业应用的技术我们都要学习以备以后开发中使用,这才是作为一个标准的IT人才所要做的也是必须做的,只有这样我们才有资本和别人竞争。
如果你有空余时间可以看看技术方面的书籍,或者研究一些新技术以后日后使用这是为自己增加资本,对于你和公司来说是双赢,何以不为?
========================华丽的分割线======================== 说说网友问的比较多的jQuery吧,看看他们都是怎么提问的:
A君:怎么获取一个元素的高度? B君:有用过XXX插件的吗? C君:jqGrid怎么用?
看到这些问题我真的很无奈……我说过多少次了先去看文档看文档看文档,看API……那么详细的文档为什么不利用起来呢?要不然官方还写这些干嘛,既然你要使用这个软件、产品或者插件就要从官方了解它可以做什么然后再逐个看演示或者文档说明,这样你在使用的时候才知道怎么设计出好的作品才会得心应手,就拿我最近在用jqGrid插件吧,是我认为很好的插件,一个是功能很全面,另外一个就是衡量插件是否好的——文档齐全,我是看的jqGrid官方提供的DEMO和WIKI文档顺利开发了基于列表的功能;有很多群里面的童鞋一个接一个的问jqGrid的XXX功能怎么实现,如果你要实现编辑功能那就去搜索edit,如果你要实现搜索功能那就找search,文档的参数列表很清晰的说明哪一个参数的功能,还有一些默认值的配置,看看验证一下下一次就手到擒来不是吗……
结束语:
很少写这样的文章感觉要说的话很多却不知道表达出来,可能这是搞技术的共同特点,而且还是闷骚型的(前公司的部门经理说的)
说实话感觉写的这篇文章比较乱,因为很少写类似的东西给大家看,我也是想到什么写什么,写的不好还望见谅,总之一句话:“工欲善其事必先利其器”,机会是留给有准备的人,要知道学什么和怎么学……祝你事业有成!
咖啡兔于2010年7月30日