优秀程序员分析提高能力程序进阶春天的气息

说是上学,其实就是在村里的一座小庙,庙里面似乎就剩个大菩萨。摆几张桌子椅子就是教室了。记得我刚进去时是六岁半,所以还上了半年幼儿园。结果就这半年幼儿园还整了个三好学生(没办法,谁叫咱自幼聪明呢,别嫉妒啊)。那时候啊,因为这个庙里只有一二年级,人少,因此比我高几届的学生,一年级都会上两年,然后再去大队的小学里上三年级。巧的是,刚等我一年级要结束,改革的春风来了,庙里的小学撤了,所有学生自动编入大队的小学,所以我新学期自动成了二年级学生了。

初中阶段我的成绩还可以,班里基本上是前两名,年级里是前十名(我们那个班实在不怎么样)。照说还不错,可是大家可能不知道,农村的学校,升学率是很低的。一届学生常有全部考不上高中和中专的,因为教育水平相对落后,而且城里的学校在录取分数线上是向城市倾斜的,我们必须比城里的学生多考十分才能有希望(不知道现在有没有改善)。

此后我在医院里呆了半个月。做了两次抽水,一次抽出一痰盂水,用那种直径大概有四公分左右的大管子,一次抽十几管子。但我很幸运,两次后基本上就没有水了,住了半个月就好了。医生都说一般半个月好不了。半个月下来,我的右胳膊比左胳膊细了一圈。因为我坚持打吊瓶用右胳膊,因为我是左撇子,还是希望左胳膊更强一些。

对于我来说,对未来已经不抱希望。我想我也有足够的理由来安慰自己,谁叫自己时运不济呢。中考的时候,我感觉自己没有任何的压力,可以说是潇洒的考完。然后就呆在家里看电视(很遗憾,我的近视眼就是这个期间造成的)。直到有一天,我们村里的女孩(前文提到的叫我一起去上学的两位女孩之一)跑到我家来告诉我,我考上了高中。

那一年,我们学校总共就考上了三个(指中专,师范和重点高中),而我居然是其中之一。要知道,平时我根本考不到年级前三。而且分数也不高不低,正好和市高中的录取分数线一样。天啊,难道注定我要走学习之路。

高中是我最充实,最得意也最辉煌的一段岁月。也许到进入高中开始,我自己才对自己有了一个完全的改变,简单来说,是自己“懂事”了。从进入高中的第一天,我就告诫自己,我是整个学校中最差的学生,因为我刚达到分数线。因此我付出了前所未有的努力,在一个学期后,我已经是班里的第二名了(全年级四个班)。从此我的高中生涯相当的顺利。直至高考前获得了保送西安交通大学的名额。

冥冥之中似有天意。也许上天注定我要做个程序员,让我有个程序人生。因为这实在是我学习生涯中的唯一选择。不选它,我还能选择什么?

第二章我的大学

大学这四年,可说是我人生中最无为的一段时光,和高中可以说是截然相反的两个阶段。当然,也可以说是最轻松的一段时光,因为不像高中一样那么有压力,有目标。

我在大学生涯很是中庸。何以为证?第一,就是我的成绩一直在班级中处于中游,即没有得过任何奖学金,也没有补考或者重修过任何一门课程,基本上我的成绩就代表了班级的平均分;第二,直到大学毕业那年,当了我们班四年班主任的老师不知道我是谁。说明我即不是优等生,也不是劣等生,一般这两类学生对老师都有着深刻的印象(很遗憾,我连浅浅的印象都没有给老师留下)。

大学这四年,就这么庸庸碌碌的过了。当然,这其中也有一些有意思的片断,也许有一些也在您的身边发生过。

第一段:键盘上的舞蹈家

大一的上半年,计算机专业有个课程,就是指法课.作为程序员,键盘上的舞蹈家,键盘输入的指法是基本功.因此有这么一个独立的课程.当时看到城里的同学那么轻松自如的输入英文字母,简直是太羡慕了,这时候我还处于满键盘找字母的状态,别说是盲打了.

经过三个月的特训,我终于学会了盲打,而且速度一点不比城里的同学差。不过由于练习的时候只练了字母,所以至今输入数字还不是太好。不过,现在看着不少同事还在很蹩脚的敲键盘,觉得自己还是挺庆幸的。

第二段:叶利钦和叶玉卿

不太清楚计算机系和物理有多大关系。反正大学的第一年还开了物理课。这是我最头疼的东西。物理老师是个糟老头(之所以这么说,并不是对老师的不敬,而是确实有些不修边幅)。记得第一节课时,老师先进行了自我介绍,说他叫叶应钦。不过这个老师好像是四川那边的人,普通话实在是不太好。所以我们大多听成了叶利钦或者叶玉钦。结果这个雅号就一直伴随着这个老师一生。

物理是我最不好的课程,从初中开始对物理就特恐惧。因为不知道为什么,在做应用题的时候我分析成功的概率很低。由此,在物理期中考试的时候,我的所有的应用题全部答错,最终得了58分。这是我在大学期间唯一的一次不及格。

叶老师把我训了一顿,甚是语重心长。结果期末考试我居然神奇了一把,考了我在物理史上的最高分,92分。没有想到物理课我居然有善终。

很遗憾的是,我们的叶老师由于不修边幅,不懂养生之道,在第二年就因病去世了。

第三段:军训

我不知道大家在大学期间的军训是在什么时候进行的。就我现在所在的附近的几所大学,都是新生刚入校的9月份进行。而西安交通大学则不是。军训都是安排在一年级结束后的暑假进行,也就是七月份。

可以想象一下场景:在古城西安,灰黄色的天空下,没有寸草的操场上,阵阵热风卷起灰尘,形成着小型的沙尘暴;太阳火辣辣的直射这地面。在地面温度起码40度的环境下,一队可怜的学生,穿着古朴的军装,皮带周围和背部都是白花花的盐的结晶体,排着队伍进行着匍匐前进的训练;卧倒了进行射击训练,可那枪上的把手已经被太阳晒的滚烫了……

至今这个场景让我后怕。更可恨的是,到七月份的时候,学校居然把道路两旁那些梧桐树的树枝全部修剪掉了。想躲太阳都没有地方。

