国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

程序員的本質

發(fā)布時間:2011-12-7 21:14    發(fā)布者:諸葛孔明
關鍵詞: 程序員
很多人認為計算機變得如此智能,所以在不久的未來將不再需要程序員。另外一些人認為程序員是天才,他們在電腦前能不斷地解決復雜的數學難題。甚至不少程序員對他們是做什么的都沒有清晰的概念。在這篇文章中,筆者想給不知情的人解釋一下程序員到底是做什么的。

程序員是將人類想法翻譯成計算機語言的譯者。

他們是兩種世界之間的紐帶。你認為維護這個紐帶很容易嗎?

人類世界的背景

The problem with people is that they’re only human. – Bill Watterson
人類的問題是,他們只是人而已。——比爾·沃特森

人類是生物進化的產物,并且擁有獨特而寶貴的器官——大腦,它能為程序員提供想法。大腦有組合復雜的新大腦皮層(對人類而言是獨特的),還有從哺乳動物和爬行動物繼承的舊結構。舊的大腦結構主要負責生殖(性)和生存(尋找食物或者躲避危險)。新大腦皮層進化成能夠更好地支持這些功能,但是,它開始產生奇怪的副作用——意識、思考和好奇心。幸虧這些副作用的影響,人類產生了文明并在數千年后發(fā)明了計算機。

一些人相信經過數千年的發(fā)展,人類應該變成完全沉悶的、理性的、可預測的生物,但是這并沒有發(fā)生。人類舊的大腦結構、復雜的心理和社會行為往往使人們不理性,不可預測并帶有欺騙性。并且,人類有糟糕的記憶力、強烈的情感和個人興趣。但是,程序員沒法選擇與更理性的物種工作,他們不得不與人類共事并且把人類的想法翻譯成計算機語言。

計算機世界背景

Part of the inhumanity of the computer is that, once it is competently programmed and working smoothly, it is completely honest. – Isaac Asimov
計算機非人性的一部分表現是,一旦完成編譯并且順利運行,它將忠實地完成工作。——艾薩克·阿西莫夫

計算機是人類文明的最佳發(fā)明。它由CPU、主板、內存、硬盤驅動器、顯示器和其他部分構成。計算機將我們的文明推入一個新的水平,使我們的生活更有意義并充滿樂趣,還彌補了我們大腦的缺陷。很可能計算機比人類更聰明。(不過,我有點關心如果這成為現實后,計算機還需要人類程序員嗎?)

現代計算機具有完全邏輯性、直接性和順從性。如果你知道它應該做什么并且知道如何命令它,那么和計算機一起工作是快樂的。唯一的問題是,計算機只會做你告訴它去做的。因此,你應該有清晰的思路并且在見你的上司或客戶時保證計算機不出岔子。

在人類和計算機之間的翻譯

翻譯中會遇到三個主要的挑戰(zhàn):

1. 語言歧義。人類語言是模糊、復雜并且雙關的,例如:“這個程序不能提供良好的用戶體驗”。文化、背景和上下文語境都會對溝通和含義造成影響。與之相反,所有計算機語言都是準確、直接的,與上下文無關。

2. 細節(jié)層次。人類的溝通是籠統(tǒng)而不帶有過多細節(jié)的,例如:“我想讓這該死的程序運行起來”。這樣可以節(jié)省時間與精力,但由于缺少詳細信息,會產生兩個比較大的問題——誤解和不確定性。而計算機需要所有細節(jié)——每件事都要說清楚。

3. 思維模式。人類習慣于思考需求、結果與解決方案之間的關系,例如:“這份報告應該在2秒內運行,而不是2個小時”。然而,計算機需要算法——按照步驟去達到想要得到的結果。
  
為了寫出優(yōu)秀的軟件,程序員們必須克服這些困難,理解人們的想法并將之轉換成計算機語言。

一名優(yōu)秀程序員所具備的能力

我們可以看到,一名優(yōu)秀程序員應該具備應付兩個不同世界的兩套技能。

理解人類的需求并提出解決方案:

1. 溝通——與人建立聯系的能力,能夠同他人親密的交談,并有勇氣去嘗試分享自己的觀點。
2. 意圖——從談話中提取有用的信息,理解并使之有意義。
3. 邏輯——為不懂讓步的計算機整理、剔除那些人類思想中含糊而有爭議的內容。
4. 創(chuàng)造力——挖掘、轉變人類的想法,從而創(chuàng)建優(yōu)秀的解決方案。
5. 構思——利用人類友好的接口和便捷的互動性來包裝編程思想。
6. 大局觀——清楚解決方案是如何適應全世界的用戶、企業(yè)以及其他,從而使你的程序更有用。
  
告訴計算機該做什么,并建立解決方案:

1. 邏輯(再次強調)——把程序員的想法組織整理成有凝聚力的軟件思想和計算機指令
2. 技術——發(fā)現并理解科技黑箱(對于99%的人來說是黑箱)。
3. 編程語言——學習美觀的、富有邏輯的、清晰明了的語言,從而把程序員的想法提供給電腦。
4. 算法——精通讓計算機完成任務最高效的方法。
5. 建模——在軟件代碼中建立抽象和模型,從而掌握并操控想法。
6. 實踐(比如代碼重構、單元測試、持續(xù)集成)——周期性活動,以保持系統(tǒng)可靠、健康與可改變。
  
面向人類和面向硬件對象/系統(tǒng)的程序員有很大不同。

不與人溝通的程序員不是好程序員。一個優(yōu)秀的解決方案需要計算機世界與人類世界的雙重技能。只有連接起兩個世界,才能成為一個真正的優(yōu)秀程序員。
本文地址:http://m.qingdxww.cn/thread-83735-1-1.html     【打印本頁】

本站部分文章為轉載或網友發(fā)布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區(qū)
  • 使用SAM-IoT Wx v2開發(fā)板演示AWS IoT Core應用程序
  • 使用Harmony3加速TCP/IP應用的開發(fā)培訓教程
  • 集成高級模擬外設的PIC18F-Q71家族介紹培訓教程
  • 探索PIC16F13145 MCU系列——快速概覽
  • 貿澤電子(Mouser)專區(qū)
關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 色哟哟国产成人精品| 亚洲成人一区| 亚洲成年| 一区二区三区视频观看| 大学生一级毛片免费看| 久久精品国产免费| 亚洲乱亚洲乱妇13p| 深夜a级毛片免费视频| 日韩a级一片| 日日拍拍| 最近最新免费中文字幕一| 在线资源站| 国产综合欧美区在线| 青青久久精品| 最新2017年韩国伦理片在线| 亚州色吧| 午夜视频在线观看免费视频 | 欧美污视频| 午夜91视频| 五月香婷| AV久久久囯产果冻传媒| 久久综合电影| 伊人久久综在合线亚洲| 亚洲三级成人| 日日摸夜夜添夜夜添毛片| 西野翔jux814在线观看| 最新chinesegay| 欧美性狂猛AAAAAA| 日韩欧美在线不卡| 天天爱综合| 亚洲第一天堂| 亚洲男人的天堂在线| 电影 qvod| 亚洲男人的天堂久久精品麻豆| 亚洲视频在线一区| 天天射天天爱天天干| 玩逼逼| 91九色porny蝌蚪| 三级黄色在线看| 日不卡在线| 天天综合网天天综合色|