如何像計(jì)算機(jī)科學(xué)家一樣思考?(女生篇)

Mr.C/文

子曰:“知者不惑,仁者不憂,勇者不懼。”

  • 前言


《窮爸爸,富爸爸》里面有句話是這樣說(shuō)的:“對(duì)于受過(guò)良好教育的爸爸,工作的穩(wěn)定就是一切谨朝;而對(duì)于富爸爸來(lái)說(shuō)璃吧,不斷學(xué)習(xí)才是一切嫡纠〉莼Γ”
許多時(shí)候,我們的恐懼并非來(lái)自所恐懼的事物沫勿,而是來(lái)自我們自己的未知挨约,想克服某種恐懼,我想最好的解決方法是主動(dòng)去適應(yīng)产雹,也就是人們常說(shuō)的诫惭,走出舒適區(qū)

隨著近二十年計(jì)算機(jī)界的蓬勃發(fā)展洽故,繼而導(dǎo)致了某個(gè)新品種程序猿的大量"繁殖"贝攒,如果你身邊也有該品種的存在,并且你想和他們可以有職業(yè)上的交流时甚,或者想要套得猿心隘弊,懂得猿類之間術(shù)語(yǔ),讀此系列文荒适,事可成矣梨熙。

  • 如何走上編程之路?



本文的目的是讓你知道如何像一個(gè)計(jì)算機(jī)科學(xué)家那樣思(da)考(kai)問(wèn)(nao)題(dong)刀诬,這個(gè)腦洞的打開(kāi)方式結(jié)合了數(shù)學(xué)咽扇、工程和自然科學(xué)三個(gè)學(xué)科的最優(yōu)特性。比如說(shuō):

  • 很數(shù)學(xué)的方式:計(jì)算機(jī)科學(xué)家們[1]使用一套標(biāo)準(zhǔn)符號(hào)去表示他們的idea(計(jì)算機(jī)領(lǐng)域也會(huì)涉及到很多計(jì)算陕壹,比如圖像處理中的線性數(shù)學(xué)质欲、數(shù)據(jù)挖掘中的統(tǒng)計(jì)學(xué)、概率學(xué)等)糠馆。
  • 很工程的方式:計(jì)算機(jī)科學(xué)家們同樣需要設(shè)計(jì)一些組件嘶伟,并把它們組合成一個(gè)系統(tǒng),在組合的過(guò)程中還需要權(quán)衡各種方案帶來(lái)的利弊又碌。
  • 很科學(xué)家的方式:計(jì)算機(jī)科學(xué)家們同樣會(huì)去觀察一個(gè)復(fù)雜的系統(tǒng)九昧,并且會(huì)做出一些假設(shè),通過(guò)實(shí)驗(yàn)區(qū)驗(yàn)證是否可行毕匀。

計(jì)算機(jī)科學(xué)家最重要的一項(xiàng)技能是 “解決問(wèn)題能力”铸鹰,問(wèn)題解決能力意味著你需要擁有以下三項(xiàng)技能點(diǎn):

  • 知道問(wèn)題在哪里(猶如當(dāng)年霍去病打匈奴,你要打敗敵人皂岔,首先得知道敵人在哪)
  • 能夠制定出解決問(wèn)題的方案(作戰(zhàn)計(jì)劃)
  • 并且可以清晰蹋笼、正確地實(shí)現(xiàn)方案(戰(zhàn)場(chǎng)上的排兵布陣)

當(dāng)然,想在計(jì)算機(jī)領(lǐng)域有所成就,除了需要擁有以上三點(diǎn)問(wèn)題基本解決技能外姓建,掌握編程技能是必不可少的诞仓。
如果你覺(jué)得你擁有以上技能點(diǎn)缤苫,那么就可以開(kāi)始上路啦(T^T)~~~ 對(duì)速兔,就是那條傳說(shuō)中的 編程之路

On one level, you will be learning to program, a useful skill by itself. On another level, you will use programming as a means to an end. As we go along, that end will become clearer.

  • 編程之路之—— 算法


如果說(shuō) 解決問(wèn)題方式 是計(jì)算機(jī)科學(xué)最重要的部分活玲,那么就是在解決問(wèn)題中所創(chuàng)造出來(lái)的解決方案可以說(shuō)是重中之重涣狗,這里的解決方案,我們便稱之為 算法舒憾。

算法是一連串解決問(wèn)題的招式镀钓,比如我們想從A點(diǎn)到B點(diǎn),那我們選擇的方式可以有 自己開(kāi)車镀迂、坐地鐵丁溅、坐公交或者打Uber(當(dāng)然,如果你是數(shù)年前的本山大叔探遵,還可以坐直升飛機(jī))窟赏,這里的方式就是我們解決 “從A點(diǎn)到B點(diǎn)” 這個(gè)問(wèn)題的的“算法”,由此可見(jiàn)一個(gè)好的算法和一個(gè)差的算法箱季,雖然同樣可以解決問(wèn)題涯穷,但是他們之間的效率卻可能相差上百倍(這就是一個(gè)好的程序員頂?shù)蒙鲜畟€(gè)普通程序員的說(shuō)法來(lái)源之一)。

