程序员成长最快的环境
除开五大这种要什么有什么,进去做打字也能光耀门楣的不谈。如果是嫁到一个普通软件公司,怎样的环境能使你最快的成长呢?
首先基本的公司项目管理水平是必要的;
其次稳健而不保守的公司技术选型是必要的;
重要的,要有一个严苛的环境,那些古训说的都没错,越是严苛成长越快。
然后有些助力,让你在严寒中节省体力,过得好些的,就是最佳的练功环境了。
一,最复杂多变的业务规则,最难侍候的客户
大多数人碰上这几样东西都是愁眉苦脸,天天抱怨,其实应该把它视为入门锻炼的:
第一阶是努力用细密的编码迎合复杂的业务,以金牌的服务态度接受客户的善变和每样需求都要24小时有取的限时。充分打磨之后的眼耳口心,才是个合格的IT人。如果业务规则都清的像水,项目时时都是以我为主的,反是在做toy application,不算入了IT的门。
而如果被充分打磨之后,肯静下心来总结,设计架构如何适应改变,流程如何做到快速更新部署,并抽时间改进的,就是第二阶段的进步了。
一直做ERP,自问有足够复杂的业务(因为不熟悉业务,有些不复杂的也变复杂了)和麻烦的客户(不是大公司,麻烦的客户就会很充足),但觉得在第二阶段方面还是不很静得下心。
二,最严格的性能要求,准确率要求,错误恢复要求
最好是那种每天N万人访问,几亿条数据。还有准确性很严格,分分钟几十万上下,如果崩机又要迅速完全恢复状态的项目。
每天几万人访问的项目没做过,遗憾。
几千万条数据的项目倒是每天面对,优化学了一点,但没有充分利用严格的环境去追求改进,遗憾。
ERP的报表倒是经常会搞到几十万上下的差额,但一直重视不足,以后要以历练来对待之。
崩机恢复是最近的项目要求,更爽是这个项目澳国政府居然有一份规范,我说的助力就是指这些了,不用自己慢慢摸索而且经常摸错地方。
三,最底层的编码
不要老是高高在上搞ERP搞.com,最好能用到起码C一级的语言,可以和硬件打打交道,直接写IO口阿,中断阿,都是有就不要放过的锻炼。
没做过底层编码,只会纯软件的IT人的感觉是不完整的。
刚好公司最近的项目有要求,捧一本看看〈Linux Device Driver〉。
四,最高层的设计
设计,框架--多少技术人一听就眼红的字眼。但不是每个公司都搞很产品化的项目,或者在项目里自写框架重做轮子。所以,除了刚入行那段疯狂的日子,很高阶的设计其实我也没做多少,多数时间都是应用层的开发。
不过,因为有时候要除bug或者增强开源产品使其符合项目需求,或者有错了不明就里时直接读源码会更快找到错误。这样就接触到不少优秀开源项目的源码,像很好读的Spring。
而最近搞php的东西时,发现php早不一样了,其实应该算入python,ruby一类的动态OO语言,它的那些著名项目一样有着很好的MVC框架和数据层抽象,而且,和Java盛产框架型项目不同,php的项目多是熟透了的Web应用,细看之下学到不少东西。
一阵发呆打了这篇字,其实也是鞭策自己在现在的环境里更快成长。