1. 程式人生 > >漫談程式設計師系列:千奇百怪的程式設計師

漫談程式設計師系列:千奇百怪的程式設計師

幹開發時間長了,遇見好多好玩兒的程式設計師。

看看你躺槍了沒。

留一手

有個哥們兒,在一合資公司做程式設計師,能力挺強,寫程式碼很神的。

他的程式碼我看過,深得 MFC 的精髓:大量的巨集,很多函式就兩三個巨集,一個BEGIN_XXX,一個END_XXX,中間再夾另外一個巨集。諾,這就是漢堡包了。

我碰巧看他的程式碼(題外話,沒和他在一個公司一塊兒待過),那個頭大啊……這玩意兒也能記得住嘛,厲害,真是厲害。

就是這麼厲害個人兒,專案組數他牛 B ,他的程式碼只有他能看懂,他的地盤他做主,沒人敢進去改東西。

這都不是真正的牛 B 之處,最牛逼的是,這哥們兒程式碼裡有不少 BUG ,每個版本都不改完,故意留上兩個,要是專案經理急了,就把舊的改完,埋兩個新雷進去。

因為沒人動得了他的程式碼,他就這麼一直搞著,專案經理恨得牙根癢癢,可愣是沒辦法。

全域性變數控

看一段程式碼:

C
12345678910111213141516171819202122232425 /* Exported variables */charhfile_name[MAXARGLEN+1],location[MAXARGLEN*2],*ppm=NULL,*gif=NULL,tzfile[MAXARGLEN+1],units[MAXARGLEN+1],units_abbrv[MAXARGLEN+1],tadjust_tzname[MAXARGLEN+1];charnext_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;intUsetadjust=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;doublellevelmult=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;doubleamplitude=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;doublenext_ht_amplitude,next_lt_amplitude;//mgh+intnum_epochs=0,first_year=0;

恐怖嗎?這是我在一個專案中的一個原始檔裡看到的,還有很多類似的原始檔……

話說,有些程式設計師就愛這口,特別喜歡全域性變數,只是,程式碼寫完的第二天,他就可能被自己的全域性變數們給吞噬了……

別想看我的程式碼

還有的兄弟,對於自己的程式碼,非常之在意,他把自己的程式碼當作聖姑了,雖然必須行走江湖,但是我就是要給它戴個斗笠蒙個面紗,就是不讓你看。有時候你看他一直埋頭電腦前,噼裡啪啦的擊鍵之聲不絕,可是就是不知道他寫了什麼。他從來不讓別人看他的程式碼,誰看給誰急。不知道是怎麼想的,我有時候只能猜測,他啪啪啪敲鍵盤,其實是在聊 QQ 了,他之所以不讓人看,完全是因為,半個月過去了,一行程式碼還沒寫呢。當然還有一種可能,他的程式碼比較凌亂,不想讓人看出來……我們也可以往好的方面猜猜,此君自視甚高,認為自己的程式碼高深莫測,怕別人看了自慚形穢,怕打擊別人柔弱的小心臟;或者此君認為自己的程式碼太優秀了,怕別人偷學了去……

不管怎麼樣,死捂著程式碼不放,終歸不是個辦法。

祥林嫂

“祥林嫂”原本是魯迅小說《祝福》中的人物,是舊中國農村勞動婦女的典型。而“祥林嫂”這個詞兒本身,現在又有了特別的含義,我只取其“牢騷滿腹”、“不斷 goto 當初”之意。

有個別程式設計師,對自己的技能比較珍視,採用二分法,認為這些技術是好的,是靈丹妙藥,認為那些技術是壞的,是穿腸毒藥。尤其是產品技術方案沒有選擇他認為好的那個技術時,他會很長一段時間不能接受,但凡專案執行過程中遇到點兒不順,就會嘮叨:“要是當初選擇 XXX ,肯定沒這些問題”。類似的話,會不斷從他嘴裡說出來,迴圈往復,一詠三嘆,簡直讓人崩潰。

我能幹我不干我很忙

