zoukankan      html  css  js  c++  java
  • 嗯嗯

    折腾眼前这个算法已经有一个月了。

    本来没想弄这个,也没想到设计一个严肃点的算法或者说算法组合有这么费劲。还是水平低下的原因。

    回顾其过程,TDD在这方面起的作用确实不大,这也证实了我一向的看法。

    过去曾经说过,在契约编程之前,断言是个不错、又轻量级的方式。当时那么说的时候,其实是没有身体力行的。

    后来看到这也是《编程珠玑》的作者推荐的方式;他同时提到我们真写程序的时候往往又抛弃了严谨的做法。

    现在我发现在一些工作中,不得不经常性的加入断言了。难怪PERL的作者说:

    “你们当中很多人都知道程序员的美德。当然啦,有三种:那就是懒惰、急躁以及傲慢。”

    像不像你我:) 偏偏只有这样的人,才会跟程序较真。这不是很奇妙么?

    前面的书单,克莱因的两本著作不推荐购买。原因是,这两本都是表达相同观点的,重复内容也比较多。

    估计《古今数学思想》(尚未购买)是他的这些观点的集中,那么其他作品就没什么必要阅读了。

    《数》这本书里除了一些历史,大多数东西我之前都知道了,但是作为入门科普,枯燥性确实算比较小的。

    《证明与反驳》稍微翻了翻,对于学习思维方法应该有所启发;其它的还没看。

    我最近的看法是,实际上计算机软件技术,比较核心的一个领域实际上就是对数学工具的一种具体实现。[1]

    而相对外围的(不是说价值小),是对领域知识及存在的模式的一种复制,用以取代人类效率不佳的重复性工作。

    相对“没价值”的是什么?我个人认为是底层知识及具体技巧。[a]

    包括但不限于,比如系统内核、硬件相关、X协议、Y平台等领域中,排除数学之后所剩余的那些东西。

    (经验方法论则根本不值一提了,努力往似是而非的哲学观点上靠恰恰是缺乏基础的表现)[2]

    当然这些“没价值”的东西也需要聪明劲儿:尤其是考虑到创造力或感情所成就的一批像Linus这样的作者或发明家。

    (即便在那些仅仅是*真正擅长摆弄事物*的专家身上,我们也能学到很多东西)[3]

    不过,就康德所说,科学的严肃性和该学科内包含的数学成正比;这还是有一定道理的。[b]

    缺乏对数学工具的熟练使用,像我现在这样勉力支撑,实在有点痛苦....

     


      Update:

    注1:小学算术也是数学,就最单纯的程序员来说,有时候我们可以简单认为,背后的数学多少和工资直接挂钩。

    注2:我的一个体会是,听上去很有道理、看似能帮助很多人,和真正简化人类工作之间不同是需要掂量的。

    注3:事实上这里隐藏了一个强调:星号括起来的部分,和“熟知某种东西”, 两者之间是有本质差别的。

    Update:

    注a:在一个紧急时刻卡在这里,有时是糟糕的甚至致命的。在这一点上我也许包含了比较多的个人喜恶。

    但是长期来看,专属某一具体工具的知识,其价值肯定是呈一个滑坡的趋势。

    注b:也许我给了数学过高的评价,而这正是因为我不懂数学?

    从我阅读得到的蛛丝马迹来看,数学领域里不是不存在混乱,数学家的智力也并未明显高于一般人类。

    不过,可以暂且认为关注的不是具体的数学,而是数学所代表的对思维方式的认真追究。

  • 相关阅读:
    ASP.NET 取得 Request URL 的各个部分
    将GAC中的DLL复制出来
    SqlServer2008 手动提交
    SQL获取表中最新插入的记录
    HTTP/1.1 500 Server Error错误解决方法
    ORACLE 物化视图
    JIMMY ZHANG告诉你快速提高自己的开发能力
    走进设计模式系列之开篇
    大话设计模式之:Adapter模式
    jquery+bootstrap自定义插件开发之dropdownlist
  • 原文地址:https://www.cnblogs.com/guaiguai/p/1489247.html
Copyright © 2011-2022 走看看