程式設計師和常人有著什麼樣的區別?是否所有的程式設計師都是天然呆?為何女性程式設計師的人數要遠遠少於男性?在本文中,我們將帶著種種疑問深入探討電腦程式員中的文化。
作者 | Jennifer Ouellette
譯者 | 彎月
責編 | 屠敏
出品 | CSDN(ID:CSDNnews)
以下為譯文:
現如今,我們日常生活的方方面面都滲透著計算機的代碼。然而,普通人並不了解計算機編程的工作,也不清楚程式設計師正在悄悄地影響著整個社會。科技報導的記者Clive Thompson希望通過他的新書《Coders:The Making of a New Tribe and the Remaking of the World》來改變這一點。
在擔任科技記者之前,高中時期的Thompson曾是一名黑客,他自學了如何在早期的個人計算機上寫代碼,比如在Commodore 64上等。之前他還出過一本書《超乎想像的聰明:論科技如何改進我們的思維》(Smarter Than You Think: How Technology Is Changing Our Minds for the Better),書中推翻了末日預言者所信奉的看法:新的技術工具正在腐蝕我們的大腦,Thompson則認為這些東西實際上提高了我們的認知能力。他在《Coders》中說到:「我想讓一般人了解程式設計師,以及為什麼他們會比較注重某方面的東西,他們的激情在哪裡,他們的盲點又是什麼。希望普通人可以更好地了解程式設計師為我們創造的這個數字世界。」
提問:最終你成為了一名作家而不是專業的程式設計師。從很多方面來看,編程只是另一種語言,但許多作家都對這種工作敬而遠之。你覺得這兩種工作之間有相似之處嗎?
Thompson:程式設計師通過代碼進行溝通,而他們的溝通對象是機器。寫代碼的工作和寫作的工作都是腦力勞動,這是二者很大的相似之處。作家需要搞清楚如何創作一本小說、一篇文章、一本書。而程式設計師則需要設法考慮他們構建的代碼的結構,以及函數之間如何相互調用。這兩種類型的工作人員都喜歡連續工作12個小時,中途不會被人打斷,所以他們都可以在思緒的盡情飛揚中完成他們的工作。
兩者之間的區別可能在於人類可以理解具有歧義的內容,而計算機則不能。在你寫Python代碼的時候,任何一個小小的錯誤都會導致系統停止運轉。這就是程式設計師的工作與其他方面工程師的不同之處。在修理汽車的時候,如果你沒有擰緊一個車輪上的螺栓,那麼不至於整輛車都停止工作。但是在寫代碼的時候,哪怕是少寫一個括號,都會導致整個應用或整個網站宕機。我認為這是所有作家都感到很恐怖的一件事,因為他們都習慣了模稜兩可。
提問:在這本書中,你談到了一些典型的程式設計師的性格,但你自己也會感嘆程式設計師身上常見的刻板印象,比如他們很孤立、體型較胖、不擅長社交。是否有某種特定的人傾向於從事這個領域?
Thompson:現在有很多人都加入了程式設計師的大軍,但是你了解一些各行各業就會發現有一些特徵也似乎很正常。例如,編碼員善於邏輯思考,將大問題分解為小步驟。這種習慣也會體現在他們的日常生活中,因為他們需要花大量時間進行線性、精確的思考。此外,每個擅長編程的人都能夠應對一些令人費解的挫折。
這是程式設計師與普通人之間的分界線。好萊塢影片塑造的程式設計師都有一種刻板的印象,程式設計師整體坐在電腦前寫代碼。實際上,他們坐在那裡只是在盯著無法正常工作的代碼,並設法弄清楚如何修復這些代碼。這是程式設計師一輩子都做不完的主要工作。這種工作不會越來越好,因為你技術越好,所面臨的挑戰就越難。但是,一旦你改好代碼,程序開始正常運行時,那種成就感簡直無與倫比。程式設計師就是在日復一日地追逐這種快感。相比之下,那些殘酷的挫折時刻都不值一提,所以這群人非常擅長應對一次又一次地碰壁。
提問:你還介紹了一些程式設計師的歷史。女程式設計師可能是最早的一批程式設計師。後來,如你在書中所述,這個領域變成了男性的天下——男性佔據了絕對的主導地位。這中間發生了什麼?
Thompson:女性在編程界遭到排擠的原因有點複雜。歷史上沒有發生過重大的事件,這種情況是三種或四種因素互相影響的後果。這也意味著我們無法通過一個解決方案徹底地解決這個問題。就像有個笑話說:對於這個問題,我們沒有一發即中的銀彈,只有很多的鉛彈頭。
早期從事編程工作的人都是精英,因為沒有人知道如何編程。各個公司聘請了邏輯思維一絲不苟的人,並且只培養了這群人。因此,才出現了Mary Allen Wilkes這樣的人,她說:「既然我不能成為一名律師,因為在1959年這個職業有濃烈的性別歧視,所以畢業後我只能去麻省理工學院,問他們還要不要程式設計師。結果他們說,要!」後來,她成為了第一個作業系統(可以說是第一臺個人電腦上的作業系統)的先驅。在當時,軟體不值錢。男子漢都去做硬體了。而軟體被當成了類似於秘書的工作。
隨著各家公司開發出了大量的代碼後,軟體操作就變得至關重要了,於是男人們開始逐漸產生了興趣。他們建立了所謂的矽谷文化——「我們僱傭某人不僅僅是因為他擅長編程,也不僅僅是因為他擁有這些技術,而是因為我們覺得他就是我們的一份子。」一直到20世紀80年代出現了一批像我一樣,從高中時代就開始在個人電腦上編程的人。幾年後,我們開始上大學,並學習計算機科學的課程,全身心地投入到這個領域。教授們說:「這些人才是我們應該教導的學生。我們應該改變我們的課程,要求每一位程式設計師從十幾歲就做黑客。」而就在當時,所有從事計算機科學領域的女性幾乎都崩潰了。
提問:最近有大量關於許多算法中固有的偏見的討論,特別是在社交媒體中。這讓很多非計算機科學領域的感到不解。他們會認為:「算法怎麼會有偏見?它可是數學啊。」
Thompson:首先,從字面意思來看,偏見通常會源自你需要解決問題的算法。例如,社交媒體中採用的推薦算法是由架構師設計,由程式設計師實現的某種「預測手段」。這種算法會不斷關注人們最常點擊的內容,設法找出人們最喜歡和著迷的內容。這一切都在為基於廣告的市場模式服務。人們往往會被有可能引發極度情緒(深深的憤怒、怨恨、恐懼)的內容所吸引。這種算法會把人們按下心理按鈕的行為視作用戶的互動,而這正是這種算法需要找到和推薦的內容。
其次,如果用帶有偏差的數據訓練算法,那麼算法也會產生偏差。我的書中有這樣一個例子:Henry Gan是Gfycat(一家做動畫GIF託管服務的公司)的程式設計師。Henry和他的團隊需要利用視覺學習神經網絡AI來識別圖片並自動進行標記。他們是一家小公司,所以他們並沒有從頭開始做。他們利用了一些由Google和Facebook等公司開發和訓練好的開源神經網絡軟體。
結果,他們發現在識別亞洲人的面孔時,這些軟體的實際效果很糟糕。對於Gfycat來說這是一個非常大的難題,因為他們的用戶群眾有很大一部分是流行音樂的粉絲。他們喜歡尋找亞洲主流明星的GIF動畫。Henry跟我解釋說,他們使用的AI的訓練數據集主要是白人,因為收集這些數據集的機構位於白人的國家。所以,你沒法利用這種算法識別亞洲人的面孔,這個AI非常不擅長區分亞洲人的面孔。反之亦然。在中國接受訓練的人工智慧主要針對的是中國人的面孔,因此在識別白人面孔就會遇到很大的困難。
提問:算法對媒體也產生了巨大的影響,當然有好也有壞。
Thompson:媒體受到排名算法的影響,甚至從「網站上最常轉發的10條新聞」的時代就開始了。這其實都算不上AI,實際上只是一種排序算法。給我一份今天轉發的所有內容列表,按人氣排序,排在前10位就是我們的排名列表。這幾乎是軟體工程師的條件反射。
有一個網站專門尋找播放次數為零的YouTube視頻。我經常想,我們能做的遠不止此。你可以利用軟體進行非常有趣的搜索。人們忽視的重點是什麼?你可以通過代碼和算法做一些非常酷和有趣的事情,之所以沒人這麼做是因為每個人都在追尋最容易獲取的利潤。尋找流行的東西,這是一種很划算的模型。但是,使用軟體的巨大靈活性感覺在這種模型中完全沒有發揮出來。
提問:你在寫這本書時,感覺最驚訝的是什麼?
Thompson:真正讓我感到意外的一件事情是,你可以發現軟體開發人員很享受提高效率和優化的樂趣。他們很喜歡優化一些笨重或具有重複性的工作。幾乎所有的工程師都很關注運行效率的提高。節省勞動力,鞏固步驟,簡化工作,加強人類的能力。但是,似乎他們沒有辦法停止這樣的思考。例如,Scott Hanselman整天都在談論編程,甚至在晚餐時間,家裡的其他人正在做飯,而他卻批評他們的做事效率太低,他說:「我開始了對晚餐代碼的審查。」
這種下意識的條件反射正是商業模式的來源。Facebook推送的一則新聞中說:「讓我們來加速和優化一切工作。」Facebook加速了我們關注其他人的能力。Facebook對我們了解周圍的朋友的方式進行了巨大的優化。這本身是一件好事,但同時也出現了很多問題。在諸多信息的幹擾下,我們很難集中注意力做一件事情,因為有多事情即將出現在你面前。
這個問題貫穿了整本書:軟體工程師對優化的追求永無止境。但有時這會變成《猴爪》一書中所說的詛咒。我可以想像這種詛咒從個人擴散到整個社會。就像優步一樣,他們優化了汽車的受歡迎程度,但也給汽車行業帶來了破壞。還有Airbnb優化了房屋的租賃,最終會影響到房地產市場。歷史在一遍遍地重複,當你看到某家科技公司鎖定了人們的某個興趣時,通常他們都會優化自認為這是對大家有益的事情,但結果卻會給其他人帶來間接的傷害。
原文:https://arstechnica.com/gadgets/2019/04/how-the-new-art-form-of-coding-came-to-shape-our-modern-world/
本文為CSDN翻譯,轉載請註明來源出處。
作為碼一代,想教碼二代卻無從下手:
聽說少兒編程很火,可它有哪些好處呢?
孩子多大開始學習比較好呢?又該如何學習呢?
最新的編程教育政策又有哪些呢?
下面給大家介紹CSDN新成員:極客寶寶(ID:geek_baby)
戳他了解更多↓↓↓
熱 文 推 薦
☞ 馬雲:騰訊是阿里的成長伴侶;華為 2 萬 CNBG 員工「投奔」餘承東;18 歲學生索賠蘋果 10 億美元 | 極客頭條
☞ 取代 JavaScript!Python 成 Stack Overflow 最受質疑程式語言
☞ 流量為王,程式設計師如何打破 8 秒原則?| 技術頭條
☞ 5G 賦能教育信息化?
☞ 源碼洩露是裁員報復還是程式設計師反抗 996?
☞ 深入淺出Docker 鏡像 | 技術頭條
☞ 特斯拉全新自動駕駛晶片最強?英偉達回懟,投資者用腳投票
☞ 她說:為啥程式設計師都特想要機械鍵盤?這答案我服!
☞ 西安奔馳女車主哭訴維權背後, 區塊鏈究竟能否還消費者以尊嚴?
System.out.println("點個在看吧!");
console.log("點個在看吧!");
print("點個在看吧!");
printf("點個在看吧!\n");
cout << "點個在看吧!" << endl;
Console.WriteLine("點個在看吧!");
Response.Write("點個在看吧!");
alert("點個在看吧!")
echo "點個在看吧!"
點擊閱讀原文,輸入關鍵詞,即可搜索您想要的 CSDN 文章。