<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          朋友問(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)在買(mǎi)兩斤蘋(píng)果,你會(huì)怎么做?
          他說(shuō):直接去水果店買(mǎi)。
          我說(shuō):如果我們要以編程方式表達(dá)買(mǎi)蘋(píng)果的過(guò)程,可能是這樣的。

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

          • 我打算買(mǎi)兩斤蘋(píng)果。

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

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

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

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

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

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

          • 我們?cè)谫I(mǎi)蘋(píng)果時(shí),需要不斷地把蘋(píng)果放在袋子里,直到超過(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;

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

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

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

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

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

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

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

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

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

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

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

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



          學(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)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产黑人大屌 | 久久成人三级视频 | 91久久久久久久久久久 | AV天堂无码 | 日日操日日 |