又是一个岁末年初,想想自己已经工作十年了。每年年末单位都作述职,但没有连续的总结几年的工作变化、成长,工作中的谬误和改进也很少提及,毕竟述职是给领导看的多报喜少报忧。所以想在blog里对这十年的工作作一下总结,也能更好的规划将来。
   那么,就从刚毕业开始吧。
   05年我毕业,三本,专业的名称需要我专门解释下招聘的人才能理解。所读的学校和专业是高考时志愿没填好时服从分配给分配到的,当时家里也觉得我以后不会有什么大出息,有个大学上,能找个工作,将来给说个媳分儿。
   毕业了,该找工作了,我比较喜欢技术类的工作,想作个程序员,我上学时对计算机就很感兴趣,学校开设C语言的课很感兴趣,也认真学,考计算机二级时选了C语言并考了优秀(到现在证书我还保留着呢)。之后,我又学了C++。新千年初时计算机还挺贵的,得6000多块钱,那时家里正买房装修,没钱给我买电脑。家里有个亲戚有一台淘汰的旧电脑给我了,配置大概相当于486高一点,Win95的系统。我就用它练习写程序。在这台小电脑上装了Turbo C 、Borland C++这些,玩的不亦乐乎。大二那年,学线性代数时,还自己写了几个程序,计算行列式、矩阵变换什么的,也满有意思的。无忧无虑的大学生活就这样过去了,想想也够没心没肺的,竟不知搞个对象:)
   学习生活虽然很惬意,人也要吃喝呀,毕业之后找工作,我想作程序员,那就找吧,我毕业那年,毕业生那叫一个多呀,好多计算机专业的都找不到程序员的工作,何况是我这个非科班出身的,心仪的工作自然难找了。毕业半年的时间里工作基本是销售,客服,平面设计之类。这些工作大都不是很正规,没有保险当然更没有公积金。但这段时间我感觉过的还是很快乐的,毕竟上班挣钱了,虽然挣钱很少,早出晚归很不容易,但没有太多压力,大概是也觉得这些工作没有太大发展只是暂时性的。记得作销售时经常去开发区,下了长途车走在四大街上,感觉阳光暖暖的,天蓝蓝的,很美。当然,这段时间我一直在学习,像HTML了,VC++了,javascript了,asp了等等,总之很杂,没有一个目标,视野也较窄。
    真正作为一名程序员是在06年的4月分,那时刚从一家婚庆公司离职(在那作平面设计,总算上班有电脑用了),在招聘会上投了一家技术公司的简历,要做一名程序员。结果,我被录用了,而且在那里干了三年。这家公司之所以能够录用我,也是机缘巧合。在投完简历两周后,我接到了面试的电话,当时非常高兴,这是我接到的第一个技术岗位的面试通知。面试那天我早早就到了公司,面试官是一名中年男子(实际已经60多岁了,老人家爱保养,显年轻),他也是公司的老板。当时,问了我做过哪些程序设计相关的工作,有哪些技能。我一一做了回答,当时情绪很是饱满,也很认真。接下来,就是这位老板向我介绍公司的情况,展示公司的技术实力很强,员工很优秀。当中还有一位员工向他问问题,他简单的解答后还拍拍这位员工的肩说,这是公司的骨干。可从我面试后的一周开始上班知道辞职,都没有见过这位“骨干”。最后,老板让我等消息。面试结束,我带着期待的心情在家里等录用的电话。周日的时候,电话终于来了,我被录用了。
    之所以说录用我是机缘巧合,是因为:
    1>投简历的下一周公司参加一个很重要的行业展会(之后我在职的三年里每年公司都参加这个展会),整整一周都在忙着布展,收上来的简        历都没有来及打电话通知面试。展会后的一周才逐个通知,可是很多专业对口的已经找到工作了,所以通知了我来参加面试。
    2>我在面试时展现出的对技术工作的热情也吸引了公司老板,毕竟这位老板也是做技术出身,而且对技术很钻。
    3>公司的待遇福利等对IT人员是真没有吸引力,没有社保,没有公积金,一周上六天班。当时由于计算机和互联网正在中国蓬勃发展,技        术人员相对短缺,很多重点大学计算机专业的应届毕业生从事编程工作,年薪都在六位数,而且福利很好。
    4>公司当时只有一名软件人员,是老板之前的同事,当时在外企上班,在公司做兼职。周一到周五的工作时间都不能到公司,有些售后的        事需要软件人员很是麻烦,只能赶周六日,所以,老板招我过来,主要想让我做做售后,调试再做做小的软件改动,没指望我做软件开        发。当然,老板也希望再找个人能把软件的事挑起来,两个编程人员就不会产生一人独大了。
    5>公司的网站是找一家网络公司做的,也是一团糟,看我学过网页编辑,也想让我先把网页整整。
   不管怎么说,我还是去公司上班了。和我一起进入公司的还有三个人:一个大姐硕士生,姓吴,搞电气的(后来成了公司技术组的组长,在公司任职两年辞职,下面就叫她吴姐吧);一个小女孩,电气专业大四在读,还有半年毕业(两个月后就离职了);还有一个装配的师傅(一个月后就不来了)。第一天上班,有了自己的办公桌(原来的工作都是和别的同事共用一张桌子),分到了新电脑(旧电脑不够用了,就打开了个新的,让我好好保管,以后可能还要发货用,但这台方正牌的台式电脑,我一直用了三年直到从这家公司辞职),拉了网线。当然第一个任务,是修改公司乱哄哄的网站。
    年轻时的工作热情真是很高,当时并不是想向老板展示,只是想施展下自己所学的东西,积累工作经验。我找网络公司要了ftp权限,上传了自己制作的图片动画,有些网页也自己用javascript增加了些动态效果,还用asp加Access做了一个公司的BBS留言板。当时觉得自己学的东西,终于用上了,很开心。当然,公司的网站也规范多了,图片有了正常的比例,文字通过CSS有了统一的样式,还增加了留言板功能。老板也非常的满意,觉得招对了人,对我的能力也认可了不少。
    下一个任务是公司网站英文版的建设,主要工作是把公司网站上的公司简介,产品规格介绍等从中文翻译成英文。当时,我一个人,参考两本英文字典,一本是牛津高阶,一本是汉英大辞典,两周的时间,把公司的网站内容全部由中文翻译成英文,并排好版发布到了网站上。其中的内容有大量的产品介绍,不同规格,不同型号,各种专业术语,技术名词,我都一一的查找出了标准的英文词汇。
    接下来,公司有一台设备要出口印度,需要英文说明书,于是老板又安排我将一本30多页的产品说明书由中文翻译成中文。又是一周的时间,我把它翻译好了。这两项工作对我的英文提高起了很大的作用。我利用两本字典,按照中文的意思,揣摩最合适的词汇,使用不同的句式起到起承转合的作用,使枯燥的产品说明行文流畅,在网上寻找最标准的英文技术词汇,使英文说明更加准确。这一切的努力对我今后大量地阅读英文原版技术资料奠定了一个良好的英文基础。
    接下来,老板给了我一个任务。当时公司的图纸资料等电子文档非常混乱,文件经常不知道保存在个路径下,即便找到了也不知道是不是最新的,检查起来十分费事;老板希望我做一个文件管理软件,将这些资料统一的管理起来。实际上,这可是个大项目。可以用到文件流数据库技术提供解决方案,当然还会用到网络存储等。当时,我做了个最简单的方法,找一台专用的计算机做资料查询用,使用VB.net搭建了一个前端程序访问一个数据库,数据库里存储了包字段。有新的图纸就用U盘考到这台机器上,通过程序界面将文档存储到数据库的记录当中,还可以根据备档日期和关键字和文档类别方便的查到所需的文件。我做的虽然简单,也是麻雀虽小,五脏俱全。要考虑到软件界面的易用性,出现非法操作会怎么样,数据类型的是否能顺利转换,对文件路径的自动处理,文件类型的识别等,当时能够感受的到这不是一个实现单一功能的小程序,而是一个在现实应用环境下的小软件。我将我写的软件给老板演示了一遍,老板也非常满意,只是软件并没有在公司推广,因为管文档的是老板的闺女,她还是比较喜欢她的老办法,于是,公司的文档就一直保持着混乱的状态。
    之后,可能是老板对我的能力有了认可,我开始接触到了公司核心的产品软件了。那时,公司产品如果有软件问题需要进行售后的,都会让我跟着去。产品大都卖到天津周边,什么北辰了,西青了,武清了这些郊县的小工厂。一有售后的活,就是老板的姑爷,开着一辆夏利车,拉着一个管调试的老师傅(不同设备师傅不一样,人员是按设备型号分工的)和一个管销售的副总经理去厂家。如果售后中有软件需要修改,我也跟着去。一般到了厂家,客户都会要求修改个报表格式啦,说软件里有些小bug啦,我会在电脑上,打开源代码,按客户的要求去修改,有时会在设备的工控机上安装好VB,调试代码排错。随着对软件的不断理解和经验的积累,问题往往会迎刃而解。当时,随行的调试人员和管售后的经理看到我坐在电脑前,嘁哩喀喳的修改了几行代码,编译后问题就解决了,都赞叹不已(她们基本上是四五十岁的下岗女工,也和老板有点关系就都过来打工了,基本上没怎么接触过电脑)。当时,我年轻也勤快,好多调试的活我都帮着搭把手,帮着师傅拿工具,一起搭重物,所以在同事中的人缘也不错,几个二把手的领导也很认可我的工作。就这样,我通过了公司三个月的试用期,领导找我谈了话,并涨了工资,成为公司的正式员工。但并没有劳动合同,事实上,公司与所有的用工人员都不签订劳动合同,以此逃避为员工缴纳保险和公积金的费用,直到我在这家公司工作了两年后,公司才和每位员工签订劳动合同并缴纳最低的保险金。当时,我的目标就只是学习,所以对这种不合法的现象也没有在意。事实上,在这家公司的工作仅仅只能称作是work,它并不是一个occupation,甚至都不能称作a job。
    终于等到了学习的机会,老板把一个软件项目交给我来做(我来公司之前,老板计划让那个兼职的人来做的)。做一个软件系统,驱动PCI数据采集卡,采集模拟信号,不但要有实时采集,还要有DMA高速采样。然后进行数据处理,分析,并生成报表。系统还要有虚拟示波器功能和频谱分析仪功能。这是我的第一个实际项目,现在想想做开发的过程还记忆犹新,从我接手这个项目,开始学习相关的产品电气知识,做需求分析,搭建软件架构到实际编码测试用了大半年的时间,其中有数不清的加班加点。到转年的八月份,第一台部署这个新软件的产品交付到客户手中。之后,这个软件在我任职的期间给公司带来了几十万的利润。这是后话,详细的开发过程,我想在后面的第二遍总结中总结下,。
    接下来的两个月,公司开始着手扩大规模:招了十几大学毕业生,电气、机械软件方面都招了人。加上之前提到的和我一起进入公司的吴姐还有我,公司组建了技术组,吴姐任技术组的组长,任命我为技术组的副组长,主管公司的软件工作。在新招的人中有一个学计算机专业女孩,之前也有两个月的编程工作经验,公司的一个同事也介绍了她的一个同学过来做软件,于是,她们的工作就交由我来负责。公司在红桥区租了一个面积较大的办公地点,技术组组建后就在那边办公。于是,我就正式开始进入程序员的职业了,一开始,还带了个小团队。