今天很幸福

 这几天读程序分析的书非常郁闷。 无数次怀疑自己是不是真在读关于编程的书。感觉搞程序语言(包括搞软件工程)的人和搞算法的人不是一个世界的,虽然都在八卦算法和数据结构。看那些算法书里的概念多直观啊。再困难的概念都是从无数具体实在的例子中浮现出来的,基本不用费脑子去理解和记忆。再看程序分析的书,符号满天飞。不把54个希腊字母用完誓不罢休。有限的几个例子也是用来支持作者讨论的模型的,而不是用来引出概念。比如像数据流分析那么直观的东西,一来就是一组集合方程,然后说找到了定点就找到了最小解。嗯,虽然不太理解,但还能接受。然后作者就开始扯什么偏序集,格点,最小定点,最大定点了。然后以后的各式各样的数据流分析就变成对一个格点加一堆函数集合找定点了。然后俺就彻底迷茫了。该不是那帮写书的银为了程序分析而程序分析吧?Y们写过程序没有啊(嗯,俺知道,自己很幼稚)?其实自学理论最大的障碍之一就是缺乏动力:这个理论从哪里来?到哪里去?我为什么要学?可惜很多书都不考虑这些问题。有的甚至连非标准符号系统都不解释。看来当年Knuth在《Mathematical Writing》里强调的“为普通人而写,你的作品专家能看懂;为专家而写,你的书没人看懂”的箴言还不够深入人心。

还好,今天一个好朋友花了两小时,耐心地回答了俺一系列愚蠢问题,终于让俺明白了格点理论后面的直观意义,以及在程序分析里的作用。当时有如醍醐灌顶。心中积郁一扫而空。霎时间海阔天空,眼前一片清明。当年阿基米德在浴池里鱼跃而起,一边裸奔一边高喊“Eureka”的强烈快感,大致如此吧。当然,阿老大推想出了浮力原理,俺只不过让自己的弱智状况有所改善,还是有很大区别的。

看来:
  1. 有个耐心细致肯花无数小时解答自己弱智问题的朋友实在是人生大幸
  2. 本科时要是学了这些数学课就好了:
    1. 抽象代数,什么格点,群,环,域,场。。。越来越有用
    2. 拓扑。想不到这也有用
    3. 高年级数理逻辑。什么集合论,模型论,递归理论。。。到处都在用
    4. 组合数学。图论,组合算法,组合构造,网络理论。。。通通有用
    5. 简单说,想读计算机研究生的人最好修数学计算机双学位
  3. 有个同伴一起学习太重要了。
展开阅读全文

没有更多推荐了,返回首页