代码之髓读后感——如何高效的学习语言


title: 代码之髓读后感——如何高效的学习语言
date: 2017-07-08 17:17:00
categories: 技术
tags: 读后感编程


王垠:如何掌握程序语言架构

《代码之髓》这本书里提出了三种学习语言的方法—— 如何高效的学习语言?函数

  1. 在比较中学习工具

  2. 在历史中学习学习

  3. 在实践中学习设计

在比较中学习

经过比较多种语言,总结出某种语言的独有特色,以及多种语言的共有特色。blog

借用王垠的一些话——get

重视语言特性,而不是语言。
何一种“语言”,都是各类“语言特性”的组合。
每一种语言里面必然有一套“通用”的特性。好比变量,函数,整数和浮点数运算,等等。这些是每一个通用程序语言里面都必须有的,一个都不能少。你只要经过“某种语言”学会了这些特性,掌握这些特性的根本概念,就能随时把这些知识应用到任何其它语言。
掌握了通用的语言特性,剩下的就只剩某些语言“特有”的特性了。研究语言的人都知道,要设计出新的,好的,无害的特性,是很是困难的。因此通常说来,一种好的语言,它所特有的新特性,终究不会超过一两种。若是有个语言号称本身有超过 5 种新特性,那你就得当心了,由于它们带来的和可能不是优点,而是灾难!it

各类语言之中,都有着共性,这是基本,而个性只是部分点。入门

在比较中学习,能够帮助咱们更清楚地意识到:

哪些点是共性——就是上面王垠所谓的“语言特性”,由于这才是语言的基本。掌握了这些共性,对于咱们的语言学习有着极大的帮助。这一般肯定着一门语言的基本架构方式,大体的代码雏形,以及基本流程。这会告诉咱们如何去站立,如何去行走。

哪些点是个性——这个是须要咱们深刻使用时须要考虑的点。由于通常这些东西,都是一些在当前特定的条件下的,“如此作更为方便”的方法。有时候这些东西可能不是必要的考量,可是掌握他们,对于此门语言使用每每会起到提高总体质量的做用。甚至促使咱们对于解决适当的问题有着更为灵活多选的方式。这会告诉咱们如何在如今的路上奔跑,跳跃。由于这时候更加关注了这条路上的细节,哪里有坑,哪里有捷径...

由于掌握了语言特性的人都知道,本身须要的特性,在任何语言里面必定有对应的表达方式。

借用在当下的语境中,重视在对比中学习,体会到更多的语言特性,会帮助咱们对于语言的学习变得更加有一种直观的感觉。咱们的思惟中,解决问题变得天然而然。编程就是把思惟映射到机器中的途径而已。咱们已经知道什么样的想法能够用怎样的工具来实现,那实现想法也不就是一段段思路的拼接的过程么?

咱们有时会发现,编程其实并不难,彷佛就是须要了解下这门语言中有着哪些工具可供咱们利用,咱们须要作的就是熟悉这样一套系统,一台大型设备的各类功能。可是咱们最后会发现,也只有那些其余工具也具备的功能,才是咱们最起码要知道的。那些高精尖的技巧,也不过是在特殊环境下的应对方式。

感受学起来好像很容易,可是实际上咱们在学习中老是会迷失在各类细节中,最典型的就是相似于C中关于输出的格式的翻炒——

举个夸张点的例子。我发现不少编程培训班和野鸡大学的编程入门课,每每一来就教学生如何使用 printf 打印“Hello World!”,进而要他们记忆 printf 的各类“格式字符”的意义,要他们实现各类复杂格式的打印输出,甚至要求打印到文本文件里,而后再读出来……

对于掌握编程的核心概念来讲,这些其实都是次要的。

总而言之,经过对比学习,你会更容易发现真正的语言特性到底是什么。学习编程到底要学习什么。

在历史中学习

经过追溯语言的发展历史,了解语言是如何产生,变化,消失的,探寻语言发展演变的轨迹。

有时候,咱们在学习中,对于一些功能的学习,每每会不明因此,这实际上是由于,对于这种功能,你本身从内在其实并无以为理所固然,就像是为何要有类这一类的问题其实潜在的就在你的心头萦绕着,这使得你的学习,会变得茫然,就像咱们最初学习线性代数,上来就整一堆定义,先把你整晕,再来一堆定理,每每不明因此,直接就迷失了,到头来脑壳空空,真正的实际应用中,什么也变不出来。因此我到如今对于线性代数仍是充满了敬畏。

在历史中学习,能帮助咱们更加清晰地了解那些被掩埋的细节。回看语言设计者为了解决何种问题而创造出这样一种语言,阅读其发展变迁的历史,那些功能的原因就会变得清晰,你也就会更加认同其中所蕴含的现实意义。

而从历史中学习,也是有助于咱们更容易了解到语言的特性,那些非特性的部分为何被创造出来,是为了解决一种什么样的具体问题。这些都有助于加深咱们对于语言的理解。

在实践中学习

亲自进行程序设计,边实践边思考如何编程,才能深刻了解设计者的意图,同时也能发现本身原先理解的不到位之处。

这是这行的至上真理。


三种学习的方式,其实是为了知足咱们学习语言的三种情绪:但愿快速掌握的迫切,对于未知事物的求真以及对于自我认知的测验

相关文章
相关标签/搜索