程序员的一生
for (int i= 0 ; i < "世界末日".length(); i++) {
if ("病倒"==true) {
continue;
}
if ("挂掉"==true) {
break;
}
if ("转行"==true) {
break;
}
else{
System.out.println("做不完的项目/改不完的界面/加不完的班.......");
}
}
[解决办法]
程序员好像大多都灰暗,求阳光
[解决办法]
《是非人生——一个菜鸟程序员的5年人生路》算是我浅薄的人生里一个里程碑了,想上天涯首页也上了,想被河蟹也河了,而且都是头一天晚上说我明天会不会如何如何,第二天就果然如何如何了,这算不算一语成谶。
帖子被锁两天了,版主和工作人员都没给出解释,我挠破头皮也不得要领。牛二哥说我比他牛B,先他一步被河蟹,我觉得我最牛B的地方远不止如此,我最牛B的就是写的都是歌颂我朝盛世之景也会被天涯河蟹……这不官逼……
牛二哥还鼓励我发到杂谈,起一个标题党的销魂名字,我当即便想到了——一个程序员的放浪生活,这是我潜心研究标题党起名手段之后的卓越成果呀。不过算了吧,我这个连放浪的毛都挂不上,就是个普通程序员的普通生活,普通到所有菜鸟程序员都能找到自己的影子。
莫非是写了太多的华为?不应该阿,网上对华为已经到了众口铄金积毁销骨的地步了,唯独我还是客观又中肯的评价——毕竟我自认对华为的感情与妖魔化华为的众人还是不同的。
挠头,摇头。
不管怎么样,我还是找个能发贴的地方写我自己想写的东西吧。
1.1.8.1写在前面
头几天有人在论坛里发帖子自称程序员,后来有人回帖恶语相向表达了自己的不满,我就迷惘了,我以为程序员是所有能敲几行代码的人的总称,无论这个人水平多高多菜。但现在看起来明显不是了,尤其我这种最擅长ctrl+c和ctrl+v的人无论如何也不配自称程序员的。我也乐于自称代码工人,如果这么自称会给大家带来快感的话,但是我头几天跟人自我介绍的时候用了代码工人这个称谓,好多人一下子没反应过来代码工人是干什么的,非要我重新解释一遍就是程序员才豁然开朗。
你看,不是我要忝居这个称谓,实在是大家习惯了叫写代码的人为程序员,也许你认为我尸位素餐,不过我真的是人民大众所认为的普遍意义上的程序员,是人民大众把程序员这个你们家那么神圣的称谓变低俗的,低俗到我也能被称为程序员的地步。
另外,如果非要考我几个NB问题然后才能容许我自成程序员的话,那我只能问候他了,你凭什么认为这个称谓多么神圣多么不容侵犯,你凭什么觉得自己自称代码工人就不容许别人自称程序员,你凭什么在周星驰自称死跑龙套的同时不允许他也自称其实我是一个演员,你凭的是你妈逼你的?
1.1.8.2头文件
第0章完全是起源一个笑话,说一个数学家搬家,一共10个箱子,到地方后死活就说搬家公司给弄丢了一个,搬家公司一查正好10个箱子,他一查就九个,闹到后来当面对质只听得他老人家数道:0123456789……
其实搞IT的和搞数学的一样,计数都是从零开始,所以作品也应该从零开始。呵呵,不过这个能看这文章的人一定都很了解,我也不用赘述。
我是个程序员,或者叫代码工人,或者叫打字员,都可以,我没有特殊的癖好或者荣誉感,这个职业对我来说并没有如某些人一样产生神圣感,也没有某些人一样有厌恶感。这只是一份谋生的职业,没有把青春献给它的冲动,也没有做一天和尚撞一天钟的慵懒,我不爱它也不恨它,平淡就是我最大的感受。
平淡?是的,就跟我呼吸的时候一样,不主动不拒绝,离不开甩不掉,就跟我浅薄的人生一样总是不好不坏不强不弱。
我工作了4年,上网了8年,活了快30年。基本上一开始职业选择程序员是被逼无奈,以后要做下去也是无可奈何。我明白程序员这条路不好走,但是也没有外界传言的那样难走,诸如程序员是吃青春饭云云,那绝对是井底之蛙对未知事物的妖魔化。
我不是个好为人师的人,也没有能力给人指点迷津,我只是想诚实客观的给那些在这条路上迷茫的人说个方向。哦,还要声明一下,我没有自诩先知,我不知道正确的方向在哪里,时至今日我也在摸索,只是我觉得我过往的经历于还没有踏上或者刚踏上这条路的人会有裨益,也许能让您少走弯路或者看清前方——毕竟,我工作了四年,您下一步可能踏上了我刚踏过的脚印,我仅仅是希望不要走我走的歧路不要摔我摔的跟头。
某些论坛里,很多大仙勇于给刚毕业或者没毕业的迷茫青年指点迷津,其言论令人发笑令人齿冷,请容许我用无知来形容,因为除此之外我空洞的大脑没有别的词语能形容,此类言论我印象深刻的有C没前途C++不值一晒之类。唉,误人子弟毁人前程。
有很多大侠技术上真的很牛,评论起语言方向之类往往高屋建瓴天马行空,列举读过书来也是汗牛充栋数不胜数。这很好,真的,只是我在几年前看的时候简直灰心的要死——就一个初学者来说,做一个程序员的门槛变的有些高不可攀,而且我总认为如果一份职业和荣誉感挂上钩的话会有些皮里阳秋的意思了,如我般的凡人来说受能力所限技术上不可企及大牛但是还要依靠这份职业来养家糊口。
当然也不乏有些YY的作品,搞得我看了以后觉得很好看只是跟我乃至我日常接触的程序员完全不在一个空间。
我要写的故事跟我的经历有点类似。
这个人小时了了,大了就一点也不了了。上中学不努力结果上了一个野鸡大学,上大学仍旧不努力虚度了四年光阴,专业是计算机可是毕业了连指针是什么都不知道。
明明满脑子糨糊一肚子大便,却还自视甚高,标准的干啥啥不行,吃啥啥没够。
靠关系找了工作,单位里被排挤被鄙视,因为不会做人不会做事,处理不好指导老师的关系即使工作了两年毛也没学到,仍旧不知道指针为何物,却可以恬不知耻地宣称自己不屑用指针可以用数组来代替指针。
后来适逢大公司急速扩张,恶补了几天C语言和数据结构便去应聘,走狗屎运进入大公司。公司压力大的好像高压锅,逼迫着他学习工作,他从大学的教科书看起到后来凭了点小聪明居然也混成了小leader。
这个人一辈子走狗屎运,第三次跳槽进入了外企,面对着松散的制度和自己千疮百孔的技术能力发呆,经常会思考:我的人生是偶然还是必然?
1.1.8.3构造函数(1)
“我给你讲一个故事,从前有一只小鸟,大冬天一个人飞,天气太冷了,小鸟都冻僵了,bia-ji从天上一头栽下来摔到地上。这时候路过一头牛,这牛走到小鸟头上 pu 拉了一坨,pia 糊小鸟身上了。就跟盖了个热乎的大棉被一样,小鸟在屎堆里躺着热乎呀,马上就醒过来了,舒服的她一点都不想离开还张嘴就唱上歌了。结果这时候来了一只猫,听到鸟叫miao的一声扒开牛屎捞出小鸟就吃掉了。你听懂没?”
董延明给自己的侄子讲这个故事,讲的侄子面红耳赤。董延明接着说,“这个故事告诉我们三件事情,第一,在你头上拉屎的不一定都是敌人,第二,把你从屎堆里拉出来的不一定都是朋友,第三,你都掉屎堆里了,能不能闭上你的鸟嘴。”
侄子今年大学毕业,学的也是计算机科学专业,结果对着电脑显示器连hard disk都不认识,如果不是自己的侄子董延明一定问候他母亲。
侄子心高气傲一心创业,滔滔不绝的描述自己的蓝图,这无疑刺激到了董延明。他努力追忆自己的大学时光可是总是想不到身边有哪个人能跟自己侄子的状态匹配上,他摇头晃脑拍着侄子的肩膀说,“都是那个二B《奋斗》把你害了呀。”
董延明小时候是四里八乡远近闻名的神童,长大后成了泯然众人,成了全国几百万普通IT从业者的一员。他有时候努力去挖掘自己不同于常人的地方,挖地三尺的结果总是一无所获,终于在他25岁的时候认同了自己的平庸,从此八风不动的坚持做程序员这条大多数人认为的死路。
他上高中的时候不会想到自己会做程序员,当时莫说程序,就连电脑都没有摸过,偶尔去过电脑培训的地方看到黑黑的dos界面便产生了一种恐惧,别人让敲键盘也缩手缩脚,结果把与键盘的第一次亲密接触一直保留到了大学。
董延明考上高中的时候成绩很高,不过于很多自诩聪明的孩子一样,大家都选择了不学习的方式来证明自己的智商,结果有智商高的证明成功了考上了好大学,有智商低的就像董延明众望所归考上了一所二流的大学。
董延明高考那一年是后填志愿,同学们都是全家老小戮力同心填志愿估分忙的不亦乐乎,董延明却告诉他妈不用去学校一起填志愿了,董妈妈是农村妇女除了清华大学之外也没听过别的大学了,她也清醒地知道儿子上不了清华索性放给儿子积极去填。董延明拿着志愿单在墙角坐着胡乱的勾画着,心里想的全都是“向隅”这个词。
等学校的录取通知书下到他手中的时候他愣住了,打开一看更愣住了,“老天爷啊,你在玩我吗?我有填这个学校吗?还有这个计算机科学与技术,我有选择这个专业吗?”
董延明的大学跟省内一所全国赫赫有名的大学名字接近,若干年后董延明已经学会了介绍出身时只介绍相同的那一部分——有意识的误导别人也是抬高自己的一种手段。但在当年,小董却恨透了名字相近的这一部分,就因为几字之差让他没有勇气在人前大声说出自己的学校。
董延明99年入的学,那时候互联网方兴未艾网吧凤毛麟角,学校里的网络教室是网络触角在小董生活里的唯一延伸。董延明那时候连打字都不会就跟人家一起上网去,当时还有计算机实践课,课堂上大家都用一个软件练习指法——“ZF练习”,打出20的成绩就能及格小董却总是在10左右晃悠,而且敲击键盘的声音逐级升高技惊四座。
董延明和桑军、龚明明一起上网,上网的主要起因是龚明明买了本当年的《电脑爱好者》杂志,三个人可以对照的杂志中的推荐文章一步一步的注册邮箱,这在当时似乎是件了不起的大事。注册的过程花了可能一个小时吧,成功之后三个人居然紧张的满头大汗,多少年后三个人无论怎么回忆也不明白当初怎么会花了那么长的时间注册邮箱,究竟哪一步出了问题是想不出来了。那时候网络很奇特,发信居然有隔了一个月才收到的时候,这也让三个人对上网产生了怀疑——究竟上网有什么好的?
网络教室上网要2.5元,普通计算机教室2元,后来三个人就转移去了普通教室,不是钱的事情,是那里面电脑里都装了星际争霸和三国群英传2,哦,还有龚明明最喜欢的梦幻西餐厅。
后来有一期的《电脑爱好者》杂志等了一个新软件的申请流程,龚明明就又拉着两个人去网络机房,那个软件叫OICQ,宣传语是“oh,I seek you”。三个人居然再次对照流程申请了不下10遍才成功,成功后三人顿时对互联网肃然起敬对文章作者五体投地,原因是某伟人的那句话“科学的道路上来不得半点马虎”,他们刚才总是忘了这个步骤错点了那个按钮最后侥幸注册成功,可见互联网上是来的不得半点马虎,写文章的人何其NB啊。
龚明明拍着网络教室的电脑说,“这破机器太破了,顶多586,我们家那台是686比这台好用多了,要是注册这个东西一注册一个准。”
1.1.8.4构造函数(2)
大一的上学期开了唯一一门跟小董的专业有关系的课就是计算机原理,老师是一个比小董们大不了几分钟的小女孩,眉清目秀声音甜美,可惜就是一门简单的基础课也让她讲的不三不四,回车键上档键退格键统统分不清楚,听得小董们一会天上一会地下的。每次上完课之后大脑里现有的东西都被乾坤大挪移了,每次都要在宿舍里拿着龚明明的纸板键盘重新确认一下那几个键的坐标。
99年的时候电脑普及程度很差,这门课的考试居然没有机房可用,大家都在纸卷上写写画画,用个向下的箭头表示回车,用凹形的标记表示空格。龚明明答卷的时候三心二意,跟旁边的美女李小白小声说,“手写太落后了,我在家里用我那台686敲敲用不了5秒就答完了。”结果被老师以作弊赶出考场。
大一下学期开了C这门课,课本用的是谭浩强的《C语言设计》,这本书的水准仁者见仁了,有人说贻害人间也有人说受益匪浅。对董延明来讲,就算把《C专家编程》这类公认经典给他学也是一样,他没有任何基础对编程的理解仅仅停留在字面上,而且老师教授的不得法只会在黑板上写些“
int a = 1;
int b = 2;
int sum = a + b;
printf……”,
完全不讲述这种简单的编程技法延展开会会如何的改变这个世界。
若干年后,董延明班上次次得奖学金的某人在QQ上问董延明C语言到底能干啥,董延明颇有些郁闷,他跟另一个在大学当老师的同学叮嘱,“您行行好,将来教C语言的时候大概描述下C语言能干啥,哪怕就是笼统的说句‘可以编手机游戏’也能解开无数孩子的困惑。”,结果那同学居然也忝着脸问他C语言到底是干啥的。
教C语言的老师叫崔洛庹,桑军一听这名字就大喊,“我考,吹骆驼啊,有骆驼不吹牛啊!”这老师名如其人,特别喜欢吹,一节课讲10分钟把课本上的代码抄到黑板上就开始吹自己的人生了,这也算是董延明这帮同学语言基础薄弱的根因之一吧。
董延明工作了之后定义变量还喜欢定义abc,看的当时公司指派给他的导师吴博士眉头拧成了麻花,这笔烂账董延明也记到了谭浩强的头上。
大学又陆陆续续开了些数电模电线性代数概率分析的课程,可惜无一例外都没有一个老师解释过为什么要开这门课,这门课对学计算机的人有多么重要,董延明和桑军二条好汉也一概忽略掉了这几门课程,只有龚明明因为接近李小白和她一同坐第一排听课一起上自习因而对这几门课学有所成。
等到大三又开了数据结构操作系统编译原理软件工程几门课,董延明也知道这几本课很重要,于是便很认真的学。结果数据结构老师居然不会编程只会自黑板上写排序代码,操作系统老师第一节课就迫不及待的告诉大家他什么都不会别问他问题,软件工程老师从来没经历过软件流程不能解释需求分析和概要设计的差别,编译原理老师考试前画100条概念告诉大家要考其中50条。
董延明迷迷糊糊的渡过了大学三年转眼之间面临着毕业,写简历的时候因为没东西可写绞尽脑汁,等一看桑军的简历顿时笑了,特长栏老桑写“本人精通C语言、数据库、编译原理、软件工程……,熟练掌握计算机各项技能……吃苦耐劳……”。
董延明调侃桑军说,“你还有特长,你就老二特长。”不过既然有人开了这个吹嘘的头他也有勇气写了,写到后来做贼般的面红耳赤。几年后他负责招聘时,发现应届毕业生的简历远比他的都要夸张,几年的心病才得以释然。
敢写自己精通C语言的时候董延明和董延明还不知道指针是什么,名字是听吹大象说过,但是干什么的不知道,依稀记得一个星号就是指针。对于C语言仅存的记忆就是吹大象有一次上课讲了一个“嵌套”,睡的香甜的桑军居然爬起来嘟囔了一句,“什么?欠操?”后来那节课小董三人因为笑的太猥琐被吹大象送到了走廊去吹风,这也直接导致了小董C语言课挂科,间接导致大学毕业两年后才懂得递归和嵌套的实际意义。
多年后三人听到那段经典的话“不是我上了大学而是大学上了我”,居然心有戚戚,桑军感触最深,还憋出来一句,“整了半天我最欠操。”
[解决办法]
1.1.8.5构造函数(3)
后来就到了找工作阶段,跟所有非名牌重点大学的学生一样,三条好汉也面临着国内老字号品牌的命运——狗不理。这段经历在小董那一波或者那一类同学的人生经历里都是不堪回首的,差距这个概念在大学四年里从没这么深刻的让人理解过,小董看着隔壁大学牛轰轰的学生两眼冒火,也许就是几十分甚至几分的距离,人生际遇便判若云泥。
龚明明在三个人里面是好的,得过奖学金连英语六级都过了,如果不是学校牌子扯后腿可能早去了外企了。他被几家公司召见过,最终选择了海关下属的一家公司,从此以后提起自己的去向便忌讳莫深的只说两个字“海关”。后来龚明明又被深圳华为看中了,一时难以取舍,逢人便问“我是去华为好呢还是去海关好”。
2003年深圳华为在学计算机的人心目里还是像一座碑一样,大家说起名字来都要心怀敬仰,但是龚明明还是拒绝了,他觉得国企更适合他,以后可以不用做程序员了。他跟小董和老桑说,程序员这个工作太累了,不能长做,还是应该做管理。
2003年的小董和老桑都是顽石一块,连程序员是什么都没有搞清楚,却听到日夜一起胡闹的哥们说出这么一番似懂非懂振聋发聩的话来,俩人突然有些自惭形秽,同时管理这两个烫金的大字在俩人面前无限放大。
2007年龚明明在QQ上问小董现在做管理很爽吧,小董说,“被人爽。”然后就开始描述起PL的苦楚来,下属如何愚笨,上司如何不人情,工期如何紧张,加班如何多,龚明明在网络另一端狂抹汗,问道:“那你啥时候能混到不用你干活啊。”小董终于明白龚明明当年的管理就等同于不干活,一时气结。
小董和老桑都是在找工作的道路上屡屡受挫的战士,老桑愈挫愈勇,小董就有些经不起风雨了,几次招聘会下来变成了霜打的茄子。后来家里给找了个研究所的职位,他才兴冲冲的去面试,结果到了办公室对方给了他一张卷子,他当时就傻眼了——不是托了关系么,怎么还要考试阿,我要是能考试,还用托关系么。当时考了C语言的几个简单的知识,包括内存分配和越界,小董看了看没看懂——他连malloc都不认识,不过他也随手写了几笔似是而非的答案。最后一道题是问,日本公司里无论何时人人都很忙碌,中国公司里却经常有大家都很闲的时候,请问你想要哪种工作环境,为什么?
小董写了不下500字,大力阐述日本那种企业环境的好处,力图让对方明白自己是个能吃苦的孩子,希望对方明白白痴不可怕,态度决定一切嘛。后来小董就进了那个公司,决定前程的当然不是那张揭示出小董底牌的卷子,但是那张卷子也不是全无用处,它使得部门老大逼迫小花毕业前去买两本书而且务必看完——《C++primer》、《VC++技术内幕 第四版》。这两本书一本120块钱一本99块,小董肉疼的要命,却在毕业前一眼都没看过。
新工作报道第一天老大便问小董,“类是什么?”小董一脸惊讶,类是个什么东西?这其实不能怪小董,大学没开C++这门课,小董又一直没打开过《C++primer》,他是真的头一次听到这个名词。老大误解了小董的表情,以为他无法表述,遂嘿嘿淫笑道:“这个问题我不知道难倒了多少人了,你不知道就再回去看书”。
一个月后老大再问这个问题,小董脱口而出“描述一组相似对象共有特征的抽象”,老大又问那这个抽象到底是什么,小董顿时便想晕倒在地,这几个月零零碎碎的从书上看的从别人口里听说的不由自主的都喷出来,“动物园……录音机……”,各种比喻满天飞。这就是2003 年已经踏入IT世界的小董的实际能力,一言以蔽之——烂。
老桑找到大学毕业也没有找到工作,毕业后彷徨不知所终,后来在路上看到一个传单——北大青鸟IT培训,他就抓着根救命稻草似的去了。培训很贵,不过据老师说物超所值,培训那种全能型战士的要大约两万块钱,两万有些贵不过可以分三期学习和交费,第一期七千然后递增。分期的好处是让你可以选择听完之后是否还要继续花钱,结果很多人的实际情况变成了花了7千之后没学会东西抽身出来又舍不得那7千块钱只好再投第二期钱。老桑当时不知道这些,只是觉得7千太贵了,就顺着价目表找了一个最便宜的Java培训,3千块。结果发现授课老师居然是同系同学,小桑差点晕过去。
平心而论,小桑的收获还是很大的,这花钱上课就是有动力,一门JAVA让他自己看一年也看不会,被这3千块钱一刺激,他居然三个月就小有所成了,做一做普通公司的常规面试题也能达到80分了。桑军北大毕业后意气风发,网上投投简历居然还真被一家公司录取了,虽然公司小点但是好歹也有工作了。
这是2003年,龚明明使用PB编企业管理系统,颇具ERP的雏形,月薪1200元,桑军使用Java,对日外包,试用期月薪900元,董延明使用VC6,不知道自己编什么,因为有关系月薪1800元。
1.1.8.6new
董延明的第一次new是在研究所,申请的内存很小,而且释放之前也没有再增加过。
这是一家国有研究所,现在依然能从残垣断壁中看出来从前声名赫赫的影子,例如门口站岗的警卫和笼子里凶恶的狼狗。董延明所处的研究室不做国家项目的研究,对外接活赚点钱,实际上所里也没有什么国家项目了,别的研究室大家都是上午十点钟来晃一圈下午三点再来晃一圈就算研究完成。后来国家发展了重大军事项目,董延明所在的所居然也接了一部分,不过当时董延明已经远走深圳成了别人的账下小卒了。
董延明在吴博士手下工作,吴博士见到他的第一眼就开始说,“小董啊,你的那个答卷我看过了,你还要加强学习啊。”
董延明一惊,然后就问了一句多少年后都觉着特别二的话,“吴工,您觉着我水平怎么样。”
吴博士也没有客气,随口就是一句,“你根本就什么都不会嘛。”
董延明被吴博士安排读《VC++技术内幕 第四版》这本书,吴博士告诉他这本书看透了就敢说是VC高手了。董延明看了头几页就有没看懂的地方,想去问吴博士又觉着害羞,腾到马上要下班了才抱着书本过去问,结果吴博士看都没看他,一边关电脑一边说,“我要下班了,没时间,你明天再问吧。”
第二天董延明再次鼓起勇气去问,吴博士听了问题便不假思索的回答:“这个问题我不会……”
过了三个月,部门老大问起吴博士小董的学习,吴博士摇头摇出拨浪鼓的样子。老大问起董延明自己觉得学的如何,董延明眼泪八叉的说:“老大,我看那本技术内幕看不懂……”老大说,“操,你看反了!应该先看primer……”
董延明又看了一个月的primer,刚刚能弄明白里面基本的语法,可是对于大学时代就不明白的指针仍然是不知其然。
这个时候吴博士又来找董延明了,“小董,你来了几个月啦?”
董延明红着脸回答说,“六个月。”
吴博士说:“都六个月啦,那可应该干点活啦,你想干点什么。”
董延明张口结舌答不出来,吴博士便做主让他写一个socket程序。Socket?这个词语董延明居然是第一次听说,赶紧请吴博士讲一遍要求。吴博士找来一张纸,先画两个圆圈,然后说,“你看,这个是server,这个是client,你要开发出这个server来。我会给你发送一个666或者555过来,你收到后呢就给我回一个111或者222,你明白么?”
他一边说一边在两个圈之间画两个交互的箭头,董延明脑子里多了一堆乱毛线团,他想,“你给我个666,我就给你个111?你怎么给我666?”他脑子里出现了一片幼儿园级别的代码:
-if (666 == a )
{
B = 111;
}
这串代码之后,他便对666怎么过来,111怎么发送一无所知的。说实在的,董延明大学时候学过网络编程,不过当时的那个学期他和桑军醉心于网络游戏《奇迹》(就是MU,九城代理的一个游戏)一个学期没上课,所以对于socket是闻所未闻,对那些connect、listen这些函数也是见所未见。
吴博士看见董延明翻白眼连忙解释说,“不一定要666,我发1234也可以,你发个0回来也可以,都可以,你可以自己定,这总可以吧?”
董延明看吴博士的口气似乎已经让了很大的步也只好点头,吴博士走后他拿着刚才画图的纸发呆,数着字母,“s-o-c-k- e-t”,脑子里有个印象——技术内幕那本书似乎讲过这个东西。
[解决办法]
表示,晕到!!给个5分下载个东西,谢谢。