蜜桃二区,毒医王妃不好惹免费阅读全文,奶水奶头咂着奶小说,被快递员上门做到高潮,日本巨乳人妻无删减,情爱小说连载,暴躁妹妹csgo,床戏描写多的小说片段,给弟弟的家规

專(zhuān)業(yè)網(wǎng)站建設(shè)B/S軟件開(kāi)發(fā)專(zhuān)業(yè)微信營(yíng)銷(xiāo)專(zhuān)業(yè)技術(shù)建設(shè)團(tuán)隊(duì)做客戶(hù)滿(mǎn)意度最高的軟件公司
鄭州網(wǎng)站建設(shè)、鄭州網(wǎng)站開(kāi)發(fā)
 

程序員的本質(zhì)

作者:軟件平臺(tái)出處:學(xué)眾科技發(fā)布時(shí)間:2020年05月25日點(diǎn)擊數(shù):1847

很多人認(rèn)為計(jì)算機(jī)變得如此智能,所以在不久的未來(lái)將不再需要程序員。另外一些人認(rèn)為程序員是天才,他們?cè)陔娔X前能不斷地解決復(fù)雜的數(shù)學(xué)難題。甚至不少程序員對(duì)他們是做什么的都沒(méi)有清晰的概念。在這篇文章中,筆者想給不知情的人解釋一下程序員到底是做什么的。

程序員是將人類(lèi)想法翻譯成計(jì)算機(jī)語(yǔ)言的譯者。

他們是兩種世界之間的紐帶。你認(rèn)為維護(hù)這個(gè)紐帶很容易嗎?

人類(lèi)世界的背景

The problem with people is that they’re only human. – Bill Watterson人類(lèi)的問(wèn)題是,他們只是人而已?!葼枴の痔厣?

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

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

計(jì)算機(jī)世界背景

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

計(jì)算機(jī)是人類(lèi)文明的最佳發(fā)明。它由CPU、主板、內(nèi)存、硬盤(pán)驅(qū)動(dòng)器、顯示器和其他部分構(gòu)成。計(jì)算機(jī)將我們的文明推入一個(gè)新的水平,使我們的生活更有意義并充滿(mǎn)樂(lè)趣,還彌補(bǔ)了我們大腦的缺陷。很可能計(jì)算機(jī)比人類(lèi)更聰明。(不過(guò),我有點(diǎn)關(guān)心如果這成為現(xiàn)實(shí)后,計(jì)算機(jī)還需要人類(lèi)程序員嗎?)

現(xiàn)代計(jì)算機(jī)具有完全邏輯性、直接性和順從性。如果你知道它應(yīng)該做什么并且知道如何命令它,那么和計(jì)算機(jī)一起工作是快樂(lè)的。唯一的問(wèn)題是,計(jì)算機(jī)只會(huì)做你告訴它去做的。因此,你應(yīng)該有清晰的思路并且在見(jiàn)你的上司或客戶(hù)時(shí)保證計(jì)算機(jī)不出岔子。

在人類(lèi)和計(jì)算機(jī)之間的翻譯

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

  • 1. 語(yǔ)言歧義。人類(lèi)語(yǔ)言是模糊、復(fù)雜并且雙關(guān)的,例如:“這個(gè)程序不能提供良好的用戶(hù)體驗(yàn)”。文化、背景和上下文語(yǔ)境都會(huì)對(duì)溝通和含義造成影響。與之相反,所有計(jì)算機(jī)語(yǔ)言都是準(zhǔn)確、直接的,與上下文無(wú)關(guān)。
  • 2. 細(xì)節(jié)層次。人類(lèi)的溝通是籠統(tǒng)而不帶有過(guò)多細(xì)節(jié)的,例如:“我想讓這該死的程序運(yùn)行起來(lái)”。這樣可以節(jié)省時(shí)間與精力,但由于缺少詳細(xì)信息,會(huì)產(chǎn)生兩個(gè)比較大的問(wèn)題——誤解和不確定性。而計(jì)算機(jī)需要所有細(xì)節(jié)——每件事都要說(shuō)清楚。
  • 3. 思維模式。人類(lèi)習(xí)慣于思考需求、結(jié)果與解決方案之間的關(guān)系,例如:“這份報(bào)告應(yīng)該在2秒內(nèi)運(yùn)行,而不是2個(gè)小時(shí)”。然而,計(jì)算機(jī)需要算法——按照步驟去達(dá)到想要得到的結(jié)果。

為了寫(xiě)出優(yōu)秀的軟件,程序員們必須克服這些困難,理解人們的想法并將之轉(zhuǎn)換成計(jì)算機(jī)語(yǔ)言。

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

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

理解人類(lèi)的需求并提出解決方案:

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

告訴計(jì)算機(jī)該做什么,并建立解決方案:

  • 1. 邏輯(再次強(qiáng)調(diào))——把程序員的想法組織整理成有凝聚力的軟件思想和計(jì)算機(jī)指令
  • 2. 技術(shù)——發(fā)現(xiàn)并理解科技黑箱(對(duì)于99%的人來(lái)說(shuō)是黑箱)。
  • 3. 編程語(yǔ)言——學(xué)習(xí)美觀的、富有邏輯的、清晰明了的語(yǔ)言,從而把程序員的想法提供給電腦。
  • 4. 算法——精通讓計(jì)算機(jī)完成任務(wù)最高效的方法。
  • 5. 建?!谲浖a中建立抽象和模型,從而掌握并操控想法。
  • 6. 實(shí)踐(比如代碼重構(gòu)、單元測(cè)試、持續(xù)集成)——周期性活動(dòng),以保持系統(tǒng)可靠、健康與可改變。

面向人類(lèi)和面向硬件對(duì)象/系統(tǒng)的程序員有很大不同。

不與人溝通的程序員不是好程序員。一個(gè)優(yōu)秀的解決方案需要計(jì)算機(jī)世界與人類(lèi)世界的雙重技能。只有連接起兩個(gè)世界,才能成為一個(gè)真正的優(yōu)秀程序員。

沙澧街