但是,就在这么恶劣的条件下,我还是完成了一个自己觉得比较愉快的军训。说愉快是因为我过的还不错,并且还有些有意思的事情发生。

我们系四个班,每个班大约5名女生,被独立成一个女生排了。剩余的男生编成三个排,三个排合成一个连。连长和二排长是我老乡(都是一个省的,其实在我眼里,不是我们一个县的都不算老乡);一排长和我一个也在西安上学的高中同学是熟人,他们的父亲是战友,并且我这个同学居然托一排长关照我;我自己在三排,排长不知何故,对我非常友好。所以总的来说,我就是比较容易混的了。

好混体现在几个方面,一是可以偷工减料。在训练侧高姿前进时,每次该轮到我时,排长总会说,先到这里吧,大家休息;二是可以开后门。每个连都要抽出一个班的人,成为连队的军姿班,结果我也顺利入选。

军训结束的时候需要进行汇演。其中有一个晚会,每个连都要有节目。我们连节目是大合唱一首红歌(记不清名字了,好像歌词开始时“雪皑皑”什么的),同时还要编排舞蹈,结果我又被“照顾”了。进行了人生第一次也是唯一一次的文艺演出。

第四段:少年班

他们初进班的时候,有一次上课,听说这些娃娃要考英语六级了。当时很是惊讶,小孩子都这么厉害啊,我那是才在上学校的二级英语课啊。而且听说有些已经考过一次六级了,五十多分,没过。

当我大三的时候,通过六级英语考试时,发现那些小孩还在参加考试。而且听说最后才考了三十多分。我很无语啊。考了那么多次,居然还越来越低。

总觉得把一些好苗子,过早的进行强化教育,到头来很容易拔苗助长,非常可惜。也许按照他们的正常轨迹发展,应该会有一个更好的前景。

我们系那几个小孩子,最终的结果是只有一个考上研究生,其他几个都毕业了事。而且,从他们插入我们系开始,基本上每次考试都会好几门大红灯笼高高挂。

第五段:老师,你没有走错门

以前听人讲过大学里老师进了教室后,发现人多,以为走错教室,接着就走出教室的故事。我以为在我身边不会发生,结果还真让我经历了一次。

大学里最无聊的课程,可说是那些政治课了。因此,经常没有几个人去听,老师也心知肚明,有一个人也照常讲课。我们的哲学课就是这样,平时机会只有十几个人去听。到了期末考试前的倒数第二堂课时,老师说,下一节课划重点,基本上考试范围就在这其中。结果回去后大家都通知了那些没有去上课的。到最后一节课的时候,教室里几乎座无虚席啊,120多人都到齐了。

上课铃响,只见哲学老师夹着书本匆匆进门,到讲台前放下书本,抬头一看乌压压一片人,惊慌之下夹起书本又朝门口走去。我们高喊老师没有走错。老师到门口后,抬头又仔细的看了看门牌,确认是没有走错门后,又走了进来。老师说,没有想到,今天有这么多人。

第六段:游戏中毒

在上大学之前,我还不知道游戏是什么东西。进入大学后,第一学期就开始接触了游戏。那时候还是使用五寸的软盘。计算机还是DOS系统,噼里啪啦一阵DOS指令,将软盘中的文件复制到计算机,然后进行解压,安装。我的DOS指令的学习全是通过玩游戏学来的。

那时候还没有很多游戏,记得当时玩的主要是《太阁立志传一》和《元朝秘史》。主键的又增加了《三国志英杰传》。当然,主要是我自己比较喜欢玩这种风格的游戏。

我的大学四年,计算机的升级速度很快,几乎就是一年升一级,从286,386,486直到毕业设计用586。因此游戏的发展也是很迅速,五寸的软盘很快退出了舞台。游戏也从C&C,红警,大富翁,魔法门英雄无敌,一直到暗黑破坏神。

玩物丧志在这时候得到了良好的体现。我们这些人像中毒一样。这个机房就像有无穷的吸引力。我们宿舍最要好的三个人,到后来,只能从另一条道绕一大圈去自习室,因为如果走机房旁边的路,那么我们的终点肯定是机房。那种感觉就是不由自主。有一次一门专业课第二天就要考试,可前一天晚上我实在扛不住了,扔了书本去机房玩了几个小时,整个人才精神起来。

中毒了,这的确是中毒了。

第七段:四大杀手

在我们学校的计算机系,历来有四大杀手之称。这个称呼在进校时,就从高年级的老乡那里听到。所谓四大杀手,就是教四门专业课的老师;为什么称之为杀手,就是有两个特点:一是卷面分如果是59.5分,那么也是不及格,补考;二是补考通过率比正常考试还低。一般的大学考试都有一个默认原则,就是老师会根据考试的情况,酌情调整分数,保证不通过的人数就是那么几个。因此诸如开根号乘十的公式常常会得到应用。但是在四大杀手面前,没有这个原则。

四大杀手之下,冤魂甚多。据说有人补考了六次还没有过,大四毕业了拿不到学位证书,因此在最后一次补考时,铤而走险,结果因为作弊被学校开除。杯具啊。

在四大杀手的威名下,我们是谨小慎微,如履薄冰。考试前,做了充分的准备。比如我,就找到高年级的老乡,拿到上一年的试卷,从头到尾一字不拉的反复背诵了N遍,最终得以通过考试。我的成绩是七十分。要知道,我们考试的试卷,与上一年试卷的重合率是百分之八十。回想一下,汗流浃背,如果我没用这一招,肯定是逃不过黑手。可怜我那高年级的老乡,由于没有做好准备,该科目补考了两次。顺便说一下,这门课,就是《编译原理》。

第八段:考前突击队

我想可能很多人都有考前突击队的经历。我在大一的时候,还是比较用功的,也是沿袭了高中的一些习惯;到大二时,已经开始逃课了,到大三就更不用说了,能每天一课就不错了。不只是我一个人这样,除了学习成绩好的外,大多如此。我曾经总结过,七点半就往教室走的,那肯定是一年级的;八点钟在往教室走的,那一般是二年级的;九点在往教室走的,除了直接上第二节课的以外,那是三年级的。对不起,路上没有四年级的,因为要么不在学校,要么还在睡觉。

