尼古拉斯·達內(nèi):有很多定義方式。首先,代碼是使機器運行的程序。如果沒有代碼,我們的電子設備包括電腦、手機就沒有生命。代碼是讓我們接近機器靈魂的方式,使機器能根據(jù)我們的需求而運作。它是一些通過算法來自動完成任務的句法。這是個定義。
但是代碼也可以被定義為一種語言。因為它基于數(shù)學算法,我們過去傾向于認為它只是一個屬于數(shù)學家和工程師的領(lǐng)域。但實際上,許多語言學者已經(jīng)對編碼和發(fā)明新的編程語言產(chǎn)生興趣。有些人甚至用代碼寫詩!斯坦福大學的學生就創(chuàng)立了一個俱樂部,將詩歌和編程融合在一起。代碼完全可以被視為一種說話和表達方式。
從某種意義上說,學習代碼和學習一門外語相似:開始會很艱難,但漸漸地,我們開始理解語言的邏輯性——每個人都有能力掌握它,因為說話誰都會。
從機器語言、到面向?qū)ο笳Z言,編程代碼的演進歷史就是不斷地抽象。這一路上我們還在操作系統(tǒng)的作用下得以開發(fā)出更好的基礎(chǔ)設施。大家很快意識到自己可以在這些基礎(chǔ)設施之上編寫出更復雜的程序,然后繼續(xù)開發(fā)出更復雜的軟件架構(gòu)。
在機器學習的推動下我們現(xiàn)在進入了軟件開發(fā)的新時代。IBM 的 Watson 和 Google 的 AlphaGo 已經(jīng)證明數(shù)據(jù)>算法。或者更地說,數(shù)據(jù)就是算法。但是現(xiàn)在你需要非常特殊的技能才能開發(fā)出機器學習解決方案。工程師和數(shù)據(jù)科學家仍然需要對機器學習算法進行編程,但終同樣的系統(tǒng)會教它們學會如何通過分析自己的代碼來改進自己。
代碼,其實重要的用途就是編程來解決我們生活中的問題,所以不同的編程語言應用于不用的領(lǐng)域,它們并沒有高低貴賤之分,只不過有些應用于商業(yè)化,有些應用于教學領(lǐng)域。而貫徹始終的重要的就是編程思維,編程思維是我們解決問題的一種方法,就是能夠利用我們已有的知識和工具,將自身的思路轉(zhuǎn)化成邏輯運算的步驟,從而完成復雜的任務。