做软件的这些年

2013 年 3 月 8 日4710

[分享] 做软件的这些年

本帖最后由 星辰下大陆 于 2013-2-25 18:03 编辑

9 L! j% t# q, V% S9 d/ t$ P9 Q) A0 R0 n3 p# q# H

上学时,学的就是软件工程,自认学得还不错,那时学得最好的是C++和数据结构,每天要完成一堆老师留的各式各样的C++题目、算法题目,甚至是系统结构也要用c++来编程,期末还要完成一堆C++,软件工程,数据库的大作业、小作业。

2 c. I) a1 v4 t- L* R3 V8 OV( ?' ?4 Q, E+ T9 Z2 [" B! v

那时做起来最有成就感的就是完成一个周围很多人还没完成的算法题目,然后很得意的宣称,我编出来了^_^。9 e7 Z$ P& ?9 A8 sU- o; P

完成得最久的就是软件工程的大作业:用J2EE做的一个图书管理系统,为了好看,还从网上下载了各种模板及javascript,然后一个个去试,一个同学说你们同组的和同学显摆你们做的大作业,于是觉得美得冒泡…

# j; Q# o* ]) r- M- k1 Y( I

( G" B' t5 B9 V; B1 cV( _# X 完成的最快的是数据库的大作业,2天时间分析需求,画完E-R图,写好建数据、建表、建索引、建视图、存储过程、触发器的语句,完成文档,然后又用一天时间用J2EE把程序编好,那叫一个得意^_^

+ E8 ?: TQ) P/ G: ]$ x" L$ s# H* ]) d+ j6 H2 `; @: h8 R

实习时,一开始进入了一家国内最早做PLM的公司,一个博士带我和另外一个同学,做了一些简单的.net培训,然后我们两个人共同完成一个asp.net的小程序,我就被拉到PLM项目组做开发去了,同学则在几个项目中做测试。那时还有种初生牛犊不怕虎的气势,凡事都喜欢争辩,开始博士做概要和详细设计,然后带着我做开发,那时我总喜欢问些为什么要这么做?这样不是也很好吗?这里不应该这样吧,等等诸如此类的问题,然后和博士争个面红耳赤,可能是因为博士脾气太好了,总是和他争辩,虽然大多时候他都是对的,但他仍然会很耐心的和我解释,直到我明白这样确实更好。博士也很大度,一次争论中,他发现他的设计确实有问题,很坦白的承认,并且找项目经理说明问题,重新做设计,也是从那时开始,他做概要设计,而详细设计和coding都由我来做了,他是我人生中第一个职业导师,也是迄今为止,我碰到的最出色的职业导师,在他的带领下,我完成了很多复杂的设计和coding,那种成就感至今让人无法忘怀。而那之后的工作中,我却再没有和人那般争辩过。也许是再也没有可以争辩的人,因为在大多工作中,领导就是领导,不容亵渎,之后的工作中,我最常做的就是沉默。