不上课怎么应付考试呢?那只有做考前突击队员了。很多课程都是考前一周才开始拿起书看的。当然,不会傻到从头到尾看,而是会拿起两类圣经:一是往年的试卷;二是题库。大学的专业课,一般都有题库的,老师也没有这么勤奋,每年出新题。因此试卷都是从题库中抽样出来的。而且专业课的题库量是相当有限的。因此如果得到题库,那要过专业课考试,简直易如反掌;其次就是多拿点往届的考题,综合下来基本上也覆盖大半个题库了。

第九段:玩物丧志

在大学里,除了游戏害人外,还有一个东西,也是误人子弟,而且颇有风险,那就是赌博。赌博是个高风险的活动,因为一旦被抓,立马开除。然而我们就是这么顶风作业,而且很是盛行。一来我们宿舍在顶楼,来往的人少;二来班主任和辅导员实在是见面太少,而且都是女的,到男生楼估计也不方便。

开始的时候,是玩红四,一般一把牌是一张饭票。那时候大学生还享受每个月三十元左右的补贴;学校就发饭票(当时还没有饭卡),一张饭票价值五角。惨的时候,一小时能输掉一本饭票,把当月的伙食费给输光了。

后来就玩起麻将,把书桌拼起来,铺上厚厚的毛毯(不然声音太大),赌注也更大了,一元钱一把。顺的时候,一小时能赢好几十。有一次玩的投入,连班主任来都不知道。还在没有进我们打麻将的房间。真是惊险啊。

打麻将对我的影响,更体现在大四的时候找工作。有天晚上,正在兴头时,一个同学进来告诉我们,有个惠州的单位招人,只要投简历就要。当时我们宿舍三个最要好的都在玩,就商量着第二天再去。结果第二天,那个单位看到人多,就开始挑剔了,由于我的成绩只是班里的平均分,所以把我一个人刷下来了。此后也没有找到像样的工作。现在看到他们现在腰缠万贯,真是悔啊。

在大学这四年,通过一些事,也有了一些人生感悟,到现在还影响着自己。

动力论

学习成绩不好,是因为进了大学后,动力全无,感觉所有的劲在高中就全用光了。这使我对一些东西又有所感悟。比如有些人,小学的时候成绩挺好的,可到初中就落下了;然后有些人初中也相当优秀,可到高中就倒下了;然后就是像我这样,高中还不错,大学就不行了,甚至还有毕业不了的,更惨的是沦落到作弊导致被开除的。我想,这些人在小学,初中,甚至高中都可能是佼佼者,作弊对他们来说因该是很遥远的事情。这个规律也在我高中的其他同学身上印证,比我成绩更好的同学,也就是大学毕业了事,而高中时成绩中等的两个同学,最终一个医学博士,一个化学博士,最终都到美国发展了。

这个现象的原因,在我看来归结于动力和兴趣。当面对新的环境时,如果对于外界的诱惑和干扰你无法战胜自己,那么就会被吞噬,被俘获。如果未来对于工作,对于人生也都是如此,那真是莫大的悲哀。也许最终你会问自己:我为什么活着?

这山望着那山高

造成我的同学这种思想的原因,就在于他没有实地的考察,只是凭一些资料图片,就简单的认为那个地方是好地方。从此我也明白一个道理,不要这山望着那山高.当你不亲身体验之前,不要妄自下结论。这个特别体现在程序员们对待工作上,在跳槽这个问题上,还需要自己更慎重的考虑。一个错误的决定可能让你后悔莫已。

学习英语,对许多人来说,是一件痛苦的事情,最终的结果可能还是一知半解,更多人在读,写,听,说中也就能达到读的境界。

对于大学学习来说,不少人头痛的就是英语的国家四级考试了。四级考试过于不过,直接影响到毕业时能不能得到学位证书。因此往往压力较大,要是第一次没有通过,很容易越考越差。而我的四六级考试,却又充满了戏剧性……

第一段:初中英语

刚上初中时,成绩不是很理想,作为小学里名列前茅,总是三好学生的我来说,是件丢人的事情。然而初一的英文老师是个年轻而没有经验的女老师。对于我们这些桀骜不训的农村学子来说,缺乏威信。结果是每次上课,都是哭着下课,原因是学生都用纸团等垃圾砸她,只要她一回头面向黑板板书时。整个初一就这么度过了。可想而知,全班的英语成绩会怎么样,绝大部分人红灯高挂,我比较幸运,也只是勉强过关而已。最大的弊病是,英语音标没学好,以至于将来的我英语发音永远是个痛,至今不敢说英语。

初二时,学校派了一位颇具威信的女教师,大家都比较信服(也不知道为什么会这样,只是在小学的时候听我哥说,这个老师比较厉害。至于怎么个厉害法,就不知道了)。而这个英语老师对我非常关心,我的每一点进步她都表扬。在她的关心和帮助下,我的英语有所提高,基本上能够保持80分左右的成绩,这对我来说,已经是着实不易了(我也不知道老师为什么这么关心我,难道她看出来我以后能考上大学?反正她是我这辈子最感激的老师了)。

初三那年,临近中考时,我不幸得了重病,这在第一章已有介绍。由于心理放松,居然中考成绩考出了自己我最高水平,英文也有90分之多。这大概是我迄今为止英语的最高分了。

第二段:高中英语

高中生活虽然我比较满意,但英语并没有什么提高。

高一时的英文老师的英文水平相当厉害。据他自己介绍,参加全国的一个什么英文考试(忘了哪个,好像是托福之类的),得了省内第一名。确实,从教课中我们也感受到了他渊博的英文知识。板书非常漂亮。书上的任何一个英文单词,他都能写上几黑板的板书,不能用举一反三来形容了,简直是举一反十都不止。这样的结果是,我们每个人每堂课都忙于记录板书,居然他说什么都没有记住。一个学期下来得有几本笔记本。最后,大家的英文成绩都比较差。但我这却有考试运。对,是考试运。这个词将贯彻我以后的学习生活。平时测验60来分,总是被批,可每次期末考试我都是80分以上,算不算运气呢。

第三段:大学英语

