在日常工作里肯定會發(fā)現(xiàn)很多有趣的事情,極品程序員所做的事就是很有意思的。事實上,現(xiàn)在所討論的極品程序員主要是從他們的判斷力、行為舉止、個人態(tài)度和匪夷所思的工作方式上來判斷的,有的時候這些程序員一味的只是追求文檔上的內(nèi)容,而不擅于用分析方式來解決問題。
幾乎每一個軟件開發(fā)者多多少少都會出現(xiàn)頭腦短路的現(xiàn)象,也就是說,下面所列舉的各種極品程序員類型,總有一款是屬于你的。
1. 鐘愛型程序員:萬般寵愛集于一種技術
這種類型的程序員所遇到的致命錯誤就是:只鐘愛一種技術,對別的技術不來電。其實這不是什么值得表揚的優(yōu)點。因為這種程序員看上去就像是“天生注定愛上這種框架的程序員”,對于自己喜歡的技術可以說是放不開、丟不掉。甚至在生活里也是一個打破砂鍋問到底的人。
![](/d/20211017/c0c7ceaf84d799c1719ea35b631d16c4.gif)
不管問題是什么,他的回答總是跟他的性格類型脫不了關系:
“嘿,我們需要在Rails框架里實現(xiàn)一個內(nèi)容管理系統(tǒng),但是我們應該用哪一個數(shù)據(jù)庫呢?”——Mongo數(shù)據(jù)庫“多用戶博客呢?”——Mongo數(shù)據(jù)庫“關鍵業(yè)務一致性系統(tǒng)呢?”——Mongo數(shù)據(jù)庫“庫存管理系統(tǒng)?”——Mongo數(shù)據(jù)庫“電子病歷系統(tǒng)?”——Mongo數(shù)據(jù)庫“分布式數(shù)據(jù)倉庫?”——Mongo數(shù)據(jù)庫
鐘愛型的程序員在任何軟件開發(fā)項目里都會找出各種各樣的理由,也不管這些理由是否具有實際意義。但是,一旦你試圖反駁他的觀點或者是想法的時候,他們在感情上是無法接受的,即使你和他的關系特別好也是沒有用的。如果他知道自己的想法錯了,也不會告訴任何,而是更愿意在最后一秒的關鍵時刻偷偷的使用別人的正確方案。
2. 匠心型程序員:保守主義者,不到萬不得已不做修復
匠心型的程序員的目標是至高無上的:不考慮成本,盡一切可能保護系統(tǒng)的正常運行和系統(tǒng)的完整性。除此之外,這類程序員信奉一個很簡單的哲理,這個簡單的哲理也就是引領他們在軟件開發(fā)和管理實踐中的一個基本準則:只要還能將就使用,不到萬不得已千萬不要去修復。
![](/d/20211017/66f464b07f1883364933355b2db4c4d4.gif)
不管什么樣的軟件,只要是在奧術師的保護下,就一直是使用那個平臺、那個部署程序、那個數(shù)據(jù)庫還有那個永遠不會改變的操作系統(tǒng)。但是你不必擔心,因為匠師會一直盯著這些看上去老舊的組件,也許他不能贏得每一場戰(zhàn)斗,但是他一定會為了每一場戰(zhàn)斗而兇猛拼殺。
在匠師的世界觀里,過去也代表著未來。所以,他將會和那些想要升級他的1981年發(fā)布的的PASCAL代碼庫的人作戰(zhàn)到底,哪怕是淚流滿面。
3. 未來派程序員:趕潮人,追求最前沿的技術
未來派程序員可以說是奧術師程序員的對立面——今天就是未來,任何使用昨天的開發(fā)工具編寫的代碼在未來派眼里看來都是無與倫比的厭惡。他們的目標可不是什么哲理——追求最新最前沿的技術。
![](/d/20211017/e6fa369039998967b286ffc47aa5a6c3.gif)
如果你看到未來派程序員甩著鼻涕在你面前吹噓最近在Hacker News上看到關于JavaScript的最新消息而滔滔不絕的時候,你千萬不要驚訝,因為他們沒像是在Justin Bieber演唱會上那樣在你面前尖叫就已經(jīng)很照顧你了。即使有的時候在Microsoft Research or the Server and Tools Team發(fā)布新產(chǎn)品的時候,即使他們根本不理解那些產(chǎn)品的用途,也會顯得很熱情。
不過,需要提醒的是,如果你是一個未來派程序員,那么DevOps工程師,QA工程師和Release工程師這些職位是未來派程序員的天敵。
4. 信息囤積者型程序員:小心謹慎,不愿公布代碼
信息囤積者型程序員是一個很謹慎的人,但是對自身的謹慎行為充滿不確定性。他們生活在一個認知失調(diào)的世界里:對自己的工作感到自豪,但是需要幫助的時候又不愿意讓別人知道。
![](/d/20211017/6f727306bb62d275868c07a026598211.gif)
所以囤積者通常會隱藏代碼,不愿意公布代碼。小心翼翼地避免訪問記錄,更不愿意別人跟蹤他所做的一些修改記錄。他最大的恐懼就是遇到代碼合并沖突,因為這樣的暴露風險是最大的。
也許囤積者型的程序員很樂意告訴你他的工作是多么了不起,但是如果你想要知道他的代碼估計會很難。最終,信息囤積者型的程序員注定要失敗,這樣的做事行為不被別人接受,存在也是沒價值的。只希望在短期內(nèi)能有較好的改善。
5. 藝術家型程序員:質(zhì)量?>美觀?不可兼得
藝術家型程序員簡直就是囤積者和未來派程序員的表兄弟,藝術家型程序員會傾入所有的心思來構建完美的代碼行。此外,藝術家型程序員也是一個易動感情的人——他所創(chuàng)造出的軟件就是他感情的流露,也是他個人才華的生動化身。
![](/d/20211017/c60e6140cfd5c7f7d0a6e73c3e322b74.gif)
藝術家型程序員還會考慮這樣的問題:如果我使用的JavaScript里不添加分號的話,在語句上是不是更加漂亮呢?如果把這個塊包裝起來,是不是更加完美?他們最在乎的是美觀,其次才是質(zhì)量。
藝術家型程序員也不是這個行業(yè)所提倡的那種程序員,他們無法客觀的討論評價自己的作品,也無法定位自己在同事當中的位置。
6. 孤島型程序員:性格孤僻者,代碼就是一切
孤島型程序員是整個程序員行列里最孤獨的人,這樣的程序員在軟件創(chuàng)造方面有很多很大的欲望,但是他們的短板是不愿與人交往。孤島型程序員的理想工作條件是與外界交流最好是保持在最低限度,而且嚴格控制在他方便的時候。他的生活里只是代碼,沒有人類。
![](/d/20211017/afdabf400b8bcf322d733cb1af74f623.gif)
但不幸的是,現(xiàn)實和理想往往是有很大的區(qū)別的,但是這些程序員必須為了生存而去公司謀求工作,于是被迫與同事或客戶溝通,這對他們來說的確是一個巨大的負擔。所以他們只能躲避——躲避會議、躲避電話溝通、關閉郵件接收器等等。他們遇到問題的時候?qū)幵覆樵兩习偌椖课臋n也不愿意問自己的隊友。
和信息囤積者型程序員一樣,孤島型程序員注定要失敗。軟件開發(fā)就像是一項團隊運動,不接受那些不遵守規(guī)則的另類。
7. 敏捷型程序員:急功近利,常常半途而廢
敏捷型程序員是一個功利主義者,致力于需求改善軟件效率,以及個人和團隊的生產(chǎn)力。但不幸的是,他對“敏捷”哲理的理解和實施策略實在是呆板和僵化,不禁使人發(fā)笑。
![](/d/20211017/83f94aca6397c13d1611272dfb84591d.gif)
敏捷型程序員的初始意圖是很高尚的:改善軟件開發(fā)方式。這樣的程序員做起事情來是比較雷厲風行的,但是也有缺點:任何討論時間超過四小時的問題最后都會變成泡沫;任何在最后沖刺階段所做的項目基本上都會縮水。
另外值得注意的是,大部分敏捷型程序員都有一個通?。鹤悦环病T诔绦蜷_發(fā)過程當中,尤其是在選用一些小的組件的時候,堅持己見,導致網(wǎng)絡文件系統(tǒng)出現(xiàn)錯誤或者是驅(qū)動程序?qū)崿F(xiàn)效果不理想。
8. 文盲型程序員:編程入門者,功底淺薄
顧名思義,文盲型程序員在閱讀別人的源代碼的時候總是會遇到很多麻煩,有的時候基本上是看不懂別人的代碼。
![](/d/20211017/f8226413b951bdff9c088b5572f1313c.gif)
換句話說,文盲型程序員和孤島型程序員像是一對表兄弟,只對他們鐘愛的編程語言花時間去理解基本的編程結(jié)構,全面掌握編程語法,但是看到其他程序員所寫的代碼的時候,完全是一竅不通。在這種情況下,我們稱之為“code-blind”程序員。
當面對其他開發(fā)者問“你為什么不使用我們標準的接口來生成一個對話”的時候,文盲型程序員通常是盯著自己的腳尖然后是喃喃自語。
以上只是列舉了一部分類型的極品程序員案例,當然,極品并不代表不好,只要把這種極品特征合理應用,它就會成為你的特長。不知道你是不是一個極品程序員?
您可能感興趣的文章:- 關注程序員健康:程序最需要注意的幾件事
- 程序員的八種境界,你在哪一境?
- 程序員學英語的一個方法