也許你遇見過這樣的隊友:分解任務時,說到哪個模組,都能頭頭是道,看起來沒有他不懂的,可是你讓他干時,哪個都不願意幹,老推說我已經 take 了多少少 task 。到最後,他基本上沒什麼 task ,還是很簡單的,但當你跟蹤進度時,他卻總是說遇到了這個問題,還得多長時間,遇到了那個問題,又得多長時間,你要幫他看看時,他又說不用自己能搞定。

未來戰士

未來戰士們對新的技術和工具特別熱衷,每個領域的前沿技術他都知道,都能說出個一二三,而且這些技術更迭時他也都知道,比辦公室裡的其他人都知道得早。對於那些新技術,一旦他和你說起來,就神采飛揚,唾沫星星子四濺,此時即便你有事兒都不好意思走開。

未來戰士所開發的軟體所使用的 SDK 、 工具 ,只要有新的版本出現,一定要更新。哪怕是昨天剛剛更新過,今天也要更新。你不讓他更新他就坐立不安,一定要來說服你,新版本有千般好,舊版本效能差、漏洞多、使用不便、編譯緩慢等等問題都會被他找出來。

未來戰士的哲學思想非常明確:新的就是好的。

石器時代的守護神

與未來戰士相反,另有一些程式設計師,對自己掌握的技術、對既有產品所採用的技術堅定不移的維護,你要想讓他把軟體依賴的框架版本升級一下,那是比登天還難:Run得好好的,為毛要升級?用現在的版本可以應付一切!

石器時代的守護神具有很強的韌性和對抗一切新技術的定力,只要舊系統還可以用,他就可以曠日持久的堅持、維護下去,因為他們的原則就是:只要將就能用,不到萬不得已一定不要去更新,因為任何新的技術新的改動新的設計新的重構都是怪獸,不知道會帶來多大的破壞。

老子不需要幫助

見過沒?有的程式設計師就愛自己搞,就算是我被一個問題絆住,吭哧吭哧搞上一星期還搞不出來,你也別想幫助我!他們的信條是:老子能搞定,老子不需要幫助。

這種型別的程式設計師特別敏感,特別害怕別人瞧不起他,當然有時也有些自卑、多疑,擔心別人的幫助裡夾帶著嘲笑,他們的敏感、多疑、驕傲、自卑等等複雜情感驅使他們拒絕接受別人的幫助,也驅使他們忘記時間盒的存在。

快來幫幫我吧

嘿嘿,這種型別的程式設計師,最愛說的就是:哎呀搞不定了,誰來幫幫我。

只要你一幫他,這活兒就成你的了,他們會讓你覺得幫人不到底你好意思嗎你,還會讓你覺得送佛不到西天就是你的罪過……我天,他們遇到問題都不想的,直接拉你過來調程式碼。

他們是“老子不需要幫助”的反面。

別讓我讀程式碼,我是文盲

我懂得一門語言的所有語法,關鍵字認得,控制結構懂得,繼承知道,多型瞭解,設計模式我也清楚,可你別讓我看程式碼,看不懂,真心不懂。

這也是一類程式設計師,他們能夠了解程式語言的所有語法和細節,可就是看不懂別人的程式碼。

精雕細琢的藝術家

咦,這裡該不該斷行?

程式碼編輯器裡,到底這種字型好看還是那種字型好看?

這裡的條件判斷,到底是三層 IF 語句巢狀好還是三個 IF-RETURN 好?

……

這些藝術家們把程式碼當作一門藝術,從編輯器開始打磨,一直到每一行程式碼到底多少個字符合適,花括號是放在行尾還是行首……都要仔細斟酌研究。對他們來講:美觀是高於一切的。

孤獨的人

有些人選擇軟體開發,就是因為:再也不用和別人打交道了。

所以,他們會迴避任何與別人交流的機會,談話、電話、郵件、即時通訊、微信……總之,他們理想的工作環境裡只有程式碼沒有人類。與同事或客戶溝通,對他們來講是巨大的負擔,感覺說一句話就會耗費他們一輩子力氣。

———–回顧分割線——————-

相關推薦

漫談程式設計師系列千奇百怪程式設計師

幹開發時間長了,遇見好多好玩兒的程式設計師。 看看你躺槍了沒。 留一手 有個哥們兒,在一合資公司做程式設計師,能力挺強,寫程式碼很神的。 他的程式碼我看過,深得 MFC 的精髓:大量的巨集,很多函式就兩三個巨集,一個BEGIN_XXX,一個END_XXX,中間再夾