我们学校规定,必须过了学校的三级考试,才能参加国家四级考试。刚入学时,进行分班考试,总分120,我考了72分。结果75分以上为A班,60分以上为B班。其他C班。A班直接从二级开始学起,其他班从一级开始学。这就意味着我差了三分,却要晚半年才能参加四级考试。晕哪。由于不好好学习,光吃老本,所以前三级的考试成绩有点成等差数列,分别是85,74,63。

最有意思的是六级考试。能够看到这里的朋友,我非常感谢你,看完前面那么一堆垃圾。四级过关后,我心情非常好。先前A班的几个同学参加了六级考试,结果没有过关的,有的考了58分,唉,可怜啊。本来我不准备报考六级,因为实在水平不到。但考虑到只要17元报名费,而且他们邀我一起。因此我也报了下一期的六级考试。但直到六级考试前,我没有看过一次六级的参考书,也没有背过六级的单词,更没有听过六级的磁带。因为这时的我,整天呆在机房里玩游戏啊。

单选也有麻烦,因为40个选择项,我没几个认识的单词啊。不过做起来也不难。遵循两个原则:认识的优先,剩下的则第一印象优先。所以单选也很快做完了。

关键的关键是阅读理解啊。40%的分数在这里。我已经想不起当时怎么做的了,因为不认识的单词太多了,根本看不明白短文要说什么。

作文还不错。我还记得当时的作文是要写“欲速则不达”。我就举了个拔苗助长的例子,来证明“欲速则不达”。可惜的是,我居然想不起“苗”用英文怎么写了。唉。最后用“草”代替了。

最终我的六级考试成绩为62.5,比四级还高0.5呢。而和我一起参加考试的那些二进宫的同学还是只有50多分。我当时有一个想法,如果我能看看我的试卷多好啊。不知道到底哪道题作对了啊。

我就这样过了英语六级。也许大家看了心里有点不平衡啊。我也是。因为这直接导致的后果是我的英语越来越差。因为我以后就更不看书了。记得有人说,60多分过关的人不如考59分没过关的人。因为考59分的人还会继续努力学习英语,而考60分的人,以后可能都不会再看了。我认为确实如此。因此大家不用不平衡。我的损失比你们大啊。

九八年七月,终于结束了大学生活。进入了山东潍坊的一家老牌的以排版软件起家的一个集团上班了,正式开始了我的程序员生涯。

正是由于大学末年没有好好找工作,错误了最佳时期,因此只能在第二轮招聘中选择这家似乎听说过名号的单位了。当然,和现在的大学毕业生相比,当年的大学生找份工作还是比较容易的。可就是这个选择,还造成了我的家人的强烈的反对,他们希望我能够回到南方工作,只要离家近就可以。但我这人目光比较短浅,在我眼里,挣钱多的地方工作一定很累,所以我选择小城市。

九八年刚好是一个改革年。从这一年开始,不再有任何福利待遇(不包括五险),所有的收入都体现在每个月的工资中。那一年,我的初始工资是一千元,而公司里比我们早一届的,工资单上只有四五百。

潍坊虽然是个地级市,下辖近十个县,但其实城区很小,骑自行车就可以满城跑。单位新进的大学生有一百多人,都住在同一个宿舍楼。下班后,周末时,经常一起玩山东的扑克玩法:勾级和保皇,经常看的人比玩的人还多,热闹非凡,比大学的日子还火。

刚走出校门的我,由于在学校里也没有什么实践,除了毕业设计用了Foxpro之外。所以说一切都是从零开始。我的新工作是开发新一代的杂志和报纸排版软件,因为上一个版本还是在window3.1上开发的。项目组成员包括一个项目经理,两个有经验的程序员,以及我们四个刚毕业的初哥。

开始时,我们几个初哥连VC是什么都不清楚。所以第一件事,就是先做一个HELLOWORLD,熟悉工具。也是在那期间,我买了第一本VC方面的书籍,主要是关于界面开发的。其后我基本没有再买过什么VC方面的书籍,因为我实在是不爱看书。

排版软件虽说是一个产品,但它本身是不直接体现价值的,因为光有排版软件是没有太多意义的,更大的价值体现在用户需要购买激光照排机。排版软件只不过是随机赠送的一个部件而已。而且,当时公司的产品重心在程控交换机的研发上。同一年毕业的,做程控交换机的,比我们做软件开发的,工资待遇要高出百分之五十。所以,就IT民工来说,程序员还是其中最低级的一种。

我在整个产品开发中的职责是图形绘制、图像处理和界面开发。当然,图像处理只是皮毛,和大家常见的图像编辑工具不是一个概念,主要是将图片按照设定的区域进行裁剪;其他人分别负责文字排版,文字处理,PS文件打印(排版软件特殊的打印方式,其实就是输出成特殊文件,为后续的处理做准备)等。

这段岁月对于我来说,印象是非常深刻的。我记得当时新产品软件的名称都是我起的,叫做易捷,取英文单词easy的谐音。若干年后,碰到当年的项目经理(当时已是这家公司的副总),说起往事,他还告诉我,现在我的名号还挺响亮,因为我的代码还在使用,其中很多注释处都写着我的名字。

项目起初的进度非常快,因为随着每个人对工具的熟悉和对业务的深入了解,很快就构建了一个几万行代码的程序,一些基础功能也初见成效,大家都非常有信心。但毕竟是初出茅庐,对面向对象的概念,软件的整个过程以及质量和版本管理方面都没有深刻的体会,因此大家都不知道一场危机正向我们逼近。

没有良好设计和管理的产品,必然会遇到困境。也许这个困境只需要简单办法就能够通过,也许这个困境将使你不得不从起点重新开始。

我们的排版软件,在中期阶段正是遇到了很大的困境。当前期开发很是顺利,甚至已经有版本在用户处实施,使用后,这个困境就像开快车时进入了一个死胡同,让我有崩溃的感觉,也直接导致我产生了退却之意。

那么我到底碰到了哪些困境呢?

困境一:版本和配置管理

首先遇到的是版本和配置管理的困境。也许我们的项目经理也是新手,在软件开始发布版本后,当用户提出某个问题后,项目经理会在解决这个问题后就向用户发布更新的程序。但是,却没有做任何记录。当时并没有使用任何配置管理工具(连VSS都是这之后才开始采用的)。要知道,排版软件并不使用数据库,所有用户编辑的信息,都如同WORD一样,是使用数据文件形式存储的,而糟糕的是,这个数据文件形式就是VC中的序列化产生的文件。

