身边的朋友,一半以上都是程序员, 吃饭聊天的时候,总是离不开技术和项目,还有就是经常听到这样一个倾述:xx项目,学不到什么东西……
另一个类似的,稍微具体点的问题:什么都是封装好的, 就是ctrl +c 和 ctrl +v, 学不到啥东西,没啥意思……
有时候我就在想, 在项目中, 我们到底希望学到什么东西?一项新的技术? 一个新的架构?
如果只是想对某一项技术钻研得透彻一些, 我认为,在项目中恐怕帮不到你。特别是眼下中国众多的软件外包公司。
为什么这样说呢?
公司承接项目,利润自然是重中之重,没有什么比利润更重要的东西吧? 赚不来钱,谁给咱发工资?但是这利润,自然是跟成本直接挂钩的, 以最短的时间,完成并交付产品,才是盈利的基本保障。
一个专业的软件公司, 除了有自己的核心技术外, 还会有自己的框架,可重用的组件,甚至开发平台, 只有这样, 才能以最短的时间,完成并交付产品, 并且能保证产品的质量。才能在激烈竞争下存活。哪一个项目经理, 在项目选型的时候, 绝不会贸然去尝试新的技术。 一个公司,引进新的技术之前,必然会通过反复求证,评审才能拍板。
做为项目经理,在项目技术选型完毕后,对任何新技术,我是非常不感冒的,我也不愿意看到我的程序员,因为项目选定的某个第三方软件的一个小bug,而埋头去钻研另一个并没有采用的第三方技术,然后跳出来对我说:我们为什么不采用xxx呢?xxx能很好地解决我们现在的问题……(其实,谁会保证这个xxx不会引出新的问题?,天哪,保佑我不要碰到这样的通同事)
那么,这样一说,是不是意味着,在这样的项目,这样的公司,就学不到东西呢?
曾经有一段时间, 我有幸担任公司的面试官, 负责技术面试。 发现有一个普遍的现象,就是,越有来头的面试者(意思是他供职的公司名声大),掌握的知识面就越窄。每每遇到这样的情况,我就放下已经准备好的面试题, 直接就与之随便聊了起来, 也听到过很多抱怨, 无非就是自己所供职的公司,项目开发基本是基于内部平台或框架, 组件,业务流都是封装的, 能学习到的东西, 少之又少……
这是一个很普遍的想象, 我发誓我说的都是真实的。
谈到封装, jsp标签也是封装的, 难不成我们个个都是直接去写servlet不成? 我们的程序员,老是觉得,要自己机械地去使用封装好的组件,便是对自己的浪费,于是便有了情绪,于是便开始抱怨。
其实, 为何不换个角度去想一想呢?假设开发组件的人是你, 因为你的一个组件,就可以少编写成千上万行的代码,这样的感觉是不是很爽呢?
在开源的世界里, 你今天调用到的组件, 对你来说,都是公开的东西, 你有没有想过去弄清楚它的实现, 为你日后成为另一个组件的开发者积累经验呢?
对一些能带来巨大效益的东西,首先我们要怀着谦悲的心,尊敬它,欣赏它,你才能在它身上得到你想要的东西, 而不是一接触它就排斥它,鄙视它……这样一来,事情总是不能朝着好的方向去发展。
唉,老了老了,开始罗嗦了
分享到:
评论
存在有合理性,我想,很多东西都值得学习的。