程序員看世界容易形成哪些偏見?

尤其是專業教育開始早期就埋下的一些學科教育的狹隘性或者知識結構性缺陷造成的問題?就是有哪些拿著鎚子看什麼都像釘子,而實際不是這麼回事的情況?


毛病1: 一針見血毫不留情的指出別人的謬誤。比如這個問題就是典型的sterotype。


我不喜歡提問里的說法。

學科教育的狹隘性?知識的結構性缺陷造成問題?那麼請問,什麼是結構性缺陷?我們都從基礎教育過來,基礎學科中包含的物理、化學、語文之類的課程,我們一概不少。如果說是後來的專業分家導致的區別,那麼哪一個科目都有取捨,我們誰也不幹凈。

那麼究竟提問者質疑的是什麼?品性?世界觀?價值觀?好吧,我們就來一個個看看。

=== 品性?===
@王亞暉 答案中說 Perl 程序員的三大美德是:懶惰、缺乏耐心和自傲(Laziness, Impatience and Hubris)。這話是很流行,但實際上 Perl 之父 Larry Wall 曾經同樣提出,程序員美德的真實含義是:勤勉、耐心和謙恭。這篇事實上在黑客圈子裡同樣著名的文章,《勤勉、耐心和謙恭》,收錄於O"Reilly 的《開源軟體文集》中。看到了么?先生們女士們,你們未必真的看懂了程序員想說的話。

=== 世界觀?===
毫無疑問地,程序員的思維方式和藝術家可能很不同,至少文學家和畫家不會把如下的一段括弧套括弧的物事看作一種美,但 Lisp 程序員們則因為其用 Lisp 語法描述了 Lisp 的解釋過程而歡欣鼓舞。

