干开发时间长了,遇见好多好玩儿的程序员。
看看你躺枪了没。
## 留一手
![](https://box.kancloud.cn/2015-11-27_56582a5a0de54.jpg)
有个哥们儿,在一合资公司做程序员,能力挺强,写代码很神的。
他的代码我看过,深得 MFC 的精髓:大量的宏,很多函数就两三个宏,一个BEGIN_XXX,一个END_XXX,中间再夹另外一个宏。诺,这就是汉堡包了。
我碰巧看他的代码(题外话,没和他在一个公司一块儿待过),那个头大啊……这玩意儿也能记得住嘛,厉害,真是厉害。
就是这么厉害个人儿,项目组数他牛 B ,他的代码只有他能看懂,他的地盘他做主,没人敢进去改东西。
这都不是真正的牛 B 之处,最牛逼的是,这哥们儿代码里有不少 BUG ,每个版本都不改完,故意留上两个,要是项目经理急了,就把旧的改完,埋两个新雷进去。
因为没人动得了他的代码,他就这么一直搞着,项目经理恨得牙根痒痒,可愣是没办法。
## 全局变量控
看一段代码:
~~~
/* Exported variables */
char hfile_name[MAXARGLEN+1], location[MAXARGLEN*2], *ppm = NULL,
*gif = NULL, tzfile[MAXARGLEN+1], units[MAXARGLEN+1],
units_abbrv[MAXARGLEN+1], tadjust_tzname[MAXARGLEN+1];
char next_ht_text[20], next_ht_date[20], next_lt_text[20],
next_lt_date[20], *geometry = NULL, loadunits[80];
char *fgrise_color_arg = NULL, *fgfall_color_arg = NULL,
*fgtext_color_arg = NULL, *fgmark_color_arg = NULL,
*fgmllw_color_arg = NULL, *fgmiddle_color_arg = NULL;
int Usetadjust=0, Itadjust = 0, tadjust = 0, utc = 0, list = 0, checkyear = 0, text = 0, skinny = 0,
now = 0, graphmode = 0, httimeoff = 0, lttimeoff = 0, tstep = 180,
middle = 0, mark = 0, mllw = 0, lines = 1, PPMWIDTH = 960,
PPMHEIGHT = 300, hinc = 0, tinc = 0, loctz = 0, iscurrent = 0,
curonly = 0, toplines = 0, hincmagic = 0, calendar = 0, banner = 0,
weekday = 0, hairy = 0, linegraph = 0, ps = 0, noampm = 0, uutc = 0,
have_offsets = 0, Ihttimeoff = 0, Ilttimeoff = 0, newload = 0, subproc=1,OnlyTCD=0, datemdy=0, mapZoom=0;
double llevelmult = 1.0, hlevelmult = 1.0, Illevelmult = 1.0, Ihlevelmult = 1.0;
time_t next_ht = 0, prev_ht = 0, next_ht_adj = 0,
prev_ht_adj = 0, faketime = 0, epoch = 0, mark_time_adj = 0;
double amplitude = 0.0, htleveloff = 0.0, ltleveloff = 0.0, DATUM, marklev,
absmax = 0.0, absmin = 0.0, fakedatum = 0.0, fakeamplitude = 0.0,
Ihtleveloff = 0.0, Iltleveloff = 0.0;
double next_ht_amplitude, next_lt_amplitude; //mgh+
int num_epochs = 0, first_year = 0;
~~~
恐怖吗?这是我在一个项目中的一个源文件里看到的,还有很多类似的源文件……
话说,有些程序员就爱这口,特别喜欢全局变量,只是,代码写完的第二天,他就可能被自己的全局变量们给吞噬了……
## 别想看我的代码
还有的兄弟,对于自己的代码,非常之在意,他把自己的代码当作圣姑了,虽然必须行走江湖,但是我就是要给它戴个斗笠蒙个面纱,就是不让你看。有时候你看他一直埋头电脑前,噼里啪啦的击键之声不绝,可是就是不知道他写了什么。他从来不让别人看他的代码,谁看给谁急。不知道是怎么想的,我有时候只能猜测,他啪啪啪敲键盘,其实是在聊 QQ 了,他之所以不让人看,完全是因为,半个月过去了,一行代码还没写呢。当然还有一种可能,他的代码比较凌乱,不想让人看出来……我们也可以往好的方面猜猜,此君自视甚高,认为自己的代码高深莫测,怕别人看了自惭形秽,怕打击别人柔弱的小心脏;或者此君认为自己的代码太优秀了,怕别人偷学了去……
不管怎么样,死捂着代码不放,终归不是个办法。
## 祥林嫂
![](https://box.kancloud.cn/2015-11-27_56582a5a23151.jpg)
“祥林嫂”原本是鲁迅小说《祝福》中的人物,是旧中国农村劳动妇女的典型。而“祥林嫂”这个词儿本身,现在又有了特别的含义,我只取其“牢骚满腹”、“不断 goto 当初”之意。
有个别程序员,对自己的技能比较珍视,采用二分法,认为这些技术是好的,是灵丹妙药,认为那些技术是坏的,是穿肠毒药。尤其是产品技术方案没有选择他认为好的那个技术时,他会很长一段时间不能接受,但凡项目执行过程中遇到点儿不顺,就会唠叨:“要是当初选择 XXX ,肯定没这些问题”。类似的话,会不断从他嘴里说出来,循环往复,一咏三叹,简直让人崩溃。
## 我能干我不干我很忙
也许你遇见过这样的队友:分解任务时,说到哪个模块,都能头头是道,看起来没有他不懂的,可是你让他干时,哪个都不愿意干,老推说我已经 take 了多少少 task 。到最后,他基本上没什么 task ,还是很简单的,但当你跟踪进度时,他却总是说遇到了这个问题,还得多长时间,遇到了那个问题,又得多长时间,你要帮他看看时,他又说不用自己能搞定。
## 未来战士
未来战士们对新的技术和工具特别热衷,每个领域的前沿技术他都知道,都能说出个一二三,而且这些技术更迭时他也都知道,比办公室里的其他人都知道得早。对于那些新技术,一旦他和你说起来,就神采飞扬,唾沫星星子四溅,此时即便你有事儿都不好意思走开。
未来战士所开发的软件所使用的 SDK 、 工具 ,只要有新的版本出现,一定要更新。哪怕是昨天刚刚更新过,今天也要更新。你不让他更新他就坐立不安,一定要来说服你,新版本有千般好,旧版本性能差、漏洞多、使用不便、编译缓慢等等问题都会被他找出来。
未来战士的哲学思想非常明确:新的就是好的。
## 石器时代的守护神
与未来战士相反,另有一些程序员,对自己掌握的技术、对既有产品所采用的技术坚定不移的维护,你要想让他把软件依赖的框架版本升级一下,那是比登天还难:Run得好好的,为毛要升级?用现在的版本可以应付一切!
石器时代的守护神具有很强的韧性和对抗一切新技术的定力,只要旧系统还可以用,他就可以旷日持久的坚持、维护下去,因为他们的原则就是:只要将就能用,不到万不得已一定不要去更新,因为任何新的技术新的改动新的设计新的重构都是怪兽,不知道会带来多大的破坏。
## 老子不需要帮助
见过没?有的程序员就爱自己搞,就算是我被一个问题绊住,吭哧吭哧搞上一星期还搞不出来,你也别想帮助我!他们的信条是:老子能搞定,老子不需要帮助。
这种类型的程序员特别敏感,特别害怕别人瞧不起他,当然有时也有些自卑、多疑,担心别人的帮助里夹带着嘲笑,他们的敏感、多疑、骄傲、自卑等等复杂情感驱使他们拒绝接受别人的帮助,也驱使他们忘记时间盒的存在。
## 快来帮帮我吧
![](https://box.kancloud.cn/2015-11-27_56582a5a62c42.jpg)
嘿嘿,这种类型的程序员,最爱说的就是:哎呀搞不定了,谁来帮帮我。
只要你一帮他,这活儿就成你的了,他们会让你觉得帮人不到底你好意思吗你,还会让你觉得送佛不到西天就是你的罪过……我天,他们遇到问题都不想的,直接拉你过来调代码。
他们是“老子不需要帮助”的反面。
## 别让我读代码,我是文盲
我懂得一门语言的所有语法,关键字认得,控制结构懂得,继承知道,多态了解,设计模式我也清楚,可你别让我看代码,看不懂,真心不懂。
这也是一类程序员,他们能够了解编程语言的所有语法和细节,可就是看不懂别人的代码。
## 精雕细琢的艺术家
咦,这里该不该断行?
代码编辑器里,到底这种字体好看还是那种字体好看?
这里的条件判断,到底是三层 IF 语句嵌套好还是三个 IF-RETURN 好?
……
这些艺术家们把代码当作一门艺术,从编辑器开始打磨,一直到每一行代码到底多少个字符合适,花括号是放在行尾还是行首……都要仔细斟酌研究。对他们来讲:美观是高于一切的。
## 孤独的人
![](https://box.kancloud.cn/2015-11-27_56582a5a7176d.jpg)
有些人选择软件开发,就是因为:再也不用和别人打交道了。
所以,他们会回避任何与别人交流的机会,谈话、电话、邮件、即时通信、微信……总之,他们理想的工作环境里只有代码没有人类。与同事或客户沟通,对他们来讲是巨大的负担,感觉说一句话就会耗费他们一辈子力气。
- 前言
- 受刺激啦,开篇啦
- 群星闪耀的黄金时代
- 3D打印能打印出程序猿吗
- 程序员零门槛?
- 看看你离优秀有多远
- 程序员的生活就这样吗
- 别说“我已经很努力了”
- 无BUG不生活
- 一张图道尽程序员的出路
- 薪资,你是我不能言说的伤
- 找工作的辟邪剑谱
- 谁是为加班而生的
- 程序员到底是什么角色
- 让程序员蛋疼的那些事儿
- 噢,我不想成为问题!
- 软件开发的十八般乐趣
- 你的幸运女神呢
- 怎样成为技术达人
- 程序员该不该考虑初创公司
- 那些害死程序员的细节
- 一个老程序员的2014年终总结
- 千奇百怪的程序员
- 咦,你也在混日子啊
- 任性,春节前辞职
- 请区别对待女程序员
- 伤心小箭,你中了几枝
- 怎么告别“混日子”
- 神奇的四步编程法
- 快来约这些女生,保你脱单
- 程序员跳槽神级攻略
- 程序员的神秘等式,你造几个?
- 这10个问题去哪儿啦
- 程序员保值的4个秘密
- 她发现了一个Bug……
- 别被技术绑架
- 程序员如何变身IT讲师
- 程序员的能力拓展模型
- 软件项目9步神曲
- 史上最全的程序员求职渠道总结
- 乐观的程序员
- 三个因素决定你的薪水高低
- 给新程序员的10条建议
- 项目进度估算难题
- 程序员被人喜欢的13点原因
- 怎样新学一门技术
- 月薪3万的程序员都避开了哪些坑
- 如何快速定位自己热爱的工作
- 这8种武器点亮程序员的个人品牌
- 程序员,这12个问题让经理比你痛苦多了
- 亲爱的程序猿们怎么找工作
- 漫谈选人与培训
- 自我发现,找到适合自己的职位
- SMART原则助你设定有效目标
- 培训机构毕业的程序员被歧视的背后逻辑