由于数据结构经常性的变动,导致数据文件的序列化函数经常性的变动,也导致了不同版本数据文件不能向下兼容,因为本身就没有充分考虑版本问题。

通过这件事,我想以后作为一个项目管理者,或者作为一个程序员,对于你负责的一个项目,或者是一段代码,时刻要意识到版本的重要性。也许,从现在看来,有很多方法可以避免这种困境的产生。

比如,产品版本发布不能随意,每次发布都需要有唯一的版本号。

比如,对于用户,也要有版本的管理,对于一个用户使用的版本历史,都要可回溯;

比如,对数据结构的版本管理。对应与其它系统,可能就是数据库版本的管理。当然,不同的是,数据库毕竟还是可以打开进行查看数据项。

比如,还有很多其它更多更好的办法。

困境二:面向对象设计和编码

这个我并不是危言耸听。就我的经历,曾经指导过几个新人,初用VC时(其实都是自称使用过VC的),我都会出几个作业给他们做。因为我认为光看书本不练习是无法深入的。其中有个题就是画图形,我只要求是直线和矩形。结果所有人都是直接在视图类的OnDraw和鼠标事件中直接进行所有的操作,根本就没有考虑,是否要进行一定的封装,使得代码更加独立和易扩展;也没有考虑到程序运行的效率。

很不幸,大学刚毕业时,我也是属于这个群体,甚至于更差,因为我还没有用过VC,对面向对象也没有什么个人的理解。因此,随之而来的代价也是不小。由于开始时比较顺手,代码模块也不大,几乎所有的操作都在视图类完成,虽然也写了一些类,但实际上,从现在看来,只是一些数据类,并没有封装其动作,而所有的动作都在视图类完成了。这么做的结果,是导致视图类无限制的膨胀。到我碰到困境时的情况是,我们四个新人,每人写的视图类的部分各有一个cpp文件,另外还包括一个主文件,放置鼠标事件等公共部分,整个视图类代码行数有三万行左右。

也许就算这样,很多的软件也能扛下去,但我很不幸,遇到困境了。用户要求对所有图形都增加旋转功能。于是,我乱了。由于整个类结构没有进行很好的设计,甚至于一个鼠标点击事件都有上千行代码,要增加一个旋转功能简直是工程量浩大,因为我无法确定对多少代码有影响,很容易出现东堵西漏的局面。

这个困境对我来说非常致命,导致我的心情极差,兴趣降到了最低点,对自己的能力也是更加的怀疑。

当然,若干年以后,这个困境对我来说却是一笔很大的财富,使我对面向对象有了自己的理解,对于模块开发形成了自己的一套思路。这感觉就像不会骑自行车时,觉得人能在自行车上不倒下来,真是神奇;而从不会骑自行车到会骑自行车,那其实就是一刹那的感觉,那个感觉很美妙。但为了收获这一刹那的感觉,你可能要付出的是很多次的摔倒。区别是,有些人摔倒一次,就找到了这种感觉,而有些人,也许摔倒一次,就不再碰自行车了;也许摔倒了不计其数次,却一直没有找到那种感觉。

我觉得面向对象这个东西,也是这样。不是老师在课堂上讲一讲,你就算会的。必须亲自去体验,甚至于付出一些代价,你才能真正的驾驭它。

在CSDN回复问题时,经常看到有些网友告知别人用全局变量等方法去解决问题。但其实很多都是缺乏面向对象的概念,只注重解决眼前的一个小问题,其实这些都是你实践的好机会,但却都被你放弃了。

困境三:变更管理

这个困境,导致了我对整个软件失去了信心。其实事情说起来很简单,在排版软件中,有个环境常量,表示数值的精度。由于先前确定的精度到后来发现不够,因此就乘以了10。但问题正是由此而来。

自从改了数值以后,软件总是出现奇奇怪怪的错误,原先没有问题的地方,都会莫名其妙的出BUG,郁闷之极,进行调试,发现问题居然出在整型溢出。原来有些算法中,用到了诸如三角形的平方和开根号等,在开根号之前的平方和出现了溢出。因为之前的环境常量使用的是整数,比如把最小精度0.01毫米计为1,那么所有整型的长度值记录的就是0.01的倍数值。原来没有乘10时,所有计算量都在有效范围内(因为排版的杂志也好,报纸也好,大小都不会超出32位整型);但乘以10后,由于有些进行的是平方和,因此等于扩大了100倍,所以会出现溢出现象。

数值的溢出可以说是很难通过阅读代码来查出的,因为很多溢出都是在算法中的一些中间变量产生的。更为担心的是,很可能很多溢出会潜藏起来,也许一天,也许一年都不会暴露,因为它是需要一定的条件才会触发的;而且即时出现问题,也是很难进行调试的,因为溢出大多是在算法中的中间过程产生的临时变量,而且程序也不会出现崩溃,只是最终的运算结果不正确。因此要定位很困难。

所以,在做一些变更前,一定要自己推敲会有哪些影响,或者哪些模块会被涉及到。所有涉及到的地方都应该进行评估,以及在完成后进行必要的测试。

可以说,这个困境,使我对这个软件失去了信心。也对我第一次跳槽产生了很大影响。当然,我第一次跳槽并不是完全因为它,而是由一个更重要的原因。

也许,大家还有其它更多更多的方法,都可以避免困境,走出困境,但重要的是,我们不要等到困境发生时才想起这些。希望大家都能够找到属于自己的方法来避免困境。我也会在后续的章节中给大家介绍我的方法,也许不是最好的,但却是我自己的。

九十年代初,我们这个公司还是相当的强盛。如果这种状态能够一直保持下去,那么也许我们当年那几批大学生很多人会长期留下来。但事实总是悲剧。

由于潍坊是个穷市,很多企业入不敷出。难得有这么一个还说得过去,并且是一个上市的企业,自然不能放过,因此形成了集团。可实际只有科技这一部分是挣钱的,其它全是赤字。再加上公司的一些错误决策,比如跟风进行程控交换机的研发。可以说是使企业加速走向衰败。

