仓库源文

.. Kenneth Lee 版权所有 2017-2020

:Authors: Kenneth Lee :Version: 1.0

学习本质?


昨天在知乎上看到一个讨论,关于如何学习编程语言的,源自某自视甚高的“编程专家”的 一篇关于掌握所有编程语言的文章。我本来想在那里直接说两句的,但看看问题上的氛围 ,觉得去拉仇恨没有什么意义,但有些想法,不写下来又不爽,就写在这里吧。

我觉得很多缺乏工程经验的程序员,都很不健康地追求“本质”,for不就是循环吗?jump不 就是branch吗?不是的,for就是for,循环就是循环,Python就是Python,Lua就是Lua, 本质几斤几两?你在c里面可以用for写for(i=0; i<100; i++),我在python里就只能写for i in range(0, 100):,这就是不同,这是工程的不同。在工程面前,“本质”是不重要的。 写惯了Python,你的Lua自然就会高效率吗?Pyhton和Lua的正则表达式写法一样吗?你写 惯了Python的re,换成Lua的时候就自动会有效率吗?

你实现一个模块,就这些什么跳转,递归,调用重要吗?不是的,更重要的是它有哪些库 ,这些库是不是稳定,是有多少工程师可以用。这才是判断问题的关键,老想着你的本质 ,难怪你一事无成。

我们学语言,为什么要从Hello world开始?不是因为我们不在乎算法,不在乎语言特性, 而是因为我们要理解一个程序“能干什么”,怎么用最少的逻辑,看到程序work!这比所有的 语言特性都重要,因为语言特性没有“本源”重要,我们写程序首先是解决问题,而不是语 言中存在的“道理”,这叫“绝学无忧”,不要被道理左右了你,要用解决问题来左右你。如 果你学习语言,就用这个语言来解决一些问题,这些问题才会带你找到“本质”。只是“本质 ”不那么可靠,今天你觉得跳转重要,后面可能就变成向量化更重要,后面又可能变成IO才 最重要,技术就在这样一个个的“弯道”中前进,并把不合时宜的老古董抛出主流。

那些醉心于学“本质”的,你别还没老呢,就成了老古董了。