算法是理論上的解決方案藏雏,而實(shí)際上對(duì)算法的實(shí)現(xiàn)需要依賴于具體的編程語(yǔ)言拷况,“編程語(yǔ)言是一種工具”(我想這句話每個(gè)讀計(jì)算機(jī)的孩子都有聽(tīng)偉大的老師們講過(guò)吧?)掘殴。

事實(shí)也確是如此赚瘦,編程語(yǔ)言就好比你選擇了Uber后打到的是一輛奧迪還是一輛奧拓,算法在某種程度上決定了我們解決某個(gè)問(wèn)題的速度等級(jí)奏寨,但編程語(yǔ)言(前提是對(duì)不同計(jì)算機(jī)語(yǔ)言同樣熟悉的情況下起意,不包括語(yǔ)言學(xué)習(xí)時(shí)間成本)只是影響我們到達(dá)目的地的舒適度。

** 所以服爷,算法很重要杜恰。**

  • 編程之路之——程序


按照維基百科的說(shuō)法:程序(英語(yǔ):procedure),指特定的一系列動(dòng)作仍源、行動(dòng)或操作心褐,而這些活動(dòng)、動(dòng)作或操作必須被運(yùn)行于相同方式以為了在相同環(huán)境下恒常得出相同的結(jié)果(例如緊急應(yīng)變程序)笼踩。不太精確地說(shuō)逗爹,程序可以指一序列的活動(dòng)作業(yè)步驟掘而、決斷挟冠、計(jì)算工序,當(dāng)它們保證依照嚴(yán)格規(guī)定的順序發(fā)生時(shí)即產(chǎn)生所述的后果袍睡、產(chǎn)品或局面知染。一個(gè)程序通常引致一個(gè)改變。

其實(shí)斑胜,看完維基百科的中文解釋后控淡,作為幾乎天天跟程序打交道的我也是一臉蒙圈的...

這樣子會(huì)嚇走一大批妹紙的,對(duì)止潘,怪你囖掺炭,維基百科君。
其實(shí)程序我們可以這樣理解凭戴,它分為5個(gè)部分:

  • 輸入
  • 輸出
  • 數(shù)學(xué)和邏輯語(yǔ)句
  • 判斷語(yǔ)句
  • 循環(huán)

~ 別走吖涧狮!我還沒(méi)解釋完呢,不要看到這個(gè)5個(gè)名詞就看不下去了好不好么夫?

我們可以把這五個(gè)過(guò)程對(duì)應(yīng)為我們平時(shí)撩女(男)神的過(guò)程者冤,在計(jì)算機(jī)執(zhí)行的程序就好比我們的撩妹(漢)過(guò)程:

程序組成部分 計(jì)算機(jī) 撩妹(漢)過(guò)程
輸入 鍵盤(pán)/文件(*通常從文件獲取,比如我們?cè)赪indows下澄焊睿看到的.exe **)/網(wǎng)絡(luò)外設(shè) 對(duì)女(男)神發(fā)自內(nèi)心(或身體)的期盼
數(shù)學(xué)邏輯 與譬嚣、或、非邏輯是否成立 女(男)神當(dāng)天的心情是否適合date钞它?(如:只要Ta 6級(jí)考試通過(guò)或者你找到了一家好吃的餐廳:可Date拜银,稱之為或。 需要Ta 6級(jí)考試通過(guò)并且你已經(jīng)找到了一家好吃的餐廳才可Date遭垛,稱之為與尼桶。沒(méi)有人約Ta的時(shí)候你才可Date得到,稱之為非 锯仪,可憐T_T泵督。
條件判斷語(yǔ)句 if語(yǔ)句 你今天是否已經(jīng)達(dá)到了約對(duì)方的條件?達(dá)到則可執(zhí)行 下一步:拿起手機(jī)庶喜,給Ta發(fā)微信或者打電話啦~~
循環(huán)語(yǔ)句 while或for語(yǔ)句 如果被女(男)神拒絕了午餐小腊,是否繼續(xù)重復(fù)約晚餐?如果晚餐還被拒絕了久窟,是否重復(fù)約明天早餐秩冈? 如此反復(fù)...稱之為循環(huán)矣。
輸出 圖像顯示或者發(fā)送某些數(shù)據(jù)到設(shè)備上 這里的輸出斥扛,當(dāng)然是入问,要不要準(zhǔn)備好Date完之后的事宜啦。
  • 是不是很簡(jiǎn)單?
  • 是不是很簡(jiǎn)單芬失?

  • 是不是很簡(jiǎn)單楣黍?
    假設(shè)計(jì)算機(jī)是我們的身體,那么程序就是運(yùn)行在我們身上的思考過(guò)程棱烂。
    我們身體 所觀租漂、所聞、所觸 就相當(dāng)于計(jì)算機(jī)中鍵盤(pán)或者鼠標(biāo)的 輸入垢啼,而我們?cè)讷@取外界的信息后再大腦內(nèi)部經(jīng)過(guò)的思考過(guò)程窜锯,就相當(dāng)于 程序在進(jìn)行 數(shù)學(xué)與邏輯運(yùn)算、條件判斷以及是否循環(huán)的過(guò)程芭析,而最終我們的 所行 以及 所想 就是我們大腦在執(zhí)行程序后的輸出。

  • 編程之路之——Bug & Debug