终于,在二十一世纪的第一道曙光来临时,公司被转让给了北大青鸟。原以为新的变化能带来新的生机,如同一个足球队战绩不好时换了一个新主教练一样,大家都充满了期待。但等待我们的,却是一场更大的悲剧。

当时公司的企业文化还是相当的好。即使发生了公司转卖这么重大的事件,当时跳槽的员工人数反而比之前还少,也许大家都有所期待吧。北大青鸟到来后的第一条政策就是,所有员工的工资下降百分之五十,说是公司要准备新的策略,等新策略制定后,将重新确定工资待遇。因此,这期间,我没月只有七百多元。可就算如此,跳槽的人依然很少。

原先热闹非凡的宿舍,也是日渐稀落,几乎每天都要送走同事。原先打勾级人满为患,逐渐的就凑不齐一桌,只能打打升级。再后来升级也不够人数了,再后来几乎就剩我一个了。

我原本是打算在公司长期干下去的,因为在潍坊我认识了我现在的妻子。我为她放弃了去华为工作的机会。但公司的现状使我无法坚持,而潍坊实在没有其它像样的软件企业。因此最终也只能是走人。

我的第一次跳槽和许多人是不一样的。因为我们是集体跳槽。整个产品研发团队,包括三个项目组:排版软件,照排输出和新闻采编,有一大半人,大约二十多个,一起跳槽到了大连的一家单位,从此开始了在大连的新生活。

后记:公司在随后进行了配股,北大青鸟如愿的大赚一笔。此后北大青鸟撒手不管,公司剩余的人员重新组成新的单位,继续着原有产品的研发和销售。若干年后回到潍坊,发现公司原来的地方已经成为商业区,当年的记忆彻底不存在了。

最后,网络组版软件无疾而终。我们这批人,也进行了重新打乱分组,有的去干日本活了,有的去做欧美活了。我们剩下几个留下来,继续在国内部门。而这时,正好是我现在所在的公司合并到我们公司,合并后作为国内部的一个分部门,称为国内二部。我这个没有其它部门要的(惨啊),就被分到新的部门了,因此也认识了现在的公司的领导和同事。

新的部门主要从事航运领域的系统研发。包括船舶管理,船队管理,船舶跟踪和电子海图。由于我做过组版软件,因此参与了电子海图系统的开发。可以说,这是我人生的一个大转折点,至少一直延续到现在,决定了我此后近十年的方向。

当时项目经理安排我实现航线设计模块,按他的计划我能在两三周完成就行。结果我用了五天就完成了功能。这让项目经理对我刮目相看。此后电子海图系统基本上都由我来完成,一直延续到今天。

在做电子海图系统的过程中,我终于形成了我自己的开发模式。如同我之前说的骑自行车的例子一样,突然之间发现自己已经到了一个崭新的高度,豁然开朗的感觉。至少到目前来说,我的这些方法还是行之有效的。但如同让你描述突然会骑自行车是怎么个感觉时,你可能很难描述清楚原因。只有自己反复努力尝试后才会体会到。因此,当在CSDN上看到有些人帮助解决问题,动不动就用全局变量,静态变量等方法时,我就很不赞成。也许这些方法能解决他一时之需,但却让他失去了更好的实践机会。

很可惜,由于公司合并的最初目的是为了能够上市。但随着上市希望的渺茫,以及公司对国内二部不重视,最终在一年后,两个公司又分解了。国内二部不存在了,但我却未能跟着新公司离开,开始了在国内部颠沛流离的生活。

1.日本人编码不行

我们当时做的是一个日本人编写的建筑支援系统。从VB升级到VB.NET。整个工程,出现了大量的全局变量,统计下来超过2000个。很多全局变量不知道在何处被修改的。这是这个项目最大的难点。

另外,日本人对封装有一定的思考,但却用不对地方,不该封装的地方进行了封装,该封装的地方却重复写了几十遍。

2.日本人管理一流

日本人的管理,绝对是没的说。甚至可以说到死板的程度,这也使得国内的程序员们完完全全沦为技术工人。可以说,日本人不需要他们的创造力,必须完全按照日本人的设计进行实现。

我们在开发过程中,发现程序每次运行后,主界面出来的越来越慢,最后要一分钟左右。对开发造成了严重影响,因此我和从国际部调来的一个同事对这部分进行了检查(说句实话,日本部的PG没有能力解决这个问题),发现是由于日本人代码中的非法封装(我对于第一点体会中乱封装的定义),先从一个表中读取记录数,然后在一个循环中,反复调用数据库查询语句来获取记录,结果当记录数越来越大时,这个循环的效率无法用语言来表达。改造也很简单,只需先完成联合查询就可以了。

修改之后,程序启动从先前的一分钟提高到一秒。当我们兴冲冲的告知日方时,却得到他们的抱怨,认为我们未经他们同意就进行修改。

日本人对任何一项修改,都会出式样书,哪怕界面中某个标签的位置,大小,颜色等等的微小变化。在国内的项目,是绝对不可能做到这样的。

3.外包项目在国内基本没有技术含量

我不知道是否所有外包项目都是和我做过的这个项目类似。一般中国企业接外包项目,都在日本有个机构,比如当时公司在日本就有个分公司,负责项目洽谈,以及一些前端的分析设计,然后到国内进行开发。

国内开发的人员,就是完全按照预定的式样书进行开发。不需要你进行任何发挥,任何创意,必须严格按照要求完成,哪怕是错误的。因为当日本人发现确实错误时,他会重新发式样书,重新完成。而与国内项目不同的是,日本人会承担这个责任,承认这部分工作量,因此会额外给费用。

4.外包项目很辛苦

日本项目的另一个特点,是工期要求非常的严格。要求哪天完成,那么你绝对不能延期,否则就会付出金钱的代价。因此往往是劳动密集型开发。我们这个项目,当时就集中了五十人,并且由于公司人手不够,还借调几家外公司的人员。几乎就是没日没夜的干。没有周末,平时必须到最后一班公交车到之前才能下班。

然而就算这样,你还得不到应有的待遇。薪水比国内部和国际部低很多。每个人实际的工时居然还要打六折。也许,很多人员只有一个目的,那就是能够有机会出国,因此一直忍耐。

我想,如果我稍微学点日语,做个外包项目的Leader或者Manager都不是问题。但我不想过这样的生活。

