如花美眷,也敌不过似水流年
转眼之间,毕业已经一年多了。
刚毕业的时候,似乎是毫不犹豫地,选择了坐两天两夜的绿皮火车到了乌鲁木齐。虽然在之前的三年已经去过三次,又恰逢毕业这种人生米字路口,但当时的念头,就是千万个借口,也抵不过一个想见她的理由。
上火车的前两天回了老家一趟,见到了日益老迈的外公外婆,还有各种称呼的各种亲戚。外公年事已高,视力不佳,习惯在早上揣一包零钱,出门去找人打麻将,输完了回家忍受外婆的唠叨。外婆一生辛苦,十分疼我,每次去的时候,总给我做最好吃的。每次走的时候,总是以我没有零钱坐车为借口,硬塞给我一百元的大钞。如果一年回去一次,这辈子不知道还能见他们多少次。其余的各路亲戚,有些打听我在哪儿工作,月薪多少,我说我是穷人中的穷人中的穷人。有些问我什么时候把女朋友带回家给他们看看。对另一半的事我一般都是:呵呵。
从成都出发的那个下午,突然天降暴雨,整个城市也一如既往的堵了起来。我一个人拖着大包小包,头上顶着结实的雨点,心里记挂着火车发车的时间,在一片泥泞中匆匆赶往火车站。火车开车的时间是晚上7点10分,我上车的时间是7点08分。
已不想再回忆此间的种种,回忆除了避免重蹈覆辙之外没有任何意义。现在想起来,这几年的执着与奔波,换回的只是需要花很长时间去淡忘的伤痛。曾经的我,始终虔诚的相信时光,让该来的来,该散的散,而今会羞于向朋友提及这几年的过往。那些自以为无比宝贵的旧人旧事,都在残酷的日复一日中涣散蒸发。
正如王小波所言,似水流年才是一个人的一切,其余的全是片刻的欢娱与不幸。所幸的是在我24岁的前夕,更加深刻的明白了这个道理。
还是说说与专业技术相关的吧。大学的专业是计算机科学与技术。这门课程的好处是什么都能学一点,坏处是什么都学不会。C,Java,C++,数据结构,高等数学,操作系统,离散数学,关系数据库,ASP.NET,数字电路,汇编语言,C#,JavaScript,CSS/Html,人机交互,电子电工...还有工程制图,马列主义等乱七八糟。在技术方面,这真是一条风骚的路。
有一段时间,沉迷于Java,当时用的是老师介绍的一款叫JCreator的编辑器。授课的老师大概觉得教会我们配置Eclipse后,就只剩下让我们学会写HelloWorld的课时。后来我还折腾出了一个类似QQ严重缩水版的聊天程序,但在实验室屁颠屁颠地准备给老师演示的时候,程序在那台CRT上面已经运行不起来了,老师也没有找到原因。
又有很长一段时间,又痴迷于Photoshop。看各种教学视频,熟悉各种快捷键,了解各种技巧。印象中最深的是李涛老师的教学视频,对PS爱好者非常有帮助。那个时候Photoshop可能是自己电脑上唯一会打开一整天的软件;那个时候最爱上的网站就是站酷,好像总能在上面找到你需要的东西。如今时过境迁,早已倒退至处理一般图片的层面,偶尔在猫扑上娱乐大众。其实,并非懒惰使然,而是驱动的已不再是纯粹的激情。
再后来就走上了微软.NET的路,也就是我现在正在走的路。放弃研究已久的Java似乎也没有什么特别的考虑。好像当时有这种想法,搞软件开发,就得有东西赤裸裸的呈现在人的眼前,比如网站。恰好我当时的Java水平还停留在J2SE,而学校又恰好开了ASP.NET这门课。于是,不懂JavaScript,不懂C#,甚至连HTML都有点迷糊的我,每天早上7点开始,在电脑上手动敲写各种可以自动生成的控件代码,各种可以自动生成的事件处理代码,各种可以自动生成的数据库操作代码。我又找时间重新学习了HTML/CSS方面的知识,起因是当时一个朋友恰好买了一本精通DIV+CSS。带有“精通”、“XX天”这种字眼的书基本上没有多少含金量,但有一本C#带有“精通”后缀的书却对我有莫大助益。在这本如今已记不清名字的入门书的最后,通俗易懂地讲到了三层架构。那个时候我还在网上接受过一个观点,就是Javascript不用懂的太多,能改就行。现在想起来这纯属扯蛋。当然,这都是毕业后接触到Ajax,jQuery,ExtJs之后才有的醒悟-Javascript绝对是一门优秀的和应该被人尊重的语言。那个时候,我电脑上存放着各种各样的电子书,各种各样从51aspx上下载的源代码,各种各样的JS代码片段,还有各种各样的网站开发教学视频。也就在那个时候,习惯登录CSDN,Cnblogs,OSChina等技术网站。那个时候在宿舍里,如果学习累了,就起来撑着床沿做30个俯卧撑,在阳台上四处观望一阵,然后继续坐在电脑前面。期间,花了大概一个月左右的时间做出了一个论坛系统,当同学不小心用IE6打开后,我整个人瞬间就思密达了!
从今以后,慢慢地我就认为,IE浏览器的唯一用处,就是可以用它来下载其它的浏览器,比如Chrome,或者Firefox。
毕业前夕的那段时间,我有幸结识了一位做.NET培训方面的老师。这位老师虽然年入三十,但仍精力充沛,干劲十足,岁月在他身上没有留下任何迟钝的痕迹。在互联网高速发展的今天,他在各种转瞬即逝的机会面前摩拳擦掌。但满眼的机会抓不住,就会有不得其门而入的感觉。后来,我和另外一个同学离开学校,加入了他的团队,三个人开发一个网站项目。由于什么都想做到,导致什么都没有做好,整个项目的开发周期也延长了不少,跌跌撞撞上线后才发现呈现在眼前的东西根本不是最初规划的产品。当然,这也和开发人员的水平有很大的关系。一个典型的体现,就是不能快速准确地实现功能需求。在项目技术方面,采用了MongoDB做为后台存储支撑,抛弃了传统数据库驱动的开发方式,节省了很多开发时间。Linq化的数据操作手段方便快捷,同时并没有牺牲响应性能。但在项目后期,也逐渐出现了如数据关联,数据文档过多等问题。期间,我也参与了大量的前台界面的开发,对网站的兼容和性能要求也超过了以往任何时候。经常性的工作就是开着YSlow,HTTPWatch,分析着各种曲线和数据。由于在CSS代码的组织和复用上欠缺经验,导致项目成型后CSS结构混乱,复用率不高。后来,老师还安排我研究与DiscuzNT论坛的集成。我承认在这件事情上开了小差,因为除了研究与整合相关的模板技术,单点登录之外,期间我还花了大量时间研究了它的缓存实现,插件技术,多数据库支持,URL重写,页面静态化等等,对里面用到的各种设计模式也比较关注-虽然对DesignPattern比较懵懂。在我的学习历程中,研究诸如DiscuzNT,PetShop,DTCMS,等开源项目让我得到了很大的提高。现在回想起来,真的很感激当时在一起奋战的那位老师和同学。从氛围和感情上来讲,我们绝对是一个优秀的团队。惟愿你们工作顺利。
毕业之后的乌鲁木齐之行,让我又短时间偏离了Microsoft之路。在那座城市面试的第一家公司位于市中心,但给我开出的月薪基本上只够在市中心的餐馆里吃几顿饭。面试的第二家公司是一家国内知名的培训机构。职位是网站制作和维护,日常工作也就是用PS修理图片,更新网站内容等。面试我的是一个维族妇女,但能够说一口流利的普通话,见面就直说我长得像以前公司的一个同事。面试结束之后,虽然各方面都比较满意,但事后一根筋的认为不是.NET方面的开发工作,就打电话婉拒了。再后来不久,又去面试了一家,是与当地国家电网合作的软件公司。由于到乌鲁木齐已经有一段时间,情感上不好意思再找不到工作,就进入了这家公司,开始了外派国家电网的经历。
虽然事先被告知公司的主要技术方向是.NET,但其实我已意识到,与国家电网这类机器合作,一般拿出手的都是Linux,Java之类。那个时候的我已不想再奔波。外面的太阳无比厉害,把人像羊肉串一样的烤;西北的戈壁滩外IT企业又寥寥可数。于是便不再纠结于这些平台技术。也就是在这段时间,我接触了公司开发的医保系统,里面有未经授权的FusionCharts,有未经授权的ExtJS,一群国家公务员用的不亦乐乎。同时还接触了PHP,MySql,Apache。以及它的面向对象,Smarty模板,ThinkPHP框架。个人感觉在网站开发方面,LAMP比ASP.NET灵活强大了很多。但印象中PHP对SqlServer支持不够好,PHP/Apache的配置也会挡住大批的初学者。其实直到现在我也没有搞清楚当初那家公司与国家电网的关系,像甲方乙方的合作关系,又像上级和下级的谄媚关系。由于公司老板和国家电网客户服务部的负责人关系良好,就把我和公司另外几个年轻人安排在服务部的一间大的办公室。除了不多的开发工作之外,有投诉电话来了你得帮着接,有布置会场的事你得跟着跑,有电脑网络问题你得帮着看,有各种领导训话你得顺着听,有加班加点的事你得跟着干。在那家公司的最后一个月,我已完全脱离了软件开发的工作,转而为国家电网安装对第三方开发人员进行考勤管理的指纹打卡机。这些第三方机构分布于乌鲁木齐的各个地方。同时还需要对接近二十台的指纹机进行联网管理,对数百人进行指纹采集。第一次去采集指纹的时候人不在,还要跑第二次,第二次不在,还要跑第三次。很多人一按指纹就紧张,潜意识觉得这是在收集他们的犯罪证据,你还得哄着让他们按的时候手指不要抖;还有一些人觉得这玩意破坏了他们晚点上班,早点下班的计划,故意乱按,你得做出理解他们难处的样子。在国庆即将来临的时候,在指纹机项目终于完工的时候,我辞职回到了成都。这是我这辈子做过的最让人悔恨的决定,而我的理由竟然是,乌鲁木齐的冬天太冷,零下几十度的寒冬,人着不住。
回成都之后休息了一段时间,又开始了找工作的历程。几经波折,来到了现在所在的这家公司。从事的技术方向又回到了.NET。公司的主营业务是IDC网管系统,这也让我涉及到Netflow等网络协议和一些网络分析工作。由于公司规模很小,严重缺少技术开发人员,老板又不停的接各种各样的项目。所以在这段时间,有时我是Javascript开发人员,有时我会编写各种jQuery插件,有时我在调整着界面上的各种兼容,有时我在用ActionScript写着Flex,有时我在手机上测试着过时的Wap,有时我在用C#写着各种业务逻辑,有时我在修改着各种ASPBug。也就是在这段时间,我深刻的感受到了Javascript的强大和灵活,jQuery的方便快捷;也就是在这段时间,我在Catwindows框架的基础上做出了一个Flex的桌面软件系统,后台采用了ASP.NET+MongoDB,运行速度和视觉效果都感觉不错;也就是在这段时间,我意识到了自己在.NET方面知识的欠缺,重新将CLR via C#看了两遍,并在工作中加以实践和体会;也就是在这段时间,我开始有意识的关注SRP,OCP,LSP,DIP等等,对各种设计模式加以理解和体会。也就是在这段时间,我学会了让该来的来,该去的去,学会了向现实低头--舒服是留给死人的。
前段时间看到一句话,说今日留的泪的汗,就是当年选专业时脑子进的水。现在想起来,那年选择计算机专业也没有什么特别的想法,纯粹是高中的时候喜欢玩CS。不管初衷是多么的幼稚,现在已经没有了回头路,人长大就得为当初的幼稚和冲动负责---如果可以选择,我也不愿生活在此时此地。功法千万,大道一条,祝自己,也祝大伙早日修成正果!
最后,赠诗一首:
北岛 一切
一切都是命运
一切都是烟云
一切都是没有结局的开始
一切都是稍纵即逝的追寻
一切欢乐都没有微笑
一切苦难都没有赆痕
一切语言都是重复
一切交往都是初逢
一切爱情都在心里
一切往事都在梦中
一切希望都带着注释
一切信仰都带着呻吟
一切暴发都有片断的宁静
一切死亡都有冗长的回声