7 |% z. ~0 q9 S4 G2 `

! r# w+ O/ x3 w; F 毕业后,我顺利的进入了一家公司,成为一个程序员,面试的C++,结果进去后阴错阳差的做了JAVA,然后就一直做JAVA,做网络应用做到现在。

$ f( X9 P& R* U+ w0 a+ T9 p! m3 Z1 S' v6 w; G

毕业后的第一个项目,是给日本知名汽车公司,做ERP系统,那时我们是用瀑布模型迭代做开发,每期都是从需求分析开始做起,然后概要设计,客户确认,详细设计,测试用例,coding,单体测试,结合测试,发布,然后又是从需求分析开始的一个轮回,每一期都要历经几个月,1期甚至用了几年的时间才发布。6 |$ Y' J# {, }8 n

我进入时,刚刚开始1.5期。我的第一个任务是做一个需求变更的详细设计和coding,很简单,完成后以为不会有什么问题,结果leader review后,要我修改,于是直接跑去问改什么,leader说“变更是很简单,但是你在文档中要写得更详细,让开发看了,立刻就知道该在什么地方改什么,还要标明为什么改,谁改的,什么时候改的,代码中也要标明这些”,我问为什么加这些,leader回说“方便”,那时并不清楚这两个字到底有什么意义,想不通哪里方便,然而之后的三年,让我明白了当时leader为什么说“方便”。6 l. ]( V0 [3 h6 M( K* r9 y

" b7 Q+ F) Y: f7 ?

可能基于我做事认真,能力还可以,一个月后leader扔给我一页日文纸,告诉我写个需求,日文不太懂,连猜带懵搞懂个大概,然后直接拿了纸跑去找leader确认需求,leader直接给我口述了一堆文档上提及和没有提及的需求,我就开始了第一次用英文写需求分析的经历,那时国内会日文的还没几个人,我们都写英文设计书来和日本人确认,之后和leader及日本人确认需求分析,改了一点儿后开始做概要设计,这时日本人要求我们要用VBA来做这个模块,它脱离J2EE的ERP系统,单独做,而我从来没听说过VBA,更别说用了,于是开始边写设计书,边下载文件,学习VBA,遇到问题到处搜索,到论坛提问等等。完成详细设计时,基本的功能我都已经试出来了,leader看到后说,VBA现在只有你懂,所以设计、coding,单体测试,结合测试和相关的服务器都由你做吧,于是通过这个模块,我把瀑布模型的所有流程都走了一遍,最后连使用手册,及linux和ftp服务器搭建手册都是我来完成的。发布后,客户做接收测试,没有测出bug,leader骄傲的对人说,看,我们做到了0bug。' c* R# F" y! n

' A1 i+ ]- u' \# y- a& M* m1 H; l 那之后我逐渐接手越来越多的工作,成为了组里的主程序员,只要发布就要加班,有时发布当天对应紧急任务,直接熬个通宵,对应完成,客户确认没问题后,我才能离开。一年多后,leader要离职,我就成为了接替leader工作的那个人,那时leader很累,来了需求要确定可行性,要review所有人的设计和开发等成果,确保所有人的设计、开发都是正确的,因为是属于在原有系统上进行二次开发,所以每个设计都要保证不能影响到原系统,要考虑并发,考虑效率等等。那时发布后如果出了bug,我们要给bug分等级,系统中断、系统奔溃等都属于一级的bug,是绝对不允许出现的,幸好我在的3年中,我们从没出过这种bug,每次出了bug,我们都需要向客户说明,这个bug是哪个人、哪个步骤造成的,要如何避免等等,所以我们都尽量减少bug,虽然无法做到杜绝bug,也因此我们花大量的时间在设计和测试上。

' C1 k( T+ r' a- _% [2 Z8 s$ K0 A0 c# _4 b

那时候,经常加班,也有精力加班,然而工作几年之后,就再没有那么好的体力去常加班了,现在找工作都先看看,这家公司会不会需要经常加班。# {! \* D# ?4 |) a4 G& J

3 _' A6 D+ z3 E- S7 J% Z4 | 离开那里后,我到了上海,上海的空气比北京要好很多,刚来时,正是雨季,每天下雨淅淅沥沥,却不像北京下雨时,那么冷。在雨中各处奔走,面试,偶然去了一家培训机构要我当讲师,姐姐说,女生当个讲师也不错,于是就成了一个软件讲师。. C5 M. k. p* z

$ v/ q3 t6 c# Y* W( _

刚进时,要我当三期讲师,主要教授J2EE,ORACLE等,并带软件工厂,但是那时三期还没开班,我就先带了C语言,学员大多没有计算机基础,有的人甚至开机都不会,为了让他们能学明白,我每天晚上回去都会弄课件,弄很多实例,备课,然后每个部分都会在课堂上直接敲代码演示给他们看,以前最常做的是拷贝粘贴,但是为了能让学生明白我在讲什么,我每次都是现场键盘敲代码,不再拷贝粘贴。之后三期开课了,我转而去带三期,一期的学生升三期时,会去问我教哪个班,希望能在我的课堂上课。那时每个月,校长都会开会,讲学校,讲哪个销售做的好,哪个做的最差,连续三次最差的人会被开除,一次开会,校长说要颁发最佳讲师荣誉,他说,对于这个讲师,他并不了解,但是学生对他的评价很高。。。。。。然后,我就听到了自己的名字,拿着奖状的那一刻,真的是让人激动又振奋,那之后,我成了学校的金牌讲师,及三期的负责人,任命书一直留在了学校,也许现在还在,呵呵。三期负责人要培训三期讲师,要培训学生,要组织讲座,要带软件工厂等等,晚上回家还要准备课件、备课,每天忙得前脚打后脚,有一点点时间都想要睡觉,严重的睡眠不足,而学校为了节省经费,也不希望雇佣更多的人。

2 U9 _0 }W& P) q

3 a8 D' vR% e- m/ x 一年多后,为了身体健康,我终于提出了离职,离开讲台,离开我所热爱的学生们。

% _3 M( A1 v, {( {0 e; F

1 h: g' ?) J% ]( H5 F& s 休息一阵子后,开始重新找工作,刚好赶上经济不景气,1、2个月都没什么回音,后来一个猎头帮我介绍了一家外企,但是他说因为我JAVA工作不满6年,只能推荐我低一级的职位,面试后,上岗直到如今。

, k5 c1 A8 u+ A7 \( Z, Z5 A/ g5 t+ n0 g

在这里,我不再是以前那个项目中的重要人物,这里最重要的是语言,而不是技术,可惜我的语言距离优秀还有一大截。在这里我只是个普通的码农,但是在这里我不再需要经常加班,在这里,我碰到了我的老公。

% ]$ b2 C- [* d]5 w4 Z

; Q5 k6 p8 r0 U' b+ Y: ^5 @5 Q 也许有一天我还是会离开,毕竟每个人都希望能一展自己所长,能为人所看重,但是我希望当我离开时,我所到的地方,能是个长期发展的地方,或者我已经找到了更适合自己的路。

4 \& C8 j! r. r( [8 d. A) q! g+ H" R3 M% }- e$ L- s" Zz/ j

一个老码农,能做的仍然是学习学习,学习所有我们需要的:语言能力,沟通能力,技术能力等等8 Q/ A: r4 s8 _9 w1 s

7 @0 [# i7 T- j. }4 C

有时回顾一下我们所走过的,回顾一下我们曾经学习的,也都会是一种收获。

本主题由 星辰下大陆 于 2013-2-25 18:03 限时精华

0 0