总之,站着程序员的角度,做外包项目实在是痛苦,对自己的未来也很难产生竞争力;站着管理者的角度,却又有许多值得我们学习的地方。

持续写了几章,得到了许多网友的支持,在这里非常感谢。

新的一年里,首先祝大家新年快乐,希望在新的一年里,各位学有所成,财源广进。

当然,程序员是非常有个性的群体,不乏天才和奇才,能够另辟捷径,进行速成或者巧夺天工。由于本人并不属于该群体,因此无从评价,唯存敬仰之心,如滔滔江水,连绵不绝。

虽然在新的单位里,我并没有获得新生,但还是接触了几项以前没有接触过的东西。绩效考核就是其中之一。

软件行业有其特殊性,不像工厂生产零件那么简单,通过计件等办法就可以对工人的工作量进行考量。

在我进入新单位的第三年,公司开始执行绩效考核。公司所有的技术人员都有内部的等级,包括SE1,SE2,SE3和PG四个等级。其中前三个等级又分成若干个更细的级别,用A,B,C等划分,其中A最高。SE1是最高级别,主要负责需求分析,SE2主要负责概要设计,SE3主要负责详细设计,主要是这么个概念。

为了比较准确的评估工作量,公司专门组织了若干名SE1A级的技术人员以及市场人员共同进行工作量的评估。然后由项目经理负责项目的开发以及工作量的分配。每周向部门经理提交每个组员的工作量完成数据,然后每月按工作量及任务等级发放绩效工资。其中需求分析25元/小时,概要设计20元/小时,详细设计15元/小时,编码10元/小时。

看到这里,大家也许觉得如此的绩效考核比较有道理。但实际执行却是千差万别。从我的角度来看,绩效考核在国内企业中实施,有点类似于乌托邦,理想而不现实。

而实际上,公司根本就没有这么做。那么,评估出来的工作量,只能是那些SE1A级人员拍脑袋想出来的数据了,或者就是根据项目的合同额,扣除一定的利润后,转换为工作量。然后根据软件工程中需求分析,概要设计,详细设计和编码阶段的百分比,将工作量分配到不同的阶段。

其次是项目经理分配工作量存在问题。由于项目经理可以分配工作量,而工作量就等同于绩效工资,因此项目经理相当有权(有钱就有权嘛)。但很多项目经理都是技术出身,管理水平本身就不高,另外,如前面所说,由于根本不知道技术人员的平均劳动能力,因此具体将某个模块交给哪位来完成,并且工作量计算也不可能详细划分到细节,因此项目经理需要将模块再划分后进行任务分配时,又存在分配不均的局面。由于项目经理掌握分配权,但又不能合理分配,很容易造成组员的不满和消极。因此,导致项目经理最终的策略都是大家都好的策略,工作量都是多安排,这样每个人都多分到钱,其乐融融。

虽然似乎组员满意了,可恶果是工作量用完了,项目还没有完成。因为已经提前透支了。一旦没有了工作量,那么剩余的任务组员都不愿意去干。当然了,没有钱谁愿意去干呢?就算去干,也肯定是很差。这导致了恶性循环。我经历的一个大项目,其中有两个项目组最后都由于质量太差,用户不满意,最终不得不重新开发,代价不可谓不惨重啊。

由于我现在的单位也考虑实行绩效考核,因此个人相当的忧虑。没有任何数据积累就实施绩效考核,实在是很难有好的期待。也希望各位网友对绩效考核提出自己的建议和经验,当然,前提是必须考虑国内企业的实际环境,毕竟和对日和欧美的企业有所不同。

刚进CSDN的时候,第一个熟悉的人就是薄荷,当时他是VC/MFC版块的大版主。我记得当时我在他的一个帖子中,对他和他的观点进行了抨击,甚至吵了起来,很有初生牛犊不怕虎的感觉。后来我们又互相交换MSN后私下进行了交流解决,直至成为了朋友。有点不打不相识的意思。

薄荷对我很照顾,甚至将他参加CSDN活动得到的奖品都邮寄给了我。那是一件纪念T恤,虽然大的我实在穿不了,不过我还是非常感激,一直以后成为其铁杆。

记得当时VC/MFC版块的大版主是薄荷,蒋晟,朱长德和空谷清音。蒋晟是个标志性的人物。平时似乎话很少,管理帖子也都是后台操作,从来没有见过他发布什么公告贴,有点游离于诸位大版主之外。当然,这和他身在M国有关。

朱长德是除了薄荷外,比较熟的一位了。后来申请MVP也得到了他的支持。后来来的少了,好像是因为自己下海当老板去了。不过,似乎老板当的并不顺利啊。

空谷清音不是很熟,交流很少。记得是和我同一批申请成功的MVP,随后就辞去大版主,销声匿迹了,似乎算是功成身退吧。

到现在,就剩蒋晟还在持之以恒,其他的诸位都属于历史人物了。

CSDN让我怀念的还有《编程高手》杂志。我刚成为版主的时候,向CSDN索要了12个月的《编程高手》和部分《程序员》杂志。对我来说,《编程高手》很贴近我实际的需要,并且我从中学到了很多东西;而《程序员》杂志对普通程序员来说,实在是有些遥远。可惜的是,《编程高手》还是停刊了,可能是其中的很多内容网络上都能够找到,没有人愿意掏钱来买。很是遗憾。

我在CSDN是犯过错误的,曾经为此辞掉了大版主。事情的经过我就不再多讲了,主要是和水源区有些冲突。因为这个事情,当时作为CSDN技术区总版主的薄荷和我一起下岗了。不过后来我“悔改自新”,又恢复了岗位。

很多人说,CSDN的高手不多。确实也是如此。真正的高手哪能整天闲着在CSDN上回答问题呢。我的水平很有限,自己的C++基本功简直可以忽略不计,只不过项目做多了,自然积累了一些经验而已。只是实际工作中混的不好,无所事事,到CSDN滥竽充数,混点分数来自我满足一下而已。

当然,真正的高手还是有的,至少CSDN版块中后来的laiyiling和cnzdgs都属于这样的人物。不过和空谷清音类似,都属于功成身退的人物。

