1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        朋友問(wèn)我,程序員和非程序員的思維模式有什么區(qū)別?

        共 1937字,需瀏覽 4分鐘

         ·

        2022-07-09 16:04

        英文 | https://javascript.plainenglish.io/what-is-the-difference-in-thinking-model-between-programmers-and-normal-persons-8ff8e2e9e94b

        翻譯 | 楊小愛(ài)


        最近,我的一個(gè)朋友來(lái)找我,他跟我說(shuō),他想學(xué)編程,但不知道自己是否適合這個(gè)職業(yè),于是,他問(wèn)了我一個(gè)問(wèn)題:在思維模式上,程序員和非程序員的人有區(qū)別嗎?
        我知道他以前從來(lái)沒(méi)有學(xué)過(guò)編程,向沒(méi)有編碼經(jīng)驗(yàn)的人介紹編程思想是相當(dāng)困難的。我想了想,打算換一種方式來(lái)解釋這個(gè)問(wèn)題。
        我問(wèn)他:如果你現(xiàn)在買兩斤蘋果,你會(huì)怎么做?
        他說(shuō):直接去水果店買。
        我說(shuō):如果我們要以編程方式表達(dá)買蘋果的過(guò)程,可能是這樣的。

        首先,我們必須明確我們的需求,例如:

        • 我打算買兩斤蘋果。

        • 我能接受的價(jià)格是每斤低于 1.5 美元。

        那么,我們可以設(shè)計(jì)如下流程:

        程序員需要以嚴(yán)謹(jǐn)和準(zhǔn)確的方式考慮問(wèn)題。

        • 在上述過(guò)程中,我們需要記錄周邊的水果店,所以需要定義變量 friutShops。

        • 我們需要依次訪問(wèn)不同的水果店,這叫做遍歷。

        • 然后我們需要判斷邊界條件,比如水果店不開門怎么辦?如果蘋果的價(jià)格超出我的預(yù)期怎么辦?

        • 我們?cè)谫I蘋果時(shí),需要不斷地把蘋果放在袋子里,直到超過(guò)兩斤,這個(gè)過(guò)程叫循環(huán)。

        這些是程序員考慮問(wèn)題時(shí)最基本的步驟。

        如果我們用代碼來(lái)表示這個(gè)過(guò)程,可能是這樣的:

        Query surrounding fruit shops to get fruitShops;for(fruitShop in fruitShops){  if(fruitShop.isOpen == false){    break;  }  if(fruitShop.apple.price > 1.5){    Ask the shop owner whether he is willing to lower the price;    if(the shop owner does not agree){      break;    } else {      fruitShop.apple.price = newPrice;    }  }
        Take a bag; Start picking apples; while(the weight of the apples in the bag is less than two pounds){ Pick an apple from the pile of apples; Put the apple in the bag; } Calculate the total price of apples in the bag; Total price = (weight of apples in the bag) * (unit price of apples); Pay money; Leave the shop; return;}Take apples home;

        朋友聽了我的描述后說(shuō):嗯,你解釋的很好,看起來(lái)很簡(jiǎn)單。

        然后,我接著說(shuō):過(guò)程其實(shí)并不復(fù)雜,但是在實(shí)際開發(fā)中,我們要考慮的東西很多。

        例如,在上述情況下,只要我們找到一家蘋果價(jià)格低于 1.5 美元/斤的商店,我們就會(huì)立即購(gòu)買蘋果。但是如果現(xiàn)在,我們想要找到一家蘋果最便宜的水果,我們應(yīng)該做什么?

        朋友說(shuō):那很簡(jiǎn)單呀,直接去每個(gè)水果店詢問(wèn)價(jià)格,然后我們就可以找到蘋果價(jià)格最低的水果店了。

        我說(shuō):可是我們很懶,不想走太多路?,F(xiàn)在我們周圍有10家水果店,分布在不同的位置。如果我們想遍歷這 10 家水果店的同時(shí)還要盡量少走路,那我們?nèi)绾伟才抨P(guān)顧水果的順序,并且盡量減少總路程?

        想了半天,朋友回答:嗯,這個(gè)問(wèn)題聽起來(lái)很復(fù)雜,我不知道。

        我說(shuō):沒(méi)關(guān)系,這實(shí)際上是編程中的經(jīng)典算法問(wèn)題,現(xiàn)在你不會(huì)想到答案是正常的。程序員在編程開發(fā)時(shí),不僅要正確解決問(wèn)題,還要盡可能高效地解決問(wèn)題。在開發(fā)過(guò)程中,我們正在逐一解決類似的問(wèn)題。

        然后,我接著繼續(xù)說(shuō):而當(dāng)我們選擇蘋果的時(shí)候,我們都希望買更大更紅的蘋果?,F(xiàn)在你需要從一堆蘋果中選擇 N 個(gè)蘋果。你需要確保它們是最好的蘋果,并且它們的質(zhì)量總和剛剛超過(guò) 2 斤,你該如何選擇?

        朋友:嗯,還是有點(diǎn)難。

        我說(shuō):有些人會(huì)先把蘋果堆按質(zhì)量分揀,然后再挑選最好的蘋果,但如何快速分揀蘋果,這又是另外一個(gè)問(wèn)題。

        朋友:好了,別說(shuō)了,我腦子有點(diǎn)暈,看來(lái)我還是不適合做程序員。

        我說(shuō):哈哈,沒(méi)關(guān)系,我現(xiàn)在有點(diǎn)餓了,我們先去買些蘋果充饑吧,^_^^_^。



        學(xué)習(xí)更多技能

        請(qǐng)點(diǎn)擊下方公眾號(hào)

        瀏覽 43
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            操香蕉| 日本乱伦网站 | 成人综合大香蕉 | 亚洲日本看视频 | 韩国三级日本三级香港三级黄 | 久久天天| 国产逼 | 性亚洲 | 淫荡人妻视频 | 爆白丝粉嫩喷水 |