什么是bug吞瞪? bug正常翻譯為中文的意思為:蟲(chóng)子馁启。

那為什么我們程序上的錯(cuò)誤會(huì)被稱為Bug呢?

因?yàn)?.. 它第一次出現(xiàn)真的是因?yàn)橐恢籅ug:
據(jù)說(shuō)芍秆,1947年9月9日惯疙,一只小飛蛾鉆進(jìn)了計(jì)算機(jī)電路里,導(dǎo)致系統(tǒng)無(wú)法工作妖啥,一位名叫格蕾絲·赫柏的人把飛蛾拍死在工作日志上(見(jiàn)圖)霉颠,寫(xiě)道:就是這個(gè) bug(蟲(chóng)子),害我們今天的工作無(wú)法完成——于是荆虱,bug一詞成了電腦系統(tǒng)程序的專業(yè)術(shù)語(yǔ)蒿偎,形容那些系統(tǒng)中的缺陷或問(wèn)題。

世界第一個(gè)Bug記錄

我相信Bug這個(gè)詞大家并不難理解怀读,不過(guò)我還是以 幽默诉位、易懂、充滿趣味 的方式再講一遍吧菜枷!

A點(diǎn)到B點(diǎn) 為例苍糠,Bug 我們可以理解為是在我們從A點(diǎn)到B點(diǎn)過(guò)程中出現(xiàn)的各種意外,比如:

  • 接單的Uber司機(jī)突然被交警抓了(此時(shí)Debug方法為重新下單)
  • 走路過(guò)去B點(diǎn)的時(shí)候突然下起大雨 (此時(shí)Debug方法為等雨推√埽或買把傘)
  • 比如本山大叔因?yàn)樘^(guò)高調(diào)而... (此時(shí)Debug方法為:不~ 這不是bug岳瞭,這是特性!)

以** 追女(男)神** 為例蚊锹,Bug 我們可以理解為我們?cè)诩s會(huì)過(guò)程中各種小插曲瞳筏,比如:

  • 對(duì)方因?yàn)榇蛴螒蚧蛘哽翼n劇通宵并且關(guān)機(jī) (此時(shí)Debug方法為,等~)
  • 對(duì)方因?yàn)樾那椴缓枚幌牒湍阏f(shuō)話枫耳,并扔了一只狗 (此時(shí)Debug方法為乏矾,等~)
  • 對(duì)方因?yàn)榱硪粋€(gè)人而放了你飛機(jī) (此時(shí)Debug方法為...

所以,Bug 和 Debug就是一個(gè)出現(xiàn)問(wèn)題和解決問(wèn)題的過(guò)程。
如果你一直聽(tīng)到你的程序員朋友說(shuō)他一直在加班調(diào)Bug钻心,你不需驚訝凄硼,因?yàn)樵谖覀兊纳钪形覀冏约翰灰彩且恢碧幱诔霈F(xiàn)問(wèn)題和解決問(wèn)題的過(guò)程中么?
我們屬于大自然創(chuàng)造出的奇跡捷沸,而計(jì)算機(jī)只是我們?nèi)祟愃鶆?chuàng)造出來(lái)的物品摊沉,那么,連我們?nèi)祟惐旧矶家恢背霈F(xiàn)問(wèn)題的話痒给,程序它说墨,一直有Bug,又有什么不正常呢苍柏?
而且尼斧,計(jì)算機(jī)科學(xué)家們正在 創(chuàng)造著我們的計(jì)算機(jī)世界,創(chuàng)造者們?cè)趧?chuàng)造過(guò)程中不斷修正錯(cuò)誤试吁,也就沒(méi)有什么不正常的了棺棵,所以, 請(qǐng)善待你身邊一直加班改Bug的 猿類熄捍。

  • 結(jié)語(yǔ)


本話題也將以系列文的方式推出烛恤,本章先以 幽默、易懂余耽、充滿趣味(捂臉) 的方式介紹 算法缚柏、程序以及Bug 三個(gè)計(jì)算機(jī)界基本法概念,望喜歡碟贾。

