1. <tt id="5hhch"><source id="5hhch"></source></tt>
    1. <xmp id="5hhch"></xmp>

  2. <xmp id="5hhch"><rt id="5hhch"></rt></xmp>

    <rp id="5hhch"></rp>
        <dfn id="5hhch"></dfn>

      1. 程序員的心理疾病

        時間:2020-11-06 13:02:42 心理疾病 我要投稿

        程序員的心理疾病

          由于程序員工作的性質,他們長期以來受到的所謂“黑客”式的“熏陶”,形成了一種行業性的心理疾病;剂诉@種病的人對于很多新入行的人,甚至一些外行人士造成了持續的傷害。慢慢的,這些不幸的受害者也形成了“條件反射”,進而成為了這個心理變態的系統的一部分,導致越來越多的人,越來越快的變成“怪胎”。這是一件可怕的事情,所以我覺得有必要警醒一下。

        程序員的心理疾病

          這里我就簡單的把我所觀察到的一些癥狀總結一下,希望作為對于 IT 業界人士的警示,有則改之,無則加勉。也希望為遇到類似問題的新手和外行人士提供一些精神上的支持,以免他們也成為這個系統的一部分。

          無自知之明

          由于程序員的工作最近幾年比較容易找,工資還不錯,所以很多程序員往往只看到自己的肚臍眼,看不到自己在整個社會里的位置其實并不是那么的關鍵和重要。很多程序員除了自己會的那點東西,幾乎對其它領域和事情完全不感興趣,看不起其他人。這就是為什么我的前同事 TJ 作為一個資深的天體物理學家,在一個軟件公司里面那么卑微。貌似會寫點 node.js,iOS 軟件的人都可以對他趾高氣昂的樣子,而其實這些東西的價值哪里可能跟 TJ 知道的物理知識相提并論。很多科學家其實都可以輕而易舉的掌握程序員知道的那點東西,有人卻認定了他們不是這個專業的,不懂我們的東西,或者故意把問題搞復雜,讓他們弄不明白。

          COBOL 在那么靠前的位置我覺得是用來搞笑的,不過你大致看到了很多 IT 技術在真正的科學家眼里的價值和它們的有效期。

          如果力學工程師犯了錯誤,飛機會墜毀;如果結構工程師犯了錯誤,大橋會垮塌;可是如果軟件工程師犯了錯誤,大不了網站掛掉一小時,重啟一下貌似又好了。所以所謂“軟件工程師”,由于門檻太低,他們的工作嚴謹程度,其實是沒法和力學工程,結構工程等真正的工程師相提并論的。實際上“軟件工程”這個名詞根本就是扯淡的,軟件工程師也不能被叫做“工程師”。跟其他的工程不一樣,軟件工程并不是建立在科學的基礎上的—計算機科學其實不是科學。

          垃圾當寶貝

          按照 Dijkstra 的說法,“軟件工程”是窮途末路的領域,因為它的目標是:如果我不會寫程序的話,怎么樣才能寫出程序?

          為了達到這個愚蠢的目的,很多人開始兜售各種像減肥藥一樣的東西。面向對象方法,軟件“重用”,設計模式,關系式數據庫,NoSQL,大數據…… 沒完沒了。只要是有錢人發布的東西,神馬垃圾都能被吹捧上天。Facebook 給 PHP 做了個編譯器,可以編譯成 C++,還做了個 VM,多么了不起啊!其實那種東西就是我們在 Indiana 第一堂課就寫過的,只不過我們是把比 PHP 好很多的語言翻譯成 C。我們根本不想給 PHP 那么垃圾的語言做什么編譯器,讓垃圾繼續存活下去并不能證明我們的價值。

          其實軟件里面有少數永恒的珍寶,可惜很少有人理解和尊重它們的價值。這在其它的工程領域看來是不可思議的,然而這卻是事實。由于沒有科學作為理論的基礎,沒有實驗作為檢驗它們的標準,軟件行業的很多東西就像現代藝術一樣,丑陋無比的垃圾還能擺在外表堂皇的“現代藝術博物館”里面,被人當成傳世大作一樣膜拜。

          為了凸顯自己根本不存在的價值,又提出一些新的“理念”,就像有些現代藝術家一樣,說“藝術的目的不是為了美,而是為了自由。”哦,這就是為什么你們可以自由地把那些讓人反胃的東西放在博物館里,還要買門票才能參觀?

          宗教斗爭

          當然了因為沒有實質的技術,為了爭奪市場和利益,各種軟件的理念就開始互相傾軋。一會兒說軟件危機啦,面向對象方法來拯救你們!一會兒又提出設計模式。過了一會兒又有人說這些設計模式里面有些模式是“反模式”,然后又有人把函數式編程包裝起來,說是面向對象編程的克星,一會兒是關系式數據庫,一會兒是 NoSQL,一會兒是 web,一會兒是 cloud,一會兒又是 mobile…… 每個東西都喜歡把自己說成是未來的希望。

          這就是為什么有人說在軟件行業里需要不停地“學習”,因為不斷地有人為了制造新的理念而制造新的理念。在這樣一個行業里,你會很難找到一個只把程序語言或者技術當成是工具的人。如果有人問你對某個語言或者技術的評價,是非常尷尬甚至危險的事情,所以最可靠的辦法就是不做評論,什么都不要說。

          引難為豪

          在 IT 行業里批評一個技術難用,是一件非常容易傷自尊的'事情,因為立馬會有人噼里啪啦打出一些稀奇古怪的命令或者一大篇代碼,說:就是這么簡單!然后你就發現,這些人完全不明白什么叫做設計,他們以自己能用最快的速度繞過各種前人的設計失誤為豪,很多程序員甚至以自己打字快為豪。

          往往也就是這些自詡打字快的人喜歡使用過度復雜的方法來解決問題。我可以告訴你,我打字的速度是相當之慢的。我大量的使用鼠標,方向鍵,而且把 Emacs 里最常用的功能都盡量綁到 F 功能鍵上,這樣我就可以用一個指頭啟動一個功能。Dan Friedman 的打字速度就更慢,而且他經常故意使用“一指禪”。為什么呢?因為我們寫出來的代碼非常精辟,幾乎不帶多余的垃圾,所以根本不需要打很快。

          當遇到這樣引難為豪的人,我的經驗是,千萬不要恭維他們。你必須嘲笑這些東西的設計,并且指出它們的失誤之處,否則你不但助長了這些人的氣焰,讓這種風氣繼續延續下去,而且將來自己的自尊也難保了。很可惜,并不是每個人都有這種勇氣把這些話說出來,這就造成了今天的局面,紛繁復雜的垃圾充斥著世界。

          愛因斯坦說,你需要很多的天才和非常大的勇氣,才能追求到簡單。非常大的勇氣…… 也許就是這個意思。

          不知從什么時候開始,人們開始引用 Eric Raymond 的一篇叫做《提問的藝術》的文章,這篇文章后來就成為了對提問者沒禮貌的借口。由于這篇文章的誤導,當你希望同事能給你一個手把手的演示的時候,他們往往會丟給你一篇不知道什么時候寫的文檔,讓你自己去讀,仿佛文檔就可以代替人之間的直接互動。況且不說這文檔可能已經過時,里面有很多地方已經不符合最新的設計,而這意味著在潛意識里,他們覺得高你一等。

          對于這種現象有一個專門的詞匯,叫做 RTFM(Read The Fucking Manual):

          在 IRC 的聊天室里,由于隔著網絡的屏障,這種對提問者沒禮貌的現象就更加囂張。我曾經有幾次去 Java 的聊天室問一些貌似基礎,而其實很深入的語言設計問題,結果沒有一次不是以收到像“去讀 API!”這樣的回答而結束。API 誰不會讀,然而我需要的是一個有血有肉的人對此的理解。所以后來我根本不去 IRC 這種地方了,因為那里面對你打字的基本上已經不是人類了。他們覺得你問問題浪費了他們的時間,好像他們一天到晚泡在 IRC 里面就是在做什么正事似的。不想回答問題,不開口還不行嗎。后來你發現,原來在 IRC 里面訓斥新手就是這些人唯一的樂趣,所以其實他們是非開口說話不可的。然而這次他們遇到的卻不是個新手,而是一個可以把 Java 整個造出來的人。

          像 Haskell 之類的聊天室貌似稍微友好一點,然而后來你發現他們顯得友好是有所企圖的。因為當時 Haskell 還沒有很多人用,他們需要吸引新手,所以竭盡所能的誘導他們。而一旦它用戶稍微多了一點,有聲勢了,就有人開始居高臨下,成為專家一樣的人物。他們就開始寫書,然后就開始牛氣哄哄的了。然后你就會發現當對 Haskell 的設計提出異議的時候,這些“id”們是多么的不友好,有理也說不清。所以最后你發現,其實所有語言的所謂“社區”都一個德行。如果 Haskell 有一天像 Java 一樣如日中天(當然不大可能),肯定對大部分問題的答案也就是“去讀API!”其實它已經在向這一步發展了。

          不得不指出,《提問的藝術》等介紹“黑客文化”的文章對于這種現象的出現有著極大的責任。說穿了,寫這些文章的人一般都是 Unix 的跟屁蟲。這種文章試圖抹去人類文明幾千年來傳承的文化,而重新給“禮貌”做出定義。其結果是,人類的文明因為這些文章,在程序員的世界里倒退了幾十甚至幾百年。很多外行人人不喜歡跟程序員說話,叫他們是 nerd,就是這個原因。

          不要提問,不要謙虛,不要恭維

          跟上面的癥狀相似,程序員世界里的一條重要的潛規則是:只有菜鳥才會問問題。所以如果你有任何機會可以自己得到答案,就不要試圖向人“請教”,尤其不要顯得好奇,否則你就會被認為是菜鳥。我有幾次不恥下問的經歷,最后導致了我被人當成菜鳥。我只是覺得那問題有趣,也許能夠啟發我設計自己的東西,所以吃飯時覺得是個話題可以說一下,結果呢就有人忙著鄙視你,那么小的問題都沒搞清楚。正確的態度應該是誠實,直接,見慣不驚,那有什么大不了的,我什么沒見過,我很懷疑。

          隨之而來的引論就是:不要謙虛!那些“職場經驗”之類的文章告訴你的進入新的公司工作,要謙虛好問,對 IT 公司是不管用的。有的大 IT 公司有所謂的“文化”,比如叫你要“humble”,其實只是用來貶低你價值的借口。他們只是想讓你安于“本分”,做一些微不足道,不能發揮你才能的工作?纯茨切┙心阋 humble 的人,他們 humble 嗎?所以跟江湖一樣,在 IT 公司里面一件很重要的事情是,亮出自己的寶劍和絕招,給人下馬威。介紹自己的東西一定要自豪,這就是世界上最好的,無敵的,沒有其他人能做到!不能有任何保留。不要像科學家一樣介紹自己技術的局限性,否則隨之而來的就是有些人對你價值的懷疑和對你自信心的打擊。

          另外要注意的是對于別人介紹的東西,不要輕易地表揚或者點頭,否則有人就更有氣勢了。你要問這樣的問題:這里面有什么新的東西嗎?這個事情,另外一種技術早就能做了啊,沒覺得有什么了不起。

          以語言取人

          你的軟件是什么語言寫的,告訴別人的時候是千萬要小心的,不到萬不得已最好不要說。因為十有八九,對方會立即在心里對你的軟件的價值做出判斷,光憑你用的是什么語言。

          很多程序員都以自己會用最近流行的一些新語言為豪,以為有了它們自己就成了更好的程序員。他們看不到,用新的語言并不能讓他們成為更好的程序員。其實最厲害的程序員無論用什么語言都能寫出很好的代碼。在他們的頭腦里其實只有一種很簡單的語言,他們首先用這種語言把問題建模出來,然后根據實際需要“翻譯”成最后的代碼。這種在頭腦里的建模過程的價值,是很難用他最后用語言的優劣來衡量的。

          有時候高明的程序員用一個語言并不是因為他只會用那種語言,而是其他的原因。他們的頭腦里有著萬變不離其宗的理念,可以讓他們立即掌握幾乎任何語言或者工具,所以他們對所謂的“新語言”都不以為然?墒呛芏嗳苏`以為他們不愿意學習“新東西”,從而從心里鄙視他們。其實計算機的世界里哪里有很多新的東西,只不過是有人給同樣的東西起了很多不同的名字而已。如果連這樣的程序員都不能理解你的技術,就說明你的技術設計有問題,而不是他們有問題。就像 Seymour Cray 說的,我只能理解簡單的東西,如果它太復雜了,我是不能理解的。

          早些年的時候,大家都認為招募某種特定語言的程序員是一種浮淺的做法,很多公司看重的都是解決問題的能力?墒墙┠晡野l現這些浮淺的做法越來越普遍?梢哉f現在像 Google 這樣的公司面試員工的方式和態度,其實還不如八年前我的第一份國內工作。而這種現象在使用 Python,Ruby,JavaScript 等“流行語言”的公司里就更為普遍。

          跟屁蟲

          有些程序員對新手和同事是那么的不友好,然而對大牛們拍馬屁的功夫可真是出類拔萃。我剛到舊金山的幾個月有時候參加一些程序語言的“meetup”,后來我發現這種 meetup 都是宗教氣氛非常濃厚的地方,跟傳銷大會差不多。Scala 的 meetup 里面的人幾乎全都對 Scala 和 Martin Odersky 頂禮膜拜,甚至把 Rod Johnson 請來說一堆胡話。Clojure 的,當然基本上把 Rich Hickey 當成神,甚至稱他為“二十一世紀最重要的思想家之一”。各種 talk 總是宣揚,哇,我們用 Scala/Clojure 做出了多么了不起的東西云云,其實只不過是在向你兜售減肥藥。

          很多人喜歡做這些新的語言和技術的“evangelist”,盡顯各種馬屁神功,然后就開始寫書,寫 blog,…… 目的就是成為這個“領域”的第一批專家。這就難怪了,再垃圾的語言也有一大批人來鼓吹。因為這些沒真本事的人,隨便把一個東西捧上天都有自己的好處。

          由于受到這些“先知”的影響,有些人開始在他們自己的公司里“布道”。比如有人在 Python 的 meetup 集會時告訴我,他試圖在自己的小組里推 Python,可是一些老頑固一定要用 Java,認為 Java 才是王道。很鄙夷不高興的樣子。我并不認為 Java 是很好的語言,然而 Python 也好不到哪去。它們在我眼里只不過是臨時拿來用一下的工具,可是我仍然能用它們寫出一流的代碼。

          看到這些宗教性質的聚會,我終于理解了一些地區是如何被從一個國家分裂出去,最后淪落為另外一個國家殖民地的。最早的時候,一般是派傳教士過去“傳經”,然后就煽動一小部分人起來造反。到后來就可以名正言順的以“保護傳教士”,“保護宗教自由”,“維持和平”等理由把軍艦開到別人家門口……

        【程序員的心理疾病】相關文章:

        留守兒童的心理疾病07-16

        怎樣正確的對待心理疾病11-21

        關于兒童常見的心理疾病07-20

        兒童的心理疾病及其判斷07-14

        兒童的心理疾病有哪些07-02

        兒童最常見的心理疾病06-30

        心理疾病會有哪些癥狀10-14

        兒童的重大心理疾病是什么07-30

        兒童的心理疾病有哪些危害07-21

        兒童心理疾病的測驗07-16

        国产高潮无套免费视频_久久九九兔免费精品6_99精品热6080YY久久_国产91久久久久久无码

        1. <tt id="5hhch"><source id="5hhch"></source></tt>
          1. <xmp id="5hhch"></xmp>

        2. <xmp id="5hhch"><rt id="5hhch"></rt></xmp>

          <rp id="5hhch"></rp>
              <dfn id="5hhch"></dfn>