為什麼中國的程式設計師總被稱為碼農?

Web開發者發表於2014-12-28

  實際上IT行業在中國並不是特別差的行業,而程式設計師的工資也並不低,但為什麼中國的程式設計師總被稱作碼農或者說是苦逼的程式設計師?中國的程式設計師生活和歐美的有什麼不一樣?

  下面是來自知乎網上各位大牛的看法。讓我們來一起看下!

  一位叫吳濤的程式設計師的回答:

  程式設計活動和機械電子一樣可以視為一種工藝(craftsmanship),從事此類工藝活動的人可以叫做工匠或者工程師。經歷過工業革命的歐美國家,有深厚的工程根底,從機械到電子再到軟體,都是國家產業的支柱,滋養著社會中堅力量的中產階級。工程師的社會地位普遍比較高,他們有工藝的傳承,有文化圈,有產業的歷史。

  而國內目前的軟體工業和製造業非常相似,以來料加工式的低水平重複勞動為主。就好像農民仰賴著老天提供種子、土壤、陽光和水,中國程式設計師仰賴著洋人提供裝置、技術和理念,從微處理器、作業系統、程式語言、編譯器、IDE、程式設計框架到應用程式,除了做晶圓的沙子是本地產的,幾乎沒有什麼屬於自己,每天的工作內容主要就是把別人已有的東西按照自己的——甚至不是自己的——需求裝配一下,沒有什麼創造性,也很少有業界的技術積累和傳承出現,即便有也流傳不開,畢竟程式設計師文化水平普遍不高——「有知識,沒文化」,就是說這樣的狀況。記得劣質盜版VCD滿天飛的時代,有個程式設計師做出一款醜陋但是解碼容錯能力很好的播放器,貼合國情,一炮成名,結果好容易寫本書,沒有幾個句子能寫通順的。這種技術書籍的拙劣狀況一直保持到現在,而且拙劣的方式更加多樣化了。沒有技術傳承,沒有文化圈,不乏有人上大學之前對程式設計一竅不通,學計算機只是因為計算機「熱門」而已。如同包辦的婚姻,沒有一絲愛情,最後以程式設計為業,只是因為也不會做別的什麼了。

  另一方面,國內程式設計師不論薪水如何,的確很苦。許多人長期被迫加班,最後甚至會成為一種自願的習慣。可生產率和產品質量並未因此而提高,就像千百年來用慣鋤頭和鐮刀的農夫,很少有人會想要去學習、改進自己使用的工具和習慣,甚至對於新興的思潮和方法抱有非理性的牴觸情緒。生活如此悲慘,卻又如此不思進取,和農民的問題很相似。再加上,就好像城裡人眼中的鄉下人一樣,程式設計師們木訥、邋遢、缺乏情調、土。可偏偏又自負而且互相看不起。

  總而言之,在中國做一個程式設計師,很少有什麼事情能讓人覺得自己從事的工作很體面。那麼,在整個社會以自嘲為風尚、許多行業都喜歡好勇鬥狠地自輕自賤的狀況中,使勁貶低自己的職業,自嘲和群吵時,就不會有什麼心理包袱。不過,就好像黑人可以自稱或者互稱「黑鬼」,但是白人如果敢講立刻會惹禍一樣,喜歡以此自稱的程式設計師並不見得能容忍其他人這樣稱呼自己。

  最後,英語有類似的說法,將帶有隔斷的辦公室叫做cube farm,常見於傳統的軟體公司。以諷刺(但不限於)軟體公司日常生活為主題的漫畫Dilbert就有不少格子辦公室裡的場景。不過cube farm說的並不是程式設計師們像農民,而是說他們像地裡的莊稼或者果樹,產出成果,等待收割。畢竟,歐美髮達國家的農民生活往往比程式設計師更好。高收入,農機勞作,大片的私有土地,寧靜的田園生活。農民的生活在那裡,如果不是令人嚮往,至少也並無貶義。

  補充:本版同文所說的code monkey在英語中的語用,與「碼農」在中文裡的用法並不一樣。

  code monkey是指以計算機程式設計師或者那些以編碼為生的人。這個術語可能包含輕微的貶義,這意味著開發者可能編寫程式碼,但不能執行復雜點的任務,比如:構建軟體結構、分析和設計,一般指初級程式設計師。

  如果一名code monkey正在努力增加知識和提升職業技能,那麼會有另一個等級名詞賦予他。

  其實code monkey這個術語在層次劃分上還是有點困難的,因為像那些真正熟練的開發人員或程式設計師他們仍然在做編碼工作。或許像這樣劃分會好一點:

  1. coder:編碼員
  2. programmer:程式設計師
  3. software engineer:軟體工程師
  4. software analyst:軟體分析師
  5. software architect:軟體架構師

  或許還可以在前面加“初級”、“中級”、“高階”這幾個字首。這些都反映了一定的等級、技能水平和薪資。

  請注意:它只能在小範圍確定的某種層次結構,例如在一個公司、甚至一個部門。一個在A公司工作的“程式設計師”可能比B公司的中級架構師所要求的技能更多。

  下面是關注前端技術的鄧陳華同學的回答:

  首先, 問題的題目”為什麼中國的程式設計師總被稱為碼農?“是有一定的可辯論性的,因為我所瞭解的事實是,大多時候是“中國的程式設計師自稱為碼農”,很少有不同行的人稱呼程式設計師為“碼農”。當然,可能和我所處環境有關係。認可濤吳所說的“自稱碼農的程式設計師並不見得能容忍其他人這樣稱呼自己”,因為這就像他所舉的例子,黑人允許自稱,但不允許白人稱呼,同樣的詞在熟人說來是親切、是自嘲、甚至可以是自諷,但在外人說來,那不僅是不尊重,還有可能是侮辱。

  其次,身處網際網路行業,程式設計師工作辛苦,加班再正常不過,專案進度、突發情況、公司文化都可能成為加班的理由,雖然收入不一定差,但夠苦逼。另外一方面, 程式設計師魚龍混雜,水平參差不齊,而網際網路向來是一個強調能力的開放行業,有多少能力就拿多少工資,這樣註定有相當大一部分因為水平不夠,導致收入問題成為“碼農”的心病。

  而“ 工作辛苦”、“收入低”和農民有類似,所以無論自嘲或者是被別人冠以“碼農”的稱謂,辛苦、收入低這兩個標誌包含其一的可能性非常大。如果兩者兼有,那就是純種‘碼農’一枚,夠苦逼。

  當然,還有第三種情況就是像趙劼姐夫這樣,“彈鋼琴的碼農”,已經做“碼農”做到一種境界,並不一定強調其辛苦、更不會收入差,以“碼農”調侃的口吻戲謔人生,這個心態和大家自稱屌絲是一樣的,更多的自嘲自諷。其實,這樣收入高而且相對不這麼辛苦的精英“碼農”在行業內也不少。

  下面是在讀研究生吳洲提供的,來自圖靈中文社群電子雜誌《碼農》第一期的首卷語:《所謂碼農》一文的解釋:

  對於“碼農”這個稱呼,有些人喜愛有加,有些人不以為然。區別在於對待“農”這個字的感覺。農當然是指農民,這個詞寓義很豐富,既可以說它偉大,也可以說它渺小。說它偉大,是因為我們的生存離不開農民,而且中國一直是個農業為本的國家,曾經說是百分之八十的人是農民,這意味著往前翻⼀兩代,你我眾人皆是農民出身。以此觀之,農可謂大哉。說它渺小,則是因為大家的觀念裡,農民意味著有很多缺點,冠冕堂皇的說法是劣根性,比如目光短淺、思維陳舊、自私小氣等等,總之是為我們受過教育的人群所看不慣的種種毛病——這些毛病雖然我們自己也有,但是我們看不見——於是乎“農民”成為了罵人時常用的字眼。

  其實,把自己的程式設計生涯與田間地頭的鋤禾日當午對應起來,確是有那麼些相似之處的。你能想象得到,田間整齊栽種的秧苗,與螢幕上顯示的錯落有致的程式碼行有幾分神似。各種莊稼的種植是有講究的,正如你要注意程式設計風格。施肥灌溉,猶如你對程式碼進行的編譯連結。除草除蟲,自然是在做著debug 。你挑水來我澆園,大概是在小菜園中進行的結對程式設計。因為靠天吃飯,農民們也要學點雲端計算,去五道口職業技術學校進修的人也多起來了。收割的季節,活多人少,也常常是要搞外包的,因為deadline 很重要。不過坦率地說,“碼農”這個叫法讓人體會更多的是滑稽、搞怪、無厘頭。畢竟一個是簡單的體力勞動,一個是高智商的腦力勞動,不可同日而語。而程式設計師卻偏愛這樣的時空錯亂的感覺,自嘲

  (我就是個農民!)的同時卻又自命不凡(我是碼農我怕誰?!),特立獨行極了。

  碼農的草帽底下,是一顆充滿創造力的自由不羈的頭腦。他們遵從最佳實踐而痛恨陳規教條,他們欣賞天才而不迷信權威,他們喜歡思考而不輕易苟同。他們是技術人,卻追求人文理想;他們敢於吶喊,說出自己的觀點和主張,也更善於腳踏實地,用自己的點滴工作去改變現狀。碼農們是勤奮的,加班加點的工作是常有的事情,城市夜間的燈火,有多少是在碼農們的辦公室和居所點燃?週末四處舉辦的技術交流和講座,又活躍著多少碼農的身影?線下讀書,線上討論,冥思苦想,動手實踐,新技術驅動著碼農們的腳步,碼農們在改變著我們的生活。生存離不開農民,生活離不開碼農。

  各位“碼農”,你們是如何看待這個稱呼的呢?對於上面幾位大牛的觀點,你們有啥想說的?不妨和我們分享一下吧!

  本文整理自知乎網

相關文章