?干開發時間長了,遇見好多好玩兒的程序員。
? ? 看看你躺槍了沒。
## 留一手

? ? 有個哥們兒,在一合資公司做程序員,能力挺強,寫代碼很神的。
? ? 他的代碼我看過,深得 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 了,他之所以不讓人看,完全是因為,半個月過去了,一行代碼還沒寫呢。當然還有一種可能,他的代碼比較凌亂,不想讓人看出來……我們也可以往好的方面猜猜,此君自視甚高,認為自己的代碼高深莫測,怕別人看了自慚形穢,怕打擊別人柔弱的小心臟;或者此君認為自己的代碼太優秀了,怕別人偷學了去……
? ? 不管怎么樣,死捂著代碼不放,終歸不是個辦法。
## 祥林嫂

? ? “祥林嫂”原本是魯迅小說《祝福》中的人物,是舊中國農村勞動婦女的典型。而“祥林嫂”這個詞兒本身,現在又有了特別的含義,我只取其“牢騷滿腹”、“不斷 goto 當初”之意。
? ? 有個別程序員,對自己的技能比較珍視,采用二分法,認為這些技術是好的,是靈丹妙藥,認為那些技術是壞的,是穿腸毒藥。尤其是產品技術方案沒有選擇他認為好的那個技術時,他會很長一段時間不能接受,但凡項目執行過程中遇到點兒不順,就會嘮叨:“要是當初選擇 XXX ,肯定沒這些問題”。類似的話,會不斷從他嘴里說出來,循環往復,一詠三嘆,簡直讓人崩潰。
## 我能干我不干我很忙
? ? 也許你遇見過這樣的隊友:分解任務時,說到哪個模塊,都能頭頭是道,看起來沒有他不懂的,可是你讓他干時,哪個都不愿意干,老推說我已經 take 了多少少 task 。到最后,他基本上沒什么 task ,還是很簡單的,但當你跟蹤進度時,他卻總是說遇到了這個問題,還得多長時間,遇到了那個問題,又得多長時間,你要幫他看看時,他又說不用自己能搞定。
## 未來戰士
? ? 未來戰士們對新的技術和工具特別熱衷,每個領域的前沿技術他都知道,都能說出個一二三,而且這些技術更迭時他也都知道,比辦公室里的其他人都知道得早。對于那些新技術,一旦他和你說起來,就神采飛揚,唾沫星星子四濺,此時即便你有事兒都不好意思走開。
? ? 未來戰士所開發的軟件所使用的 SDK 、 工具 ,只要有新的版本出現,一定要更新。哪怕是昨天剛剛更新過,今天也要更新。你不讓他更新他就坐立不安,一定要來說服你,新版本有千般好,舊版本性能差、漏洞多、使用不便、編譯緩慢等等問題都會被他找出來。
? ? 未來戰士的哲學思想非常明確:新的就是好的。
## 石器時代的守護神
? ? 與未來戰士相反,另有一些程序員,對自己掌握的技術、對既有產品所采用的技術堅定不移的維護,你要想讓他把軟件依賴的框架版本升級一下,那是比登天還難:Run得好好的,為毛要升級?用現在的版本可以應付一切!
? ? 石器時代的守護神具有很強的韌性和對抗一切新技術的定力,只要舊系統還可以用,他就可以曠日持久的堅持、維護下去,因為他們的原則就是:只要將就能用,不到萬不得已一定不要去更新,因為任何新的技術新的改動新的設計新的重構都是怪獸,不知道會帶來多大的破壞。
## 老子不需要幫助
? ? 見過沒?有的程序員就愛自己搞,就算是我被一個問題絆住,吭哧吭哧搞上一星期還搞不出來,你也別想幫助我!他們的信條是:老子能搞定,老子不需要幫助。
? ? 這種類型的程序員特別敏感,特別害怕別人瞧不起他,當然有時也有些自卑、多疑,擔心別人的幫助里夾帶著嘲笑,他們的敏感、多疑、驕傲、自卑等等復雜情感驅使他們拒絕接受別人的幫助,也驅使他們忘記時間盒的存在。
## 快來幫幫我吧