漫談程式設計師系列那些害死程式設計師的細節

    這次,我們不談權術,不談潛規則,不談技術,不談理想,咱們就來說說那些害死人不償命的工作細節。姍姍來遲    遲到是件小事兒,是吧。    很多人都這麼想,我上學時也渾不在意這個問題,80%的課連去都不去。    可這真是大事兒,天大的事兒。    遲到,首先反應的是你

漫談程式設計師系列請區別對待女程式設計師

寫下這個標題,真有點擔心被罵“作死”,戰戰兢兢如履薄冰……不過,如果你打算拍死我,請:冷靜三秒先!根據統計,在程式設計師這個群體中,大概有 20% 左右的女性。很不少了吧,也許有些阿猿說沒見身邊有幾個女人幹開發啊,哦,我要說,那一定有些阿猿身邊奼紫嫣紅。不扯了,咱們討論正題兒

漫談程式設計師系列無BUG不生活

    我決定談一談世界上最著名的蟲子:BUG !    BUG 困擾了一代又代的程式設計師,不論是傑出的電腦科學家,還是像 Linus Torvalds(Linux核心創始人) 、Bill Joy(傳說三天寫出BSD的前身,vi和csh的作者)等神一樣的傳說,抑或你我芸芸程

漫談程式設計師系列3D列印能打印出程式猿嗎

首先宣告,本文是一本正經的胡扯,絕不是隨隨便便的胡扯,請您不要隨便攻擊我胡說八道,我要重複星爺在《喜劇之王》裡的臺詞:其實,我是一本正經的噴子。 3D列印的定義 關於3D列印,下面是來自百度百科的解釋:     “ 3D列印,即快速成型技術的一種,它是一種以數字模型

漫談程式設計師系列群星閃耀的黃金時代

X電總局在2014年年中突然發飆了,把七家牌照商痛打了一頓,後來又把視訊網站往死裡玩兒了一把,大大過了幾把官僚癮。這時候我忽然想到豪傑超級解霸,那可是98年上大學時的最愛,當時學校還沒有網際網路,東洋和香港的誘惑很大,一群光棍的看碟需求很強烈,超級解霸啊,視訊播放江

漫談程式設計師系列程式設計師零門檻?

六個小故事,一一來看。 博主從技術支援轉做開發 2005年3月份我決定辭去技術支援工作,轉行做軟體開發。大學時我曾經學習過PASCAL這種程式語言,但和程控交換機打了幾年交道之後,PASCAL早已灰飛煙滅,渣都找不到了,而且我孤陋寡聞,也沒聽說哪個軟體公司用PASC

漫談程式設計師系列怎樣成為技術達人

作為程式設計師,身邊總是有牛逼的前輩、後輩或者同輩。牛逼的人總是讓人羨慕。比如自己苦搞一天的 BUG ,頭髮快抓掉完了,人家掃上兩眼,改一行程式碼,問題就解決了;比如自己幹了十年開發,薪水還不到 10K ,人家才畢業就簽了 16K 的合同;比如我要天天辛苦加班工作還

漫談程式設計師系列一個老程式設計師的2014年終總結

人生天地之間,若白駒過隙,忽然而已。驀然回首,頭上似霜雪,臉上似山川。我的 2014 啊,你就這麼毫無眷戀地離我而去了。既然往事已不可追,未來尚未到來,在這年末歲首的間隙,就讓我來回憶一下餘煙尚存的 2014 吧。 2014 年,對我而言,發生了很多事,不管怎樣,我

漫談程式設計師系列誰是為加班而生的

有一個問題經常在面試的時候被問到:對於加班,你怎麼看? 大家都知道 IT 行業加班很多,不加班的公司風毛麟角。很多公司都是加班出了名的,比如X為,X米……還有很多公司的老闆認為自己的公司之所以業績不行,就是自己的員工不能像別的公司那樣加班……切,這都什麼邏輯! 你

漫談程式設計師系列找工作的辟邪劍譜

