摘要:代碼之髓讀后感如何高效的學(xué)習(xí)語(yǔ)言技術(shù)讀后感王垠如何掌握程序語(yǔ)言代碼之髓這本書(shū)里提出了三種學(xué)習(xí)語(yǔ)言的方法如何高效的學(xué)習(xí)語(yǔ)言在比較中學(xué)習(xí)在歷史中學(xué)習(xí)在實(shí)踐中學(xué)習(xí)在比較中學(xué)習(xí)通過(guò)比較多種語(yǔ)言,總結(jié)出某種語(yǔ)言的獨(dú)有特點(diǎn),以及多種語(yǔ)言的共有特點(diǎn)。
title: 代碼之髓讀后感——如何高效的學(xué)習(xí)語(yǔ)言
date: 2017-07-08 17:17:00
categories: 技術(shù)
tags: 讀后感
王垠:如何掌握程序語(yǔ)言
《代碼之髓》這本書(shū)里提出了三種學(xué)習(xí)語(yǔ)言的方法—— 如何高效的學(xué)習(xí)語(yǔ)言?
在比較中學(xué)習(xí)
在歷史中學(xué)習(xí)
在實(shí)踐中學(xué)習(xí)
在比較中學(xué)習(xí)通過(guò)比較多種語(yǔ)言,總結(jié)出某種語(yǔ)言的獨(dú)有特點(diǎn),以及多種語(yǔ)言的共有特點(diǎn)。
借用王垠的一些話(huà)——
重視語(yǔ)言特性,而不是語(yǔ)言。
何一種“語(yǔ)言”,都是各種“語(yǔ)言特性”的組合。
每一種語(yǔ)言里面必然有一套“通用”的特性。比如變量,函數(shù),整數(shù)和浮點(diǎn)數(shù)運(yùn)算,等等。這些是每個(gè)通用程序語(yǔ)言里面都必須有的,一個(gè)都不能少。你只要通過(guò)“某種語(yǔ)言”學(xué)會(huì)了這些特性,掌握這些特性的根本概念,就能隨時(shí)把這些知識(shí)應(yīng)用到任何其它語(yǔ)言。
掌握了通用的語(yǔ)言特性,剩下的就只剩某些語(yǔ)言“特有”的特性了。研究語(yǔ)言的人都知道,要設(shè)計(jì)出新的,好的,無(wú)害的特性,是非常困難的。所以一般說(shuō)來(lái),一種好的語(yǔ)言,它所特有的新特性,終究不會(huì)超過(guò)一兩種。如果有個(gè)語(yǔ)言號(hào)稱(chēng)自己有超過(guò) 5 種新特性,那你就得小心了,因?yàn)樗鼈儙?lái)的和可能不是優(yōu)勢(shì),而是災(zāi)難!
各種語(yǔ)言之中,都有著共性,這是基本,而個(gè)性只是部分點(diǎn)。
在比較中學(xué)習(xí),可以幫助我們更清楚地意識(shí)到:
哪些點(diǎn)是共性——就是上面王垠所謂的“語(yǔ)言特性”,因?yàn)檫@才是語(yǔ)言的基本。掌握了這些共性,對(duì)于我們的語(yǔ)言學(xué)習(xí)有著極大的幫助。這通常確定著一門(mén)語(yǔ)言的基本架構(gòu)方式,大致的代碼雛形,以及基本流程。這會(huì)告訴我們?nèi)绾稳フ玖?,如何去行走?/p>
哪些點(diǎn)是個(gè)性——這個(gè)是需要我們深入使用時(shí)需要考慮的點(diǎn)。因?yàn)橐话氵@些東西,都是一些在當(dāng)前特定的條件下的,“如此做更為方便”的方法。有時(shí)候這些東西可能不是必要的考量,但是掌握他們,對(duì)于此門(mén)語(yǔ)言使用往往會(huì)起到提升整體質(zhì)量的作用。甚至促使我們對(duì)于解決適當(dāng)?shù)膯?wèn)題有著更為靈活多選的方式。這會(huì)告訴我們?nèi)绾卧诂F(xiàn)在的路上奔跑,跳躍。因?yàn)檫@時(shí)候更加關(guān)注了這條路上的細(xì)節(jié),哪里有坑,哪里有捷徑...
因?yàn)檎莆樟苏Z(yǔ)言特性的人都知道,自己需要的特性,在任何語(yǔ)言里面一定有對(duì)應(yīng)的表達(dá)方式。
借用在當(dāng)下的語(yǔ)境中,重視在對(duì)比中學(xué)習(xí),體會(huì)到更多的語(yǔ)言特性,會(huì)幫助我們對(duì)于語(yǔ)言的學(xué)習(xí)變得更加有一種直觀的感受。我們的思維中,解決問(wèn)題變得自然而然。編程就是把思維映射到機(jī)器中的途徑而已。我們已經(jīng)知道什么樣的想法可以用怎樣的工具來(lái)實(shí)現(xiàn),那實(shí)現(xiàn)想法也不就是一段段思路的拼接的過(guò)程么?
我們有時(shí)會(huì)發(fā)現(xiàn),編程其實(shí)并不難,似乎就是需要了解下這門(mén)語(yǔ)言中有著哪些工具可供我們利用,我們需要做的就是熟悉這樣一套系統(tǒng),一臺(tái)大型設(shè)備的各種功能。但是我們最后會(huì)發(fā)現(xiàn),也只有那些其他工具也具有的功能,才是我們最起碼要知道的。那些高精尖的技巧,也不過(guò)是在特殊環(huán)境下的應(yīng)對(duì)方式。
感覺(jué)學(xué)起來(lái)好像很容易,但是實(shí)際上我們?cè)趯W(xué)習(xí)中總是會(huì)迷失在各種細(xì)節(jié)中,最典型的就是類(lèi)似于C中關(guān)于輸出的格式的翻炒——
舉個(gè)夸張點(diǎn)的例子。我發(fā)現(xiàn)很多編程培訓(xùn)班和野雞大學(xué)的編程入門(mén)課,往往一來(lái)就教學(xué)生如何使用 printf 打印“Hello World!”,進(jìn)而要他們記憶 printf 的各種“格式字符”的意義,要他們實(shí)現(xiàn)各種復(fù)雜格式的打印輸出,甚至要求打印到文本文件里,然后再讀出來(lái)……
對(duì)于掌握編程的核心概念來(lái)說(shuō),這些其實(shí)都是次要的。
總而言之,通過(guò)對(duì)比學(xué)習(xí),你會(huì)更容易發(fā)現(xiàn)真正的語(yǔ)言特性究竟是什么。學(xué)習(xí)編程到底要學(xué)習(xí)什么。
在歷史中學(xué)習(xí)通過(guò)追溯語(yǔ)言的發(fā)展歷史,了解語(yǔ)言是如何產(chǎn)生,變化,消失的,探尋語(yǔ)言發(fā)展演變的軌跡。
有時(shí)候,我們?cè)趯W(xué)習(xí)中,對(duì)于一些功能的學(xué)習(xí),往往會(huì)不明所以,這其實(shí)是因?yàn)?,?duì)于這種功能,你自己從內(nèi)在其實(shí)并沒(méi)有覺(jué)得理所當(dāng)然,就像是為什么要有類(lèi)這一類(lèi)的問(wèn)題其實(shí)潛在的就在你的心頭縈繞著,這使得你的學(xué)習(xí),會(huì)變得茫然,就像我們最初學(xué)習(xí)線性代數(shù),上來(lái)就整一堆定義,先把你整暈,再來(lái)一堆定理,往往不明所以,直接就迷失了,到頭來(lái)腦袋空空,真正的實(shí)際應(yīng)用中,什么也變不出來(lái)。所以我到現(xiàn)在對(duì)于線性代數(shù)還是充滿(mǎn)了敬畏。
在歷史中學(xué)習(xí),能幫助我們更加清晰地了解那些被掩埋的細(xì)節(jié)?;乜凑Z(yǔ)言設(shè)計(jì)者為了解決何種問(wèn)題而創(chuàng)造出這樣一種語(yǔ)言,閱讀其發(fā)展變遷的歷史,那些功能的緣由就會(huì)變得清晰,你也就會(huì)更加認(rèn)同其中所蘊(yùn)含的現(xiàn)實(shí)意義。
而從歷史中學(xué)習(xí),也是有助于我們更容易了解到語(yǔ)言的特性,那些非特性的部分為什么被創(chuàng)造出來(lái),是為了解決一種什么樣的具體問(wèn)題。這些都有助于加深我們對(duì)于語(yǔ)言的理解。
在實(shí)踐中學(xué)習(xí)親自進(jìn)行程序設(shè)計(jì),邊實(shí)踐邊思考如何編程,才能深入了解設(shè)計(jì)者的意圖,同時(shí)也能發(fā)現(xiàn)自己原先理解的不到位之處。
這是這行的至上真理。
三種學(xué)習(xí)的方式,實(shí)際上是為了滿(mǎn)足我們學(xué)習(xí)語(yǔ)言的三種情緒:希望快速掌握的迫切,對(duì)于未知事物的求真以及對(duì)于自我認(rèn)知的測(cè)驗(yàn)
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/67242.html
摘要:兩篇文章今天看了兩篇文章我覺(jué)得對(duì)我的影響會(huì)很大當(dāng)然都是相關(guān)的一篇是在大會(huì)上的演講有視頻也有文字版關(guān)于數(shù)據(jù)庫(kù)另一篇是關(guān)于的文章從上看到的關(guān)于架構(gòu)來(lái)源前面一篇是在的文檔上看到的這文檔上有不少我關(guān)心的技術(shù)的作者最近在上 兩篇文章 今天看了兩篇文章, 我覺(jué)得對(duì)我的影響會(huì)很大, 當(dāng)然, 都是 React 相關(guān)的: 一篇是 Martin Kleppmann 在 Strangeloop 2014...
摘要:日期和時(shí)間使用類(lèi)完成讀取設(shè)置比較和計(jì)算日期與時(shí)間。單元測(cè)試單元測(cè)試是從編寫(xiě)開(kāi)始,貫穿于整個(gè)開(kāi)發(fā)周期的一種用于保證函數(shù)類(lèi)和方法的行為與預(yù)期一致的編程方法。是應(yīng)用的單元測(cè)試框架的業(yè)界標(biāo)準(zhǔn),其他幾個(gè)可選框架是行為驅(qū)動(dòng)開(kāi)發(fā)行為驅(qū)動(dòng)開(kāi)發(fā)有兩種方式和。 《php之道》閱讀地址:http://wulijun.github.io/php-the-right-way/#code_style_guide ...
摘要:標(biāo)簽不區(qū)分大小寫(xiě),但推薦小寫(xiě)。標(biāo)簽可以嵌套,但不能交叉嵌套。標(biāo)簽也稱(chēng)為元素。比如行內(nèi)標(biāo)簽亦可成行內(nèi)元素。 ??HTML必備知識(shí)詳解?? 第一部分:HTML框架簡(jiǎn)介...
摘要:作為一名前端架構(gòu)師,你的工作是不斷地探索和評(píng)估新的技術(shù)平臺(tái)方法和框架。世界上沒(méi)有一刀切式的解決方案,而前端架構(gòu)師的使命正是將項(xiàng)目的需求與前端開(kāi)發(fā)的實(shí)際情況相結(jié)合。 做前端工作一段時(shí)間了,也寫(xiě)了不少的項(xiàng)目。但是突然好像快要失去了興趣。美工、后臺(tái)、項(xiàng)目經(jīng)理、測(cè)試等人員多層夾擊。美工說(shuō)就這么設(shè)計(jì),你就得完全按著來(lái)。后臺(tái)說(shuō)這個(gè)需求做不了,得那樣做,于是已經(jīng)做好的頁(yè)面推倒重來(lái)。測(cè)試說(shuō),這樣做更符...
閱讀 3439·2021-11-24 09:39
閱讀 1823·2021-11-17 09:33
閱讀 3617·2021-10-12 10:12
閱讀 5110·2021-09-22 15:51
閱讀 1135·2019-08-30 13:11
閱讀 3596·2019-08-30 10:59
閱讀 603·2019-08-30 10:48
閱讀 1342·2019-08-26 13:48