沒人比程式設計師更討厭軟體
幾個月前,我們買了一臺新的數位相機,為的是更好地記錄我們家小寶貝的成長過程。採購的事情由我太太負責。她小心地開啟相機的包裝盒,給相機裝上電池,然後就開始了首次試拍。像很多電子產品一樣,隨相機附送的還有一張軟體光碟。於是,她不假思索地開啟DVD光碟機,然後把光碟放了進去。
我眼角的餘光碰巧注意到了這一切。說時遲,那時快,我瘋了似的從房間的另一頭衝過去,同時大叫:“不……要……啊……”——我不顧一切地試圖阻止她從那張光碟上安裝軟體(為了更好地理解當時的情景,你可以以誇張的慢動作來想象一下整個過程)。還好,她停住了,但我也幾乎驚走了一隻貓。
隨數位相機附送的軟體其實沒啥問題。但真是這樣嗎?
- 這個軟體可能是不必要的。任何現代的作業系統(甚至是Windows XP)都能瀏覽並且自動下載一臺新數位相機裡的照片。不需要什麼特別的軟體。但為了增加“價值”、與競爭對手形成差異化,相機公司的某些高管草率地採取了捆綁軟體的策略——隨機附帶一款具有一堆古怪而獨特功能的軟體——這種做法是應被質疑的。
- 硬體公司通常不擅長做軟體。數位相機公司玩得好的是硬體製作,而軟體呢,充其量是事後才想起來要做的事,只是一件附屬品,在銷售人員眼裡也不過是錦上添花的玩意兒。
- 不明來源的軟體很可能是由爛程式設計師開發出來的。拋開別的不說,你即將安裝的這款無名軟體,它有用而且使用者體驗良好的概率是很低的。
不幸的是,選擇以軟體開發作為自己的職業有很多副作用,其中之一便是,久而久之,你會變得厭惡軟體。我說的是真正的厭惡!一種強烈的厭惡之情!想象一下你碰到過的最憤怒的使用者,把他的情緒乘以1000倍也抵不過我們程式設計師對軟體的感受。沒人比程式設計師更討厭軟體。甚至此時此刻,我在說這個事的時候都感覺到自己的憤怒。
把開發軟體作為職業的人會有這種態度,這難道不奇怪嗎?我們每天寫著程式碼,因此還得到報酬,怎麼還能有怨恨呢?
David Parnas在一次採訪中這麼解釋道:
問:在軟體工程中,最常被忽視的風險是什麼?
答:無能的程式設計師。有人估計,美國需要超過20萬名程式設計師。這完全是誤導!這不是數量的問題,而是質量問題。一個爛程式設計師在一年裡可以輕易創造兩個新的就業機會。僱用更多的爛程式設計師,只會加大我們對他們的需要。而如果我們有更多優秀的程式設計師,並且能夠讓他們脫穎而出,我們對於程式設計師的需求就會變少,而不是更多。
我怎麼如此肯定這世界到處都是無能的程式設計師呢?因為我就是其中之一。
我們都在香腸加工廠幹過活,因此我們知道那玩意兒是怎麼做出來的。這事不光彩!大多數軟體都是像我們這樣的爛程式設計師(有的比我們更爛)開發出來的。這意味著,大多數軟體都是爛貨。ScottBerkun曾經寫過一篇文章,題為“Why Software Sucks”(為什麼軟體叫人失望)。文中提到:
當人們說“這東西真爛”,他們的意思是下面的一條或幾條:
- 它非我所需;
- 我不知所措;
- 它沒必要這麼複雜難用;
- 它故障頻出;
- 它醜陋得讓人作嘔;
- 它與我的世界觀不相符;
- 它把我的精力浪費在工具上,而我更應該專注於我的工作。
你覺得與那臺數位相機捆綁的軟體符合上述幾條?我猜全部命中。這也是為什麼說,最好別用軟體。如若不然,你也要儘可能少用軟體,甚至於,只用那些有著良好聲譽的確實可靠的軟體。
我不喜歡安裝新軟體。恰恰相反,我對這事很恐懼!
我來講一個自己做了很多次的噩夢吧。在夢裡,我坐在一臺電腦面前。這臺機器啟動了,跑的是我自己開發的作業系統。然後,我開啟一個網路瀏覽器,它也是完完全全由我自己開發的。我訪問了一個網站,這個網站也是我自己搭建的。我在頁面上剛一點,結果藍屏了。藍屏程式本身也藍屏了,就這樣一發不可收拾,引起了一場大爆炸,把整個街區都毀了。
這個夢還算好的。更糟的時候只有尖叫。周圍一片漆黑。
總之,我討厭軟體。我討厭絕大部分軟體,尤其是我自己的,因為我知道做好一個軟體有多難!這聽起來有些奇怪,但對於軟體開發者來說,這卻是一種自然而健康的態度。你會發現,這是所有有能力的程式設計師的共識,也是成長的必經之路。
實際上,在面試的過程中,我覺得只要用一個簡單的問題,就能判斷出一個軟體開發者是否有能力:“近期你見過的最糟糕的程式碼是什麼?”
如果他們沒有毫不猶豫地回答說“我自己的”,那麼你應該立即中止面試。朋友,對不住啦,你對軟體討厭得還不夠!過幾年再來吧,如果那時候你還在當程式設計師……
相關文章
- 為何程式設計師討厭運維平臺?程式設計師運維
- 為什麼高階程式設計師討厭程式設計面試? - Adam程式設計師面試
- 程式設計師為什麼討厭這些語言程式設計師
- 程式設計師最討厭的9句話,你可有補充?程式設計師
- [譯] 為什麼設計師討厭政治(如何解決)
- 程式猿討厭沒有價值的任務
- 為什麼程式設計師會有最喜歡與最討厭的程式語言?(earthly)程式設計師
- 我不討厭JS,只是更愛CSSJSCSS
- VNote:一個更懂程式設計師和 Markdown 的筆記軟體程式設計師筆記
- 硬體程式設計師和軟體開發程式設計師相比,哪一個就業發展前景比較好呢?程式設計師就業
- 大齡程式設計師沒競爭力?職場中這些程式設計師更容易走上管理崗!程式設計師
- 女程式設計師,為什麼比男程式設計師少???程式設計師
- 為什麼人們都討厭開會?
- 軟體設計師:UML
- 軟體設計師:程式設計語言基礎知識程式設計
- 幽默:程式設計師與軟體工程師的區別程式設計師軟體工程工程師
- 37歲老程式設計師8點下班被同事嘲諷:公司寄生蟲,網友:討厭奮鬥逼程式設計師
- 幽默圖:程式設計師在進入軟體專案前後的對比程式設計師
- 中國的頂級軟體程式設計工程師和歐美的頂級軟體程式設計工程師差距有多大?程式設計工程師
- 程式設計師該怎麼“討好”上級程式設計師
- 同樣是程式設計師,為什麼別人比你更優秀?程式設計師
- 軟考資料-軟體設計師
- 程式設計師常見軟體下載連結程式設計師
- 最適合程式設計師的筆記軟體程式設計師筆記
- 如何讓程式設計師變得沒朋友程式設計師
- 軟體設計師:演算法演算法
- @程式設計師:2019 年軟體開發新趨勢程式設計師
- 如果今天沒有API介面,今天的程式設計師如何程式設計?API程式設計師
- 軟體設計師:軟體工程基礎知識軟體工程
- 『程式設計師必備軟體』—— 短小精悍的GIF錄製軟體LICEcap程式設計師
- 軟體設計師:計算機網路計算機網路
- 3個每個人都討厭的Java實踐 - MilošJava
- 程式設計師小白的個人思考程式設計師
- 程式設計師到底有沒有必要考研程式設計師
- 程式設計師到底有沒有女朋友?程式設計師
- 程式設計師到底要不要轉行軟體測試?程式設計師
- JAVA程式設計師換機必備軟體大盤點Java程式設計師
- 華瑞軟體學校|程式設計師行話大全:一句話證明你是程式設計師程式設計師
- 軟體設計師:資料結構資料結構