该帖已经被评为精华帖
|
|
---|---|
作者 | 正文 |
发表时间:2010-07-29
最后修改:2010-07-29
JE的帖子很多都是批判所谓“精通”这个词的,好像精通是个很夸张的词。但其实老实说,java精通不难。几个月前我去某公司面试的时候,聊的挺开心,后来面试官A问面试官B:你问几个问题吧?B说:有什么好问的,java是个人都能写。现在这个工作面试的时候,面试官说的话也类似。深得我心。 很多人一张嘴就是高并发、高负载、多线程、数据库,好像非要XX了才能算精通。其实都是歧途。我前后2个老板都曾经是bea最高级别的system architect,专门干fire fighting的,全世界飞来飞去好几年,服务器端的技术,都未必能倒背如流,关键在于基础知识牢固,思路清晰,见招拆招就够了。最重要的是解决问题,水泥抹得再平,终究成不了建筑师。 对于那些新工作的程序员,我有句话:对于java,要战略上藐视,战术上重视。未战先怯其实比盲目自大更阻碍进步。也许是的,过几年你回头看今天的自己会觉得太幼稚张狂,但是如果今天自己盲目吓唬自己,更不可取。每个牛人都是这样过来的,做技术,向前看!现在JE的风气很不好,毁人不倦。每个职场时间点都会有对技术的不同理解,这个没什么不好意思的地方。现在回头看当年J道上那些人的讨论,完全从一个扯淡到下一个扯淡,那些人今天还不一样也是java业界中坚力量了。 什么是战略上藐视:既然做这行,java没有什么神秘的,如果你不吓唬自己的话。特别是SSH,这种东西哪怕明天所有的源码在世界上消失,估计随便哪个不是太烂软件公司都能重新开发一套,就SSH的设计概念来说,确实是经得起考验的,但是如果说大家看过猪跑以后还觉得学不会,就太夸张了。就算是hibernate那套东西,你全明白了,离真正精通数据库还10万8千里呢,如果你真要研究那个都花几年,还混个P啊(每次看有人说研究Spring或者hibernate花了1、2年,我就很无力。研究红楼梦可以一辈子,你觉得能成作家吗?) 什么是战术上重视:很多人总是一边觉得java特深奥,又一边说现在工作很XX,什么技术都用不到,全是叶公好龙。java的技术,全在应用上。什么是应用,说穿了就是设计+代码。什么是好代码,就是代码量更少,维护更容易,结构更清晰,这和你用什么技术没关系。说到底,要提高代码水平,要超越的是自己,改进的是自己的代码。代码水平上去以后,慢慢的就会进到设计这个阶段。什么是设计:就是解题能力。提高这个主要靠思考,把每个工作上碰到的需求精益求精(和高考题海是一样的),这个和你使用的技术仍然没有关系。不管干啥,都别先写代码,先想清楚,要有大家来找茬的心态,不管是看自己还是别人的设计,刨根掘地的考虑所有的优劣。现在写程序的时间应该和之前发呆的时间差不多长,一个好的设计可以节约无限的时间。举个例子:我现在在做一个excel的plugin,目的是在solver(一个流行的excel功能)的循环中自动触发调用服务器端的java功能作为solver每次递归循环的一部分(而且最要命的是,这个必须是透明的,就是用户在使用solver的时候完全无限制)。刚开始的时候,包括我和老板都觉得很难(因为大家都完全没有vba的经验)。发呆了整整1天,交了N个方案,枪毙了N次,到最后定了,昨天开写,1天搞定原型。最后设计出来的时候,谁写都一样(几百行代码而已)。但要按第一个方案正儿八经的写,我2周也不一定写的出。所以说:不管干啥,不管无不无聊,你都应该能够磨砺自己的技术。这和你究竟是开发Google还是写CRUD一点关系也没有。 最后:java的技术,其实都在java以外的地方。算法、数据库、网络、各种应用程序接口、操作系统,不管哪个都比SSH本身对于一个java程序员更重要。为了帮助理解:对于一个java程序员来说,OCP的过程要比SCEA的过程更重要。 一个好的java程序员,应该把目标放在java以外的技术上,不断拓宽技术知识面的深度和厚度。至于java本身,只要能做到见招拆招就够了(这也是为什么很多大公司招聘只考基础的原因,但是老实说,我觉得这还不够,因为考的基础面往往太窄也太基础) BTW 回答某个帖子:被问精通什么,一时无语中……?翻译给你面试官的意思:就是告诉面试官你技术上最NB的地方,好让他接下去往下问(免得随便问了你答不上来不是欺负你嘛)。如果你最NB的地方都so so的话,别的还问个P啊。如果你最长的地方能让人满意,再谈别的技术。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2010-07-29
楼主说到点子上了。
应该是设计决定技术选型,而不是为了技术而使用技术。 这点可以评价一个IT开发人士是否成熟。 |
|
返回顶楼 | |
发表时间:2010-07-29
“算法、数据库、网络、各种应用程序接口、操作系统”,对此深表赞同,精通一门语言也无非就是精通这些了!
|
|
返回顶楼 | |
发表时间:2010-07-29
一语惊醒梦中人!
|
|
返回顶楼 | |
发表时间:2010-07-29
感觉说的很有道理
与java解耦合, 思想即接口,语言即实现! |
|
返回顶楼 | |
发表时间:2010-07-29
最近流行批精通两个字吗
|
|
返回顶楼 | |
发表时间:2010-07-29
2年,我就很无力。研究红楼梦可以一辈子,你觉得能成作家吗?)
郭沫若13岁就能背红楼梦了,那可是大作家。 |
|
返回顶楼 | |
发表时间:2010-07-29
“算法、数据库、网络、各种应用程序接口、操作系统”
-------------------------- 这些似乎离我都比较遥远啊,我确实是个JAVA程序员。 算法,什么时候能用到?操作系统? 这真的是JAVA程序员吗? |
|
返回顶楼 | |
发表时间:2010-07-29
最后修改:2010-07-29
LZ很有深度
|
|
返回顶楼 | |
发表时间:2010-07-29
mercyblitz 写道 楼主说到点子上了。
应该是设计决定技术选型,而不是为了技术而使用技术。 这点可以评价一个IT开发人士是否成熟。 这个大哥说的太好了,深有体会啊。 |
|
返回顶楼 | |