我想知道
验证出某些数学定理是一件非常酷的事,但我为什么要那么干呢?所以当Think Python的习题要我做那种事的时候,我会莫名其妙地产生一些弱弱的抗拒心理。有时,留存在我脑海的数学知识根本不足以让我理解那些符号到底要我做什么。我不知道为什么写这本书的人觉得读者都明白那些数学符号是要干些什么的,他们面向的到底是什么知识层面的读者呢?那些符号在中国的教育系统里,大概高中中等水平以上的学生会懂。作为一个大学生,理论上我应该全懂那些东西到底是什么意思。倒不是要你真的算出来,但你起码得知道他们要你做些什么。时间是把杀猪刀,中国的应试教育使得大家在离开学校多年以后,如果期间又长期不用,通常都不会记得那些东西,大概只会隐约记得曾经学过。还记得小学的时候,我的某个同学很抗拒学数学,他觉得生活中最简单的加减乘除就能解决几乎所有问题,当然这个所有问题只是他眼中、他当时所遇到的那些。
为什么要学数学?我不知道。有些时候我觉得数学真的很有趣。大概是因为我觉得其中的某些规律会让我惊叹不已。那些规律不是人类创造出来的,是大自然母亲孕育出来的,我们只是逐步知道了那些东西的存在,逐步开始利用那些规律做某些事。之所以某些时候我会有点害怕数学,是因为我是个吊儿郎当的人,即便我懂得某些规律,但是在不断重复的过程中,做着做着我就出错了。小学时计算之所以出错,倒不是因为我乘法表背得不好,而是因为我的字写得太丑,为了图快,字写着写着连我自己都不认得到底是什么。计算机不会因为正常重复而犯错误,如果真的崩了,必定是制定的规则有问题。还记得小学时候影响我最深的那个数学老师,非常看重数学的思维,而不是数学重复计算本身。我的运气非常好,小学、初中、高中,我都分别遇到了一个影响我一生的数学老师。在我印象之中,其他老师从来没有这么深刻地影响过我,虽然他们其中的某些对我来说很重要,我也非常喜欢。也有一些老师是我很不喜欢的,但不喜欢归不喜欢,我不会因为那个就故意搞砸自己那一门课的成绩,反而,我要拿出更优秀的成绩向他们示威。当然,有些时候,我不够强大,所以想示威也无能为力。我的学习不是为了跟老师较劲。
学生时代,为什么要学习?为什么要把题目解答正确?其实当时我完全没有考虑过这些问题,我也没有时间考虑除了用一种方法,还能不能用其它方法得出同样的答案。这里的发散应该包括除了那个参考答案以外,某道题是否还会存在其它情况,还会出现其它答案吗?很多时候,我们的时间就只够解答那道题,根本没有闲情考虑那道题如果改变了某些参数,会不会出现一些比较颠覆的结果。做作业时的我们,又或者考试时的我们,干掉这道题以后就直奔下一道。如果每次都胡思乱想,作业无论如何都做不完,考试就更别想可以在规定时间之内完成答题。
后来我才发现,如果人要真的有所得,要认真地学习研究,除了理解某个知识以外,还必须有一定的自主思考的空间与时间。我们不应该一直被别人牵着鼻子去发散,而应该学会主动地脑洞大开。很多时候,别人会用某个分数衡量我们,或许是通过考试,或许是通过讨论,但那个真的就代表我们吗?能定义我们的只有我们自己。
我们之所以要探寻,我们之所以要纠结,是因为我们想知道、想做得更好。
> 我们之所以要探寻,我们之所以要纠结,是因为我们想知道、想做得更好。
太棒了.
We ask question because learning things allows us to explore what we like. -by Michael Stevens [https://youtu.be/u9hauSrihYQ?t=991]
When I learn Emacs lisp, they do not teach Math, but some functions to edit things. I write some elisp function when I was just a beginner, but I still use the function I wrote many years ago.
That’s one of the reason why I like Emacs lisp so much. It requirs the learner to write functions that they use. And it is really simple.
In the past, I learn Fortran, C/++, Python, etc. They are good at big project but there’s something missing for just writing programs for programmer him/her-self.
现在我之所以Python是因为我要从零开始完全地了解一个编程语言,我总觉得大学学的C是半桶水的,因为当时的C除了用来完成考试啥都做不了。如果我不完全熟悉至少一种,我永远都会在入门处瞎逛,而不能做到让编程语言为我所用,成为我懒惰的工具。
我最开始选的 C++ ,作为这样的语言,后来发现似乎永远也无法熟悉C++…
后来发现 Elisp, 让我喜欢上计算机语言.
之前用最最经典的记事本写C语言、VB、VBA、R语言的脚本,我觉得现在用上VSCode整Python已经是一个历史性的简化飞跃了~
This is reflection by a user on Emacs-china: https://emacs-china.org/t/elisp/12685
为什么选择 elisp?
以『尽量减少学习者 burn out 的可能性』为目标,我的教学策略是:1. 尽量边学边用提高趣味性,2. 尽量降低入门的难度。
(当然,趣味性很主观,但我自己入门的时候,特别不喜欢做数学性强的习题, 比如 SICP 的很多题,让我“爽”到的,是那种写完了立马就能用的:比如我进行文本编辑时,发现经常想要跳到下一个空行,于是就基于 search-forward-regexp 写一个小命令来实现 —— 写出来之后我会感觉特别开心)
基于1,所选语言得有一个实际的“交互环境” —— javascript 写了立刻就能在浏览器中看到效果,elisp 写了立刻就能在 emacs 中看到效果
基于2,所选语言的语法要尽量简洁 —— 筛掉了语法比较“脏”的 javascript
这是为什么排除了 c/rust/java 这类编译型语言,也排除了 python/ruby 之类的解释型语言,并且也排除了 scheme/clojure 之类的其他 lisp 的原因。
关于实用性,就工作相关的话我觉得最对口的是Excel VBA以及R语言。用实用去引导学习那些我也的确做到了一些,实现了我某些我期待的功能。我现在需要提升的是我运用理解编程语言的心法,也就是那些东西除了表达形式以外共通的东西,这个我确信大学的时候我是没有学过的。
> 表达形式以外共通的东西
明白了,向你学习. : )
用过好几种以外我觉得有点类似,但语法各有各的特点。语法好套用,但内在的思维方式不见识、练习无法学会。