本文部分內(nèi)容譯自一本關(guān)于Python開(kāi)源書(shū)籍 How to Think Like a Computer Scientist币喧,感謝!


  1. 其實(shí)計(jì)算機(jī)科學(xué)家和軟件工程師(程序猿)是有差別的缕陕,計(jì)算機(jī)科學(xué)家偏向于計(jì)算機(jī)理論粱锐,而軟件工程師會(huì)更偏向于計(jì)算機(jī)應(yīng)用,一般來(lái)說(shuō)扛邑,"大多數(shù)的后者" 應(yīng)用 "少數(shù)的前者"所研究出來(lái)的理論至現(xiàn)實(shí)世界中怜浅。所以他們之間的語(yǔ)言和方法,是共通的蔬崩。 ?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末恶座,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子沥阳,更是在濱河造成了極大的恐慌跨琳,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,183評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件桐罕,死亡現(xiàn)場(chǎng)離奇詭異脉让,居然都是意外死亡桂敛,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門溅潜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)术唬,“玉大人,你說(shuō)我怎么就攤上這事滚澜〈植郑” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,766評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵设捐,是天一觀的道長(zhǎng)借浊。 經(jīng)常有香客問(wèn)我,道長(zhǎng)萝招,這世上最難降的妖魔是什么蚂斤? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,854評(píng)論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮即寒,結(jié)果婚禮上橡淆,老公的妹妹穿的比我還像新娘。我一直安慰自己母赵,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,871評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布具滴。 她就那樣靜靜地躺著凹嘲,像睡著了一般。 火紅的嫁衣襯著肌膚如雪构韵。 梳的紋絲不亂的頭發(fā)上周蹭,一...
    開(kāi)封第一講書(shū)人閱讀 52,457評(píng)論 1 311
  • 那天,我揣著相機(jī)與錄音疲恢,去河邊找鬼凶朗。 笑死,一個(gè)胖子當(dāng)著我的面吹牛显拳,可吹牛的內(nèi)容都是我干的棚愤。 我是一名探鬼主播,決...
    沈念sama閱讀 40,999評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼杂数,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼宛畦!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起揍移,我...
    開(kāi)封第一講書(shū)人閱讀 39,914評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤次和,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后那伐,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體踏施,經(jīng)...
    沈念sama閱讀 46,465評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡石蔗,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,543評(píng)論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了畅形。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片养距。...
    茶點(diǎn)故事閱讀 40,675評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖束亏,靈堂內(nèi)的尸體忽然破棺而出铃在,到底是詐尸還是另有隱情,我是刑警寧澤碍遍,帶...
    沈念sama閱讀 36,354評(píng)論 5 351
  • 正文 年R本政府宣布定铜,位于F島的核電站,受9級(jí)特大地震影響怕敬,放射性物質(zhì)發(fā)生泄漏揣炕。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,029評(píng)論 3 335
  • 文/蒙蒙 一东跪、第九天 我趴在偏房一處隱蔽的房頂上張望畸陡。 院中可真熱鬧,春花似錦虽填、人聲如沸丁恭。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,514評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)牲览。三九已至,卻和暖如春恶守,著一層夾襖步出監(jiān)牢的瞬間第献,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,616評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工兔港, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留庸毫,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,091評(píng)論 3 378
  • 正文 我出身青樓衫樊,卻偏偏與公主長(zhǎng)得像飒赃,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子橡伞,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,685評(píng)論 2 360

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,305評(píng)論 25 707
  • 本文把程序員所需掌握的關(guān)鍵知識(shí)總結(jié)為三大類19個(gè)關(guān)鍵概念盒揉,然后給出了掌握每個(gè)關(guān)鍵概念所需的入門書(shū)籍,必讀書(shū)籍兑徘,以及...
    dle_oxio閱讀 11,139評(píng)論 6 244
  • 一刚盈、需求場(chǎng)景: 二、Keepalived 簡(jiǎn)要介紹 Keepalived 是一種高性能的服務(wù)器高可用或熱備解決方案...
    會(huì)跳舞的機(jī)器人閱讀 16,410評(píng)論 10 48
  • 在圖書(shū)館幾千本書(shū)中挑挑揀揀最終選擇這本書(shū)的原因我想大概是有兩個(gè)挂脑。 一是藕漱,今年我和基友計(jì)劃在2020年去日本旅行欲侮,需...
    南如閱讀 736評(píng)論 2 1
  • 上周六中午和同學(xué)在人廣附近的廣西北路吃飯的時(shí)候威蕉,路過(guò)一家包子店。聽(tīng)同學(xué)說(shuō)橄仍,這家店的港式流沙包是上海的人氣美食韧涨。當(dāng)時(shí)...
    上官若藍(lán)閱讀 444評(píng)論 0 0