(defun eval. (e a)
(cond
((atom e) (assoc. e a))
((atom (car e))
(cond
((eq (car e) "quote) (cadr e))
((eq (car e) "atom) (atom (eval. (cadr e) a)))
((eq (car e) "eq) (eq (eval. (cadr e) a)
(eval. (caddr e) a)))
((eq (car e) "car) (car (eval. (cadr e) a)))
((eq (car e) "cdr) (cdr (eval. (cadr e) a)))
((eq (car e) "cons) (cons (eval. (cadr e) a)
(eval. (caddr e) a)))
((eq (car e) "cond) (evcon. (cdr e) a))
("t (eval. (cons (assoc. (car e) a)
(cdr e))
a))))
((eq (caar e) "label)
(eval. (cons (caddar e) (cdr e))
(cons (list (cadar e) (car e)) a)))
((eq (caar e) "lambda)
(eval. (caddar e)
(append. (pair. (cadar e) (evlis. (cdr e) a))
a)))))

與此同時,程序員和藝術家們似乎又使用相同的概念,比如美感,比如品位,比如原創:

美感是第一道關卡,醜陋的數學在世界上無法生存。——哈代《一個數學家的道歉》

最近,我與一個在 MIT 教書的朋友交談。他的研究領域很熱門,每年申請他的研究生的人多得讓他應付不過來。「很多人看上去很聰明,」他說,「但是我不知道他們的品味如何」。

剛入門的新手不知不覺地模仿他人,逐漸熟練之後才開始創作原創性作品。最後他會意識到,把事情做對比原創性更重要。

上面這幾句引文都出自《黑客與畫家》第九章,設計者的品位。是不是我們在欺世盜名?作為工程師,程序員們對自己設計的程序結構有近乎狂熱的偏執:熱衷於不停地增刪修改,使得它們能夠完成看似簡單的循環輸出,也會為了重構還是重用爭論不休。也許在外人看來這麼干很無聊,但回頭看看作家們對自己的文章的字斟句酌,和建築家們在藍圖上的冥思苦想,還有畫家們對臨摹的耳提面命,我們不難發現,其實這兩撥人做的都是同樣的事情:我們都在為了自己心目中的完美形象而偏執。

=== 價值觀?===
有人說程序員不懂人情世故,可是也別忘了尼祿也曾經為了心目中的美火燒羅馬;有人說程序員不善言辭,可梵高在世時一樣以沉默寡言著稱。有人說程序員狂妄而傲慢,先生們女士們,請回憶一下我們可敬的奧斯卡·王爾德先生的名言:「The gods had given me almost everything. But I let myself be lured into long spells of senseless and sensual ease. I amused myself with being a FLANEUR, a dandy, a man of fashion. I surrounded myself with the smaller natures and the meaner minds. I became the spendthrift of my own genius, and to waste an eternal youth gave me a curious joy.」 這算恭謹謙和么?所以承認吧,程序員們的價值取向和藝術家們沒什麼不同。


這也不是,那也不是,那麼究竟程序員是一群吃了什麼葯的瘋子?好吧,是我們專註的專業的問題。程序的世界是一個基於實證的分析和推理的金字塔,只有相信下面這些信念的人才能最終堅持在程序的道路上走下去:

  1. 任何事物都是可以被認識和描述的。——請不要和我說「你不理解我」。
  2. 任何行為的背後都有邏輯在支撐。——請不要和我說「我就是突然這麼想到的」。
  3. 數學是描述客觀世界的最佳工具。——請不要和我說「這就是神的造物」。
  4. 理論上的完美不能代替實踐中的妥協。——請不要和我說「這就是我想的,它就是對的」。
  5. 對特定的問題總是存在最優的解法。——請不要和我說「不行了,我做不到了」。

如果連信念和偏見的關係和區別都說不清楚,那麼在評判一個人時幾乎必然產生誤解。更別說你在評論一個群體。

參考資料:

  • Paul Graham 的《黑客與畫家》。http://book.douban.com/subject/1236778/。豆瓣讀書上已經有電子版。
  • 《哥德爾、艾舍爾、巴赫書:集異璧之大成》。http://book.douban.com/subject/1291204/
  • 《深淵書簡》http://upword.com/wilde/de_profundis.html

強烈的bug思維,即頻繁且錯誤地使用「批判性思維」,吹毛求疵,自鳴得意,找出對方的bug,以期展示自己邏輯清晰,或者只是單單地證明,我比你聰明。


認為世界是完備的


手裡拿著鎚子,看什麼都是釘子。

手裡沒有鎚子,看什麼都像鎚子。


每個程序員都有一個自己的世界,這些性格不是別人教來的,是沉寂在自己的世界裡培養出來的,我的世界是Vim,你的世界是emacs,不同的世界看問題的方法自然不同了。


我覺得都是一樣的。技術人員的偏執,我覺得是很正常的事情。但其實偏執並不是一件好的事情。因為其實你一個人妄圖改變世界,結果往往是什麼也沒有改變。自己的下場還不太好。


總想著萬物都是二進位,事事都可黑。


覺得犯錯誤沒什麼大不了的,一切都是Debug的過程……
越來越感覺自己周圍的環境需要重構……
跟活的人打交道,人就會更有生氣;而程序員面對的只有電腦,容易變得死氣沉沉……
總覺得生活可以更好地實現,只是目前缺乏相應的介面……
希望做什麼事都一帆風順,一遇到麻煩就開始考慮是不是自己的全局思維出現了問題……
掌握了多門編程語言,卻再學不會另一門外語……

以上為本資淺程序員體會


程序員的特點是什麼?
是他們必須時刻與嚴格的環境(計算機)打交道,在這個環境里 是非對錯非常明確,也非常容易得到驗證。
而這些,都是與人類社會基本截然不同的。這也就決定了他們把工作思維帶到現實社會時,往往會碰壁。。。。

拿著鎚子看什麼都像釘子,倒不一定是程序員特有的,而是人性:習慣以最熟悉的工具解決問題。
這也做其實本身也沒錯:最熟悉,學習代價最低,上手效率才最高 。當然,如果工具與問題不是最恰當的,解決過程的效率會低。


我只想問這個問題本身難道不是一種偏見?


哈哈哈,一群不是猿類的工資少的逗比開始吐槽了.


喜歡用有限的那點編程思想解釋世界,把編程哲學當成真正的哲學,實際上跟其他不讀人文社科書籍的工科生一樣,偏科嚴重,缺乏通識教育,對人文社科的理解極為低幼。


喜歡從0開始查數


曾經有個同學說 世界是由0和1組成的


最可怕的是那種優越感吧.
覺得程序員在"邏輯"/"推理"/"抽象"等等方面比其他人強.強到非程序員好像都沒有左腦一樣.


認為世界是友善的,跟他說了這麼多年的Hello,也沒見回我一句~~~


題主我想起那個買西瓜的笑話了,真正程序員往往不是呆板固執,而是很靈活會搪塞,能對客戶跪舔,能跟同事吵架。


不是應該是萬物皆對象嗎,比如在路上突然看到生活中有什麼做起來麻煩,但是用程序比較好解決的問題,然後接下來的路就是邊想程序怎麼設計怎麼blablabla了。不知不覺就到家了。


程序員數數從0開始的.


推薦閱讀:

看不同類型的書,兩個人互相看不起對方看的書是不是人格缺陷?
缺少父愛的孩子性格上會有什麼特點?
你最大的性格缺陷是什麼?你是怎麼反省自己的?

TAG:程序員 | 教育 | 知識結構 | 偏見 | 缺陷 |