很多程序员在干了两三年后,会有一阵子的迷惘,他们在想,我这样子的算是优秀的程序员吗?这日子一天一天的过,每天不断的重复,也不知道干了些什么。其实当你有这个迷惘的时候,证明你最少是一个熟手了,不是刚毕业那会,急着工作,什么都不会,凡事现学,那时候想不到这个问题。当你做了两三年,公司里的项目基本都对你不陌生了,你也算是这个公司的老人了,对于写代码完成任务,非常容易了。这个时候人很容易感到厌倦,弄来弄去还是这点东西,没劲啊。这个时候特想知道别人是怎么过来的,别人每天都在干吗。我是不是要学点新的东西了呢。
其实要解决这个困惑,首先要定好自己的位,看看自己在上百万的程序员大军中究竟处在什么位置。简单来说,世界上的公司只有两种,大公司和小公司。大公司做大项目,小公司做小项目。大项目程序复杂,用户庞大,数据量也庞大。买的硬件都是大家伙,都用IBM 的大机器,那小项目呢,针对一家小公司,或者做个产品,卖给一些小公司用。其实说起来,大小项目用的技术都是差不多的,大项目用java,小项目也用 java,大项目要排序,小项目也要排序,程序员会的知识,到哪里都不过时,你遇到的问题大家都会遇到。但是话说回来,大项目还是能让人见世面的,处理上百万条数据的做法,和处理几百条肯定是不一样,老在小公司里做的人,的确有可能成为井底之蛙。大的项目要更严谨,更要求效率,更不能浪费,而且负荷一大,什么都显形了,这就人群一样,当风平浪净的时候,谁都是聪明人,谁也不服谁,一旦有了大压力,大灾难,比如说一颗炸弹丢进地铁里,这个时候还能沉得住气,做出冷静分析的人,那才是真正的高人。 大项目也是这样,高负荷测试,谁写的模块效率不足,立刻就显示出来了。
有的人说了,那我也没办法啊,世界500强能招多少人啊,我也没机会体验那大项目大规则啊。其实凡事在个人,在一个小项目里,你同样可以严格遵循游戏规则,流程图该画就画,UML模型图该更新就更新,代码规范该遵守就遵守,文档改写还写,效率该要求还要求。这些个步骤,你都一一执行,不要给自己找个理由就省略了,有的人可能说,我忙呀,没空啊,客户催的紧啊,诚然,你有时候是很忙,但是你不可能一直都这么忙,你总有空下来的时候,空的时候就可以把这些该做的做了。大部分情况下,我们并不是忙的顾不了,而是因为懒惰,公司又不是我的,我那么辛苦干什么呢,人一这样想,就没有动力去布置这些事情了,反正能过则过,能拖则拖吧,抱着这个思想,混了一天又一天。机会都是自己挣来的,不是别人给你的,老等着别人给你机会,强迫你走流程,你就永远没有机会了。
还有一部分人,也很敬业,该做的也都做了,对得起老板也对得起自己。但是觉得做来做去都是这点东西,一点新意都没有,完全没有了激情,每天机械似的的上班下班,十分苦闷。其实计算机的发展日新月异,个人是不可能了解到全部东西的,就算你觉得自己掌握了很多很多知识,完全没有问题了,事实上你掌握的知识也不足十万分之一,你所以感到乏味,是因为自己给自己下了套子,把自己捆住了。井底之蛙的问题并不在于它的位置在井底,而在于这个青蛙失去了前进的动力,觉得这口井就是世界了,实际上只要再多走一部,就可能发现井底的暗流,再多游一点,就可能发现暗渠,即便在地下,青蛙也还是有非常多的活动空间的。类比到人,不管你这个项目用的什么技术,不管你已经写了多少遍了,总有你没发现的秘密,这个函数你用的多,说不定还有更好的函数你没注意过,那个比这个效率更好,功能更多。
是啊是啊,你说的都很对,我也一直在学,一直在看,可是感觉好像到了瓶颈一样,顶不上去了,辛苦多日,效果不大呀。
好,你有了进步的动力,现在还得需要进步的方法了,如果你一直收效甚微,说明你该换个办法尝试一下了,办法简单说就有一个,走出去,对于这一个办法,你得跳出自己的小圈子,去看看外面的世界,比如说你用struts相当一段时间了,感觉没什么突破了,你就要抛开你这个项目,去struts的圈子里,更广泛的去接触一下这个方面的程序员,看看别人在做什么项目,别人遇到了什么问题,是否能和你产生共鸣,是否帮你解决了困惑很久的一个问题,或者你也可以帮助那些初入门的学生,助人是很快乐的,对自己也是很有好处的。慢慢的你甚至可以和struts的官方聊上几句了,甚至可以指出他们软件的错误和弊端了,这个时候你的水准已经很高了。
恩,不错,我自己也觉得我比较高了,但是我还是很困惑,现在新的技术天天出来,人家现在都玩AJAX了,我还不会玩呢,我焦虑啊,我着急啊,怎么办呢,什么都学吧,一没时间,二也学不会呀。真难过。
没什么可难过的,人人都有自己的局限,每个人都只能掌握一点内容,妄想说撒撒都懂,那是刚毕业的学生的简历上才这么写的。你只需要成为一个领域的专家就够了,不需要样样精通。但是也别过了头,自持是公司的老员工,自持是非常熟悉了某个框架,就不肯进步了,吃老本也是不行的。当你有空的时候,当你不那么忙的时候,你也得出去看看,最近有什么新的动向,看看雅虎被合并了没,看看百度又推出了什么产品,看看现在是什么趋势,什么语言挺吃香,这些东西你不必专门研究,但是你得知道,你得了解时代的形式,你得知道现在大家不怎么用VB了,得知道JDK已经出了1.6了。这些工作不用你费劲心思的去研究,只要你空下来的时候,别去看小说,跑来看看IT的动态就行了。
当你了解到了别人都在用什么技术,大家都在开发什么软件,大多数的公司都在干什么,不管你的目标是软件架构师还是项目的总裁,你都具备了充分的知识和扎实的基础,你如果还能同时拥有了良好的人际关系,自己开个公司也未为不可了。
其实要解决这个困惑,首先要定好自己的位,看看自己在上百万的程序员大军中究竟处在什么位置。简单来说,世界上的公司只有两种,大公司和小公司。大公司做大项目,小公司做小项目。大项目程序复杂,用户庞大,数据量也庞大。买的硬件都是大家伙,都用IBM 的大机器,那小项目呢,针对一家小公司,或者做个产品,卖给一些小公司用。其实说起来,大小项目用的技术都是差不多的,大项目用java,小项目也用 java,大项目要排序,小项目也要排序,程序员会的知识,到哪里都不过时,你遇到的问题大家都会遇到。但是话说回来,大项目还是能让人见世面的,处理上百万条数据的做法,和处理几百条肯定是不一样,老在小公司里做的人,的确有可能成为井底之蛙。大的项目要更严谨,更要求效率,更不能浪费,而且负荷一大,什么都显形了,这就人群一样,当风平浪净的时候,谁都是聪明人,谁也不服谁,一旦有了大压力,大灾难,比如说一颗炸弹丢进地铁里,这个时候还能沉得住气,做出冷静分析的人,那才是真正的高人。 大项目也是这样,高负荷测试,谁写的模块效率不足,立刻就显示出来了。
有的人说了,那我也没办法啊,世界500强能招多少人啊,我也没机会体验那大项目大规则啊。其实凡事在个人,在一个小项目里,你同样可以严格遵循游戏规则,流程图该画就画,UML模型图该更新就更新,代码规范该遵守就遵守,文档改写还写,效率该要求还要求。这些个步骤,你都一一执行,不要给自己找个理由就省略了,有的人可能说,我忙呀,没空啊,客户催的紧啊,诚然,你有时候是很忙,但是你不可能一直都这么忙,你总有空下来的时候,空的时候就可以把这些该做的做了。大部分情况下,我们并不是忙的顾不了,而是因为懒惰,公司又不是我的,我那么辛苦干什么呢,人一这样想,就没有动力去布置这些事情了,反正能过则过,能拖则拖吧,抱着这个思想,混了一天又一天。机会都是自己挣来的,不是别人给你的,老等着别人给你机会,强迫你走流程,你就永远没有机会了。
还有一部分人,也很敬业,该做的也都做了,对得起老板也对得起自己。但是觉得做来做去都是这点东西,一点新意都没有,完全没有了激情,每天机械似的的上班下班,十分苦闷。其实计算机的发展日新月异,个人是不可能了解到全部东西的,就算你觉得自己掌握了很多很多知识,完全没有问题了,事实上你掌握的知识也不足十万分之一,你所以感到乏味,是因为自己给自己下了套子,把自己捆住了。井底之蛙的问题并不在于它的位置在井底,而在于这个青蛙失去了前进的动力,觉得这口井就是世界了,实际上只要再多走一部,就可能发现井底的暗流,再多游一点,就可能发现暗渠,即便在地下,青蛙也还是有非常多的活动空间的。类比到人,不管你这个项目用的什么技术,不管你已经写了多少遍了,总有你没发现的秘密,这个函数你用的多,说不定还有更好的函数你没注意过,那个比这个效率更好,功能更多。
是啊是啊,你说的都很对,我也一直在学,一直在看,可是感觉好像到了瓶颈一样,顶不上去了,辛苦多日,效果不大呀。
好,你有了进步的动力,现在还得需要进步的方法了,如果你一直收效甚微,说明你该换个办法尝试一下了,办法简单说就有一个,走出去,对于这一个办法,你得跳出自己的小圈子,去看看外面的世界,比如说你用struts相当一段时间了,感觉没什么突破了,你就要抛开你这个项目,去struts的圈子里,更广泛的去接触一下这个方面的程序员,看看别人在做什么项目,别人遇到了什么问题,是否能和你产生共鸣,是否帮你解决了困惑很久的一个问题,或者你也可以帮助那些初入门的学生,助人是很快乐的,对自己也是很有好处的。慢慢的你甚至可以和struts的官方聊上几句了,甚至可以指出他们软件的错误和弊端了,这个时候你的水准已经很高了。
恩,不错,我自己也觉得我比较高了,但是我还是很困惑,现在新的技术天天出来,人家现在都玩AJAX了,我还不会玩呢,我焦虑啊,我着急啊,怎么办呢,什么都学吧,一没时间,二也学不会呀。真难过。
没什么可难过的,人人都有自己的局限,每个人都只能掌握一点内容,妄想说撒撒都懂,那是刚毕业的学生的简历上才这么写的。你只需要成为一个领域的专家就够了,不需要样样精通。但是也别过了头,自持是公司的老员工,自持是非常熟悉了某个框架,就不肯进步了,吃老本也是不行的。当你有空的时候,当你不那么忙的时候,你也得出去看看,最近有什么新的动向,看看雅虎被合并了没,看看百度又推出了什么产品,看看现在是什么趋势,什么语言挺吃香,这些东西你不必专门研究,但是你得知道,你得了解时代的形式,你得知道现在大家不怎么用VB了,得知道JDK已经出了1.6了。这些工作不用你费劲心思的去研究,只要你空下来的时候,别去看小说,跑来看看IT的动态就行了。
当你了解到了别人都在用什么技术,大家都在开发什么软件,大多数的公司都在干什么,不管你的目标是软件架构师还是项目的总裁,你都具备了充分的知识和扎实的基础,你如果还能同时拥有了良好的人际关系,自己开个公司也未为不可了。
作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:https://jackxiang.com/post/1529/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!
最后编辑: jackxiang 编辑于2008-12-24 18:20
评论列表