我原來面試過一個哥們兒,半年內換了七家公司,我表示膜拜。 還有一些哥們兒,七年不換工作。這得是多穩定的工作啊,七年之癢都扛過去了,真心不錯。 這都是極端,一般的程式設計師,可能會一年半載或者三兩年換一次工作。在一個公司幹上老多年老多年的程式設計師,不是成了大牛公司

漫談程式設計師系列軟體開發的十八般樂趣

有人說我在傳遞負能量,看了我的“漫談程式設計師系列”感到了前所未有的彷徨與迷惘,哇哦,這不是我的初衷,我只是給你看真實的世界,真的勇士,敢於直面慘淡的人生與淋漓的鮮血。 有人說我在黑程式設計師,好吧,我是不憚以最壞的惡意來揣測別人的,是嗎?當然不是,我胸懷一顆善良慈

漫談程式設計師系列程式設計師到底是什麼角色

先講個生活小插曲兒…… 瓦工 房客打電話給我,說衛生間漏水,把樓下的客廳都洇溼了,老先生找上門來了。這還了得,趕緊處理吧。我找了人拆掉了浴缸,砸掉了地板,買了東方雨虹的防水塗料,自己做了防水,閉水試驗,剩下就是貼瓷磚了。貼磚是個技術活兒,很專業,我是程式設計師,雖

漫談程式設計師系列別說“我已經很努力了”

我們程式設計師的努力與掙扎有時非常尷尬,如果沒有結果,都是徒然,都是說不得說不得…… 我自己做專案經理時,乾的專案也經常延期……非常慚愧。而延期其實對研發團隊成員、產品線、市場、銷售、公司領導、客戶、使用者都是一種折磨。對其它人的折磨這裡就不說了,誰被虐誰知道,至

漫談程式設計師系列程式設計師該不該考慮初創公司

    IT 這個行業,最不缺的就是機會,追逐機會的,有各種各樣的小公司,也有各種種樣的程式設計師。 創業公司 每一個出來創業的人,心中都充滿了希望和夢想,而且認為自己眼光獨到,手段高超,一定能夠逐浪潮頭。 可是,創業成功的概率到底有多大?十分之一,還是百分之一? 熙熙攘攘的創業大軍,在網際網路的江湖裡

漫談程式設計師系列程式設計師的生活就這樣嗎

我當了快十年程式設計師了,終於老得可以來談談程式設計師的生活是什麼樣子了。 或許陳奕迅的《十年》中的一段歌詞,可以表示很多程式設計師和軟體開發之間的感情糾葛: “ 十年之前 我不認識你 你不屬於我 我們還是一樣 陪在一個陌生人左右 走過漸漸熟悉的街頭 十年之後 我們

漫談程式設計師系列看看你離優秀有多遠

前段時間(大概是8月份吧)我終於拿到了駕照,科目一、科目二、科目三、科目四都是一次性過的,沒有給教練塞錢也沒有給教練遞煙。考科目三(路考)時,有個女生沒能通過還被陪考員諷刺,傷心地哭了,梨花帶雨讓人心疼。同行的還有兩個學員考了三次都沒過。媳婦的同事聽說我什麼致禮的事

漫談程式設計師系列受刺激啦,開篇啦

今天我媳婦給我說,樓上鄰居投了家every day便利,快回本了,買了個商鋪,租給賣床上用品的啦,人家夫婦倆也是做軟體開發的,這頭腦這眼光!我媳婦做測試,我做開發,我媳婦說她受刺激了,我按捺住蹦蹦跳的小心臟,QQ上對她說,要淡定,擺正心態。 女兒在幼兒園的小夥伴的爸

招聘靠譜程式設計師系列1 程式碼風格優化與糾錯

問:風格糾錯 答: 使用NS_ENUM而不是C語言型別的列舉enum typedef NS_ENUM(NSInteget, XBYGender) { //使用gender比sex正式 XBYGenderMan, XBYGenderWo

招聘靠譜程式設計師系列2 什麼情況使用 weak 關鍵字,相比 assign 有什麼不同?

答: 1、什麼情況下使用weak: a、在ARC中修飾代理 b、使用@IBOutlet連線控制元件 c、當block會造成迴圈引用 2、與assign的不同 assign可以用於非物件型別,而weak必須用於物件型別 參考資料: 1、區別