我这8年的编程生活-回顾篇

来源:互联网 发布:网络电视看翡翠台 编辑:程序博客网 时间:2024/06/15 07:50

        转眼间,我已经在软件开发道路上走过了8个年头,回想起这8年的软件生涯,我对自己选择的这条道路一点都不后悔。因为我喜欢这份工作,对软件开发充满无比的激情,有人说软件开发做到30岁后,如果还在写代码就是很失败,我觉得说这话的人其实根本没有进入到软件开发的真正世界,如果仅仅还是停留在if_else 这种业务逻辑代码上的话,我承认开发一辈子这样的代码确实很失败,说白了纯粹是一个代码工而以。所以,要作为一个真正的程序员不是每个人能做得到的,也不是这么容易能做得到的。我想我会一直朝着这个方向一直努力下去的。。。

        在当年高考时,由于种种原因,我考入了一个三流学校,连三本都没有挤上,那时报了一个电子商务专业,其实也不知道这是干什么,只是听人说这个专业好像以后肯定吃香的,不过现在确实是主流行业,只是自己不适合而以。大学毕业后,也不知道自己能干什么,一开始跟着同班同学去了一家网络公司做电话销售,记得好像是做竞价排名业务的,想想自己确实不适合做这个,几次电话打出去,没有人理你,就觉得心灰意冷了。后来,自己断然地离开了那家公司,孤身一人回到了自己的城市—杭州。在一次偶来的机会,通过亲戚的介绍,来到了一家有一位大学教授创建的小公司进行软件开发实习。那时,我都不知道程序设计语言是什么东西,更不清楚机器代码、汇编语言、高级语言之间的区别,对计算机体系结构也是一无所知,就是这样一个一问三不知的我开始了软件之旅。由于第一家公司的办公场所就是在大学里面,所以对于当时的我,确实是一个好的学习环境,因为大学里有图书馆,每到晚上时,我就泡在图书馆中,拼命的看计算机图书,来补充自己的计算机知识,也没有一个老师教我,都是自己慢慢领会,慢慢踹莫,后来渐渐发现自己很喜欢编程,也觉得很有意思,最重要的是自己适合这个工作。由于工作关系,我第一次接触的是delphi语言,虽然现在不是主流语言,甚至慢慢地已经被淡化了,但是我还是要感谢这门语言,是它让我了解了什么是编程。其实语言之间是相通的,关键是要理解语言的本质,编译系统对我们来说到底隐藏了些什么。这份工作主要是涉及到机械业行业,做的是机械控制系统,我主要负责开发是的上位机应用程序,这是一个小型的管理程序,用的也是access文件式数据库。 其中里面主要是包含了与下位机通信的技术点, 关于机械行业计算特性知识点,以及采样数据曲线图展示技术点,最终数据结果打印报表技术点。这些技术点对于我一个新手来说足以进行入门级实战了,我记得当时在与下位机进行通信时,关于协议的制定,以及位处理研究就让我兴奋地好几个晚上没有睡觉。而且对于数据曲线图展示,也让我锻炼了一把关于windows gdi对象的处理。通过这个程序的开发,我慢慢地深入到了delphi编程语言中去,从开始连事件都不清楚怎么回事,到后来理解VCL框架的封装机制,这让我有了一些成就感。但后来发现,在这里进行入门级开发还是可以的,因为涉及到的面太窄,感觉自己就是一个井底之蛙,不知道外面的技术有哪些。其实在那时我已经偏向于C++了,因为我感觉C++在做框架性、平台性系统比delphi强大的多,delphi在做mis系统客户端这一块确实是强项,方便、高效,而且在做这些系统时多大数涉及到都是业务代码,基本没有高深的算法型代码。不过,在这里我还是要感谢第一家公司,它让我踏上了适合自己的软件开发之路,让我找到了自己的发展方向。

   在第一家单位工作了两年多,我依然选择了离开,开始重新考虑规划我的软件之路。在那段时间,我疯狂的投简历,C++、delphi方面的工作都投,也有好几家公司找我去面试。由于当时我第一选择是C++工作,在面试的几家单位中,都说我以前做delphi,没有C++经验,所以都婉然拒绝了。这让我感到了有些失落,也有些慌张了,难道找一个工作就这么难吗?后来,有一家建筑公司的HR找上了我,是delphi开发岗位的,我在不知所措的情况下去了,其实那时我是不想在做delphi开发了。不过,一到他们那边的单位,发现办公环境还可以,这又吸引上了我,感觉这家公司不错,蛮正规的。(由于之前那家单位是一个大学老师创办的,也就十几个人在一个小区房里及大学实验室中来回办公的,没有让我感觉到一种公司氛围)。他们一个开发部的经理面试了我,问了一些delphi方面的技术,以及以前做过软件的一个总体介绍。在面试的时候,我感觉很顺利,大家也聊的挺好,不过那时他们还是抓住我是一个三流大学的大专生,感觉还是不太理想,说工资待遇方面不会幅度很大。我那时,也觉得这家公司不错,说待遇方面是其次,只要这里能让我有锻炼的机会,能帮助我的人生发展就行。后来,他们让我回去等通知,说真的,那时真的很期待他们的录取电话,因为我很迫想去一家真正的公司去上班。没过几天他们就打电话给我了,说面试通过了,可以在某某日来报到上班了,那时的我心情无比的激动啊,开心的不得了。到了那家公司后,交给我的第一个任务是维护资料软件,其实那时正好一个人要离职了,公司聘了我顶上去的。这个软件与我第一家公司开发的软件差不多,都是一个小型管理程序,而且我看了源代码之后,感觉设计结构不怎么样,都是一堆堆功能代码,杂乱五章。那时的感觉非常糟糕,本身这个软件就是一个人在维护的,之前那个员工跳出了这个火坑,我又跳了进去。做了一段时间后,就是让我学到了一些第三方控件的知识,之前那个单位都是用delphi标准控件的,界面美化度不高。慢慢地,我感觉自己在吃老本了,这样下去肯定不行,以后出去找工作更没有实力了。大概维护了一年半多一点,我向公司申请了重构这个软件,说以前怎么怎么的乱,而且不容易扩展。公司经过一番讨论后,决定推倒重来,并成立了一个项目三组,并聘用我为项目经理,带领小组开发资料二代。接到这一命令后,又欣喜又忐忑,欣喜的是终于可以在这里锻炼一把了,不管技术上能有所突破多少,但起码在软件设计上,面向对象思想上磨练了一把,忐忑的是我能不能带好这个团队,将这个艰巨的任务完成。经过半年多的时间,我们5个人的团队(三个开发人员、一个需求人员、一个测试人员)终于将这个二代开发完成,给公司一个满意地交代。这里面包含了我全部的软件设计结构,不管到底设计的怎么样,最终开发完成,自己感觉还是蛮高兴的。后来又开发了一个小型的资料图片管理程序以及标书软件、平面图、网络计划归入到我们小组进行维护。在后续的两年时间里,我主要管理了5款软件的完善,一开始感觉当上项目经理,能在团队管理上好好锻炼一下,事实上也是如此,起初是锻炼了我的项目把控能力,任务分配、人员协调,人员沟通等能力,但后来发现像我们这种小团队,其实就技术管理也就那么一回事,做技术的大家都是安分守己,特别像应届生的,巴不得工作的内容多一点,好锻炼锻炼。所以我觉得像管理技术团队,要知道对方的优点及擅长点,放到合适的岗位上,并合理分配任务,及时进行沟通,时时把控住项目的进展就ok了。这在两年时间里,我主要写了一些核心代码,像其他的都是项目组开发人员完成,我越来越感觉自己像在混日子,在这期间两位开发人员也相继离职,招来了新同事。所以我越来越觉得自己不能这样下去了,还是希望自己能做一些深层次的开发,当然这期间我也研究了何为windows程序,及学习了VC来开发一些小程序,如果想深入理解windows程序,VC开发工具是最佳选择,不过难度也相当高,说实话,到现在为止我还是不能用VC开发一个像样的windows程序。还有一个原因,让我在这家公司再待了两年,是因为那时正在我自己的人生大事努力着,刚好那时谈了个对象,自己也蛮中意的,所以想想还是先稳定下,把自己的人生大事解决了再说,所以这样一拖就拖了两年。后来,她(就是现在我的老婆)也蛮支持我换工作的,这样更下定决心我换工作了。

     在第二家公司工作了四年多后,我又再一次踏上找工作的征途, 那时我下定决心要转入到C++开发了,delphi找了几家都是练练面试经验的,不过只有一家(恒生公司)如果能成功的话,我还是想去的。在这找工作期间,我总共面试了好几家公司,比第一次换工作要好很多,也有对我满意的,也有受到打击的,我印象比较深的一次面试为一家网络公司,我当时应聘的是C++开发工作,当时那个面试官就当场拒绝了我,说你上家公司学到的行业业务对我们来说一点用处都没有,我们更需要的有技术功底的C++程序员,我那时觉得自己很失败,自己确实技术不咋地,本身想能有一个锻炼的机会,我一定能好好干,可惜人家一点机会都不给你。后来,恒生给我打来了电话,说叫我去面试,其中我已经拿到了一个本然想去的offer,这是一家外包公司,主要外包到华为做开发,用的是C++语言。但是心里上总是没有归宿感,总感觉是寄篱于人下,不踏实。所以我二话没说,我就去面试了,一进恒生公司,就感觉有点像大公司气场,更坚定要争取这次机会,能进来的话也挺好。总的来说,面试下来还算顺利,那边对我的技术开发没有疑议,只是说我金融行业没有经验一些问题而以。每过几天,我还是拿到了这家公司的offer,这让我有点犹豫不绝了,外包去华为做C++呢,还是去恒生做delphi呢,说真的我那时还是偏向于去恒生的,想想还是正式员工更稳定性,更好一些。所以,我断然地推掉了那家公司的offer(现在想想那时那个决定到底有没有错),去了恒生公司。我是进入恒生公司的证券事业部,一进去面临的就是出差现象,其实我不怕出差,只要能锻炼在哪都一样。我被安排在了一个文交所项目组中,这个组说白了就是根据恒生的交易系统发展出衍生产品,所以还是要首先熟悉他们之前的交易系统,再添油加醋地开发出新产品。慢慢地,我越来越发现,在事业部做开发,业务性更重要,反而技术型工作一点都没有,客户端用delphi开发也是在已经设计好的框架下照葫芦画瓢的开发,根本没有什么面向对象思想,纯粹都是一些管理界面,进行增、删、改操作。而后台开发,更是用了恒生开发工具进行伪代码开发,都是一些业务逻辑代码。在这里,唯一吸引我的是恒生中间件平台,这个确实一个不错的框架平台,但对我们这些在这个平台上做二次开发的,都是透明的,根本不用去关心。所以,一开始我就觉得在这里搞技术就是死路一条,只能抛开技术,专心研究业务才有希望。但我又舍不得放下之前学到的一些技术经验,更重要的我的兴趣点还是在技术开发上,而不是业务需求分析上。虽然,我进入了恒生公司,但我还是感觉不踏实,不称心,不过我还是支持做了下来。一个偶然地机会,项目经理让我负责了撮合系统的开发与维护。后来,撮合系统要做成一个撮合平台,我也顺理成章地成了主力开发人员,这次我抓住了机会,向项目经理申请了用C++来做开发,他也同意了,这是我也感谢他的,是他让我锻炼了一把C++开发过程,已积累了一些C++经验。虽然,我负责了这个项目的开发,但总体来说很小,C++学到的东西也不多,而且通信这一块都是用公司现成的来做的。所以,感觉自己不能在这里耗时间下去了,要么放弃技术好好专研业务,要么赶紧走人,我想这次我会好好地静下心来,想想我以后的路该怎么走。

  至此,我的8年编程生活讲完,在这其中我在三家单位工作过,目前还是就职于恒生公司,但是,我想恒生公司不是我的最后一站,我还是再朝我的理想路程上奔走着。。。