THE END
1.国际课程眼花缭乱?一文说清A伦敦大学学院 A*AA-AAA,医学等热门专业的要求通常较高,而某些文科专业可能相对稍低。 伦敦政治经济学院 A*A*A-AAB,其中,数据科学专业、精算专业以及数学、统计学与商业专业的A-level申请要求从AAA提升到了A*AA,数学要求A*。 当然,申请池的激烈竞争也给这些顶尖大学带来了些变化。除了学术成绩外,它们也开始更多https://m.thepaper.cn/newsDetail_forward_29654546
2.请问在班级的干部级别上,学习委员和英语科代表谁的行政级别更高从职务含权量出发,英语科代表无疑有着更具体的权力,可以自由裁量缺交未完成名单,私授优秀作业以供https://www.zhihu.com/question/5390481354/answer/48926833739
3.大学英语a班b班的区别二者有什么不同院校动态班B班是大家开始进校时有一个选拔考试,成绩好点的进A班,差一点的进B班.A班跟B班所教的课本也不一样,A班开始就教第二册。 大学英语a班b班的不同是什么 A班跟B班所教的课本也不一样,A班开始就教第二册,B班开始上第一册.四级的参加资格好像A班都可以,而B班要平均分达到80以上。 https://www.027art.com/daxue/dongtai/9289608.html
4.大学英语ABC班是什么?大学英语ABC班是英语分班,所学教材都是一样的,每周都是两节英语课。区别一,英语整体程度不一样。A班英语程度最好,B班次之,C班最差。区别二,考四级的时间不一样。A班大一第二学期期末考四级,B班大二第一学期期末考四级,C班大二第二学期期末考四级。区别三,学习进度不一样,A班有一节是https://zhidao.baidu.com/question/1967958643401042580.html
5.计机4班对大学英语A班的期中反馈没感觉 1票|7.14% 基本不符合 0票|0.00% 完全不符合 0票|0.00% * 6. 授课能做到理论联系实际,注重学以致用,不照本宣科 完全符合 10票|71.43% 基本符合 4票|28.57% 没感觉 0票|0.00% 基本不符合 0票|0.00% 完全不符合 0票|0.00% * 7. 鼓励学生参与课堂讨论,发表个人见解,进行交流互动 完全符合 https://www.wjx.cn/m/6038568.aspx/
6.北京师范大学成考专升本大学英语A班B班的区别专升本考试A班和B班主要是教学内容和难度的区别。A班注重基础,适合英语基础较弱的同学;B班难度较高,适合英语https://www.bkw.cn/clyks1/ask/403964.html
7.2013级大学英语A班测试题.doc2013级大学英语A班测试题.doc 59页内容提供方:zdq1013 大小:420 KB 字数:约4.97万字 发布时间:2022-04-24发布于山东 浏览人气:74 下载次数:仅上传者可见 收藏次数:0 需要金币:*** 金币 (10金币=人民币1元)2013级大学英语A班测试题.doc 关闭预览 想预览更多内容,点击免费在线预览全文 免费在线https://max.book118.com/html/2022/0421/7062036010004114.shtm
8.大学英语分级教学a班课堂教学模式Word模板下载编号enpkadad本模板为大学英语分级教学A班课堂教学模式,格式为word,论文风格,可用于校园教育演讲展示,文字图片可以直接替换,使用简单方便。https://m.tukuppt.com/muban/enpkadad.html
9.20182018-2019学年第二学期《大学英语(4)》A班无纸化期末考试安排(7月2日) 2018-2019学年第二学期《大学英语(4)》A班无纸化期末考试安排(7月2日) 附件【2018-2019学年第二学期《大学英语(4)》A班无纸化期末考试安排.xlsx】已下载211次http://jwc.ahau.edu.cn/info/1012/1333.htm
10.大学英语教学计划(通用10篇)20xx级A班采用《大学英语》第三(10)/四册精读教材);B班采用《大学英语》第二(10)/三册精读教材); C班采用《大学英语》第二册精读教材。各级第一期计划学完11个单元。每单元大约用3学时。 本课程的主要目的是帮助学生正确熟练掌握语言最核心最活跃的部分。重点在培养学生的阅读能力,也兼顾听.说、写、译能力的https://www.fwsir.com/jy/html/jy_20220124173819_1600977.html
11.2025大学新学期寒假学习计划精选29篇2024大学新学期寒假学习计划 篇6 一、班会主题、时间、地点及成员等: 班会主题:新学期新打算 班会时间:20xx年2月9日 班会地点:1205教室 班会对象:13英语a班全体成员 班会计划及主持:郑含彦 班会记录:洪敏俊、杨莉莉 班会总结及拍照:姜婕飞、郑含彦 https://www.hunwen.com/work/hanjiajihua/1032/1032840.html
12.大学开学英语分班考试分班考试,相当于高中学段的第一次“择优”考试,是学校划分实验班和普通班的一项标准。这就意味着,很多学校的分班考试内容并不等同于中考,内容上可能会更偏向于检查学生功底与快速接受知识的能力:所出题目难度较大,知识点涉及广泛,题目风格与中考截然不同,且每年都有或多或少的变化。 https://m.ruiwen.com/wenda/155374.html
13.幼儿园主持词15篇三、舞蹈《螃蟹体操》(大a班) 快看一群可爱的小螃蟹上来了,他们会给我们带来怎样精彩的表演呢?现在请欣赏大a班小朋友给我们带来的《螃蟹体操》 四、舞蹈《加加油》(大b班) 成功始于自信 ,当你遇到困难时 ,你不妨多对自己说 :加油 !加油 !当 你获得足够的自信, 什么困难都会迎刃而解!有请大b班小朋友们给https://www.cnfla.com/zhuchigao/3167567.html
14.quinovare.com/xxxr84821217<!DOCTYPE/560406.shtml“如果‘维权’后能拿回来80%、90%保费,我们会考虑去接。如果只能拿回一半,那就不一定接单。”丁宇翔曾跟许凯说。这意味着,他们会选择性接单。|。 策略之王监测到,2023年07月24日辰欣药业MACD的DIF线上穿DEA线(白线上穿黄线),形成“黄金交叉”。短期指标自下而上穿越长期指标,多头力量逐步释放,上涨行情或将http://quinovare.com/xxxr84821217%3C!DOCTYPE/560406.shtml