? ? 嘿嘿,這種類型的程序員,最愛說的就是:哎呀搞不定了,誰來幫幫我。
? ? 只要你一幫他,這活兒就成你的了,他們會讓你覺得幫人不到底你好意思嗎你,還會讓你覺得送佛不到西天就是你的罪過……我天,他們遇到問題都不想的,直接拉你過來調代碼。
? ? 他們是“老子不需要幫助”的反面。
## 別讓我讀代碼,我是文盲
? ? 我懂得一門語言的所有語法,關鍵字認得,控制結構懂得,繼承知道,多態了解,設計模式我也清楚,可你別讓我看代碼,看不懂,真心不懂。
? ? 這也是一類程序員,他們能夠了解編程語言的所有語法和細節,可就是看不懂別人的代碼。
## 精雕細琢的藝術家
? ? 咦,這里該不該斷行?
? ? 代碼編輯器里,到底這種字體好看還是那種字體好看?
? ? 這里的條件判斷,到底是三層 IF 語句嵌套好還是三個 IF-RETURN 好?
? ? ……
? ? 這些藝術家們把代碼當作一門藝術,從編輯器開始打磨,一直到每一行代碼到底多少個字符合適,花括號是放在行尾還是行首……都要仔細斟酌研究。對他們來講:美觀是高于一切的。
## 孤獨的人

? ? 有些人選擇軟件開發,就是因為:再也不用和別人打交道了。
? ? 所以,他們會回避任何與別人交流的機會,談話、電話、郵件、即時通信、微信……總之,他們理想的工作環境里只有代碼沒有人類。與同事或客戶溝通,對他們來講是巨大的負擔,感覺說一句話就會耗費他們一輩子力氣。
- 前言
- 受刺激啦,開篇啦
- 群星閃耀的黃金時代
- 3D打印能打印出程序猿嗎
- 程序員零門檻?
- 看看你離優秀有多遠
- 程序員的生活就這樣嗎
- 別說“我已經很努力了”
- 無BUG不生活
- 一張圖道盡程序員的出路
- 薪資,你是我不能言說的傷
- 找工作的辟邪劍譜
- 誰是為加班而生的
- 程序員到底是什么角色
- 讓程序員蛋疼的那些事兒
- 噢,我不想成為問題!
- 軟件開發的十八般樂趣
- 你的幸運女神呢
- 怎樣成為技術達人
- 程序員該不該考慮初創公司
- 那些害死程序員的細節
- 一個老程序員的2014年終總結
- 千奇百怪的程序員
- 咦,你也在混日子啊
- 任性,春節前辭職
- 請區別對待女程序員
- 傷心小箭,你中了幾枝
- 怎么告別“混日子”
- 神奇的四步編程法
- 快來約這些女生,保你脫單
- 程序員跳槽神級攻略
- 程序員的神秘等式,你造幾個?
- 這10個問題去哪兒啦
- 程序員保值的4個秘密
- 她發現了一個Bug……
- 別被技術綁架
- 程序員如何變身IT講師
- 程序員的能力拓展模型
- 軟件項目9步神曲
- 史上最全的程序員求職渠道總結
- 樂觀的程序員
- 三個因素決定你的薪水高低
- 給新程序員的10條建議
- 項目進度估算難題
- 程序員被人喜歡的13點原因
- 怎樣新學一門技術
- 月薪3萬的程序員都避開了哪些坑
- 如何快速定位自己熱愛的工作
- 這8種武器點亮程序員的個人品牌
- 程序員,這12個問題讓經理比你痛苦多了
- 親愛的程序猿們怎么找工作
- 漫談選人與培訓
- 自我發現,找到適合自己的職位
- SMART原則助你設定有效目標
- 培訓機構畢業的程序員被歧視的背后邏輯