V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
jadeity
V2EX  ›  问与答

学编程发现许多概念或特性不知道为什么这么设计

  •  
  •   jadeity · 2017-07-18 09:47:20 +08:00 · 2337 次点击
    这是一个创建于 2691 天前的主题,其中的信息可能已经有所发展或是发生改变。
    比如 C#的虚函数成员,开始并不明白为什么要这么做,为什么不直接写另一个函数或者干脆不继承。后来看到一个例子重载一个自定义类的 ToString 方法时才明白这个操作是很有必要的。我觉得编程语言从本质上都是殊途同归的,最终都是机器指令和内存中的数据,将这些结合起来就是最终的程序。那么高级语言只是在人类逻辑和机器逻辑的一个均衡,你要贴近人的逻辑提高人的效率,也要优化机器逻辑提高机器的效率。所以一个编程语言的好坏就是在特定的环境下达到人与机器的效率的最优。而这些语言的设计,既需要设计者的奇思妙想,也需要不断的工程经验总结优化。这些汇聚成一个语言的特性,但是一个初学者面对这么多的概念是不可能一下子就明白的。就像没看过《哈利波特》系列的人直接去看最后一本,你可能知道各个人物的结局,但是为什么会这样?与一个看过全系列的人相比,全看过的人看完会觉得了然,而只看最后的人会更多的是疑问。现在许多编程书籍我看都是和看结局一样的。那么问题就是,能不能推荐一下有没有能解释这些编程语言特性的,历史中产生了什么问题,出于什么样的考虑,诞生了什么样的概念的书?
    13 条回复    2017-07-19 11:31:56 +08:00
    snnn
        1
    snnn  
       2017-07-18 09:53:04 +08:00 via Android
    找本古老的面向对象的书看看。OOP。继承封装多态。
    mx1700
        2
    mx1700  
       2017-07-18 10:14:22 +08:00 via Android   ❤️ 1
    《代码之髓》可能对你有帮助
    jadeity
        3
    jadeity  
    OP
       2017-07-18 10:20:24 +08:00
    @mx1700 看了下目录,感觉是我要的方向,就是内容看起来比较少。
    levn
        4
    levn  
       2017-07-18 10:28:46 +08:00   ❤️ 1
    daisykoo
        5
    daisykoo  
       2017-07-18 13:14:13 +08:00   ❤️ 1
    SICP 可能对你有帮助
    再深入一点的话可以参考这篇文章 http://www.yinwang.org/blog-cn/2012/07/25/semantics
    SuperMild
        6
    SuperMild  
       2017-07-18 13:16:51 +08:00   ❤️ 1
    《松本行弘的程序世界》
    geelaw
        7
    geelaw  
       2017-07-18 13:49:59 +08:00
    我还以为必有高论……
    jadeity
        8
    jadeity  
    OP
       2017-07-18 14:03:54 +08:00
    @geelaw 一般高论都是在回复中出现。
    ech0x
        9
    ech0x  
       2017-07-18 14:11:54 +08:00 via iPad
    这就是为什么要学历史(逃
    sagaxu
        10
    sagaxu  
       2017-07-18 14:13:50 +08:00   ❤️ 1
    脱离工程实践理解一切,那需要极高的抽象和逻辑能力,只适合少数人,普通人需要在实践中才能有比较深刻的感悟。

    而特别笨的人,比如说写过树,宝树,宝宝树,宝宝宝树的人,看到递归之后,就会有一种顿悟的感觉。
    ech0x
        11
    ech0x  
       2017-07-18 14:15:18 +08:00 via iPad
    ech0x
        12
    ech0x  
       2017-07-18 14:17:46 +08:00 via iPad   ❤️ 1
    可以到 https://www.zhihu.com/question/39932462 这里看看魔理沙的回答
    buckyRRRR
        13
    buckyRRRR  
       2017-07-19 11:31:56 +08:00
    这个问题提的真好, 看了回复中的一本书感觉非常有价值
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   928 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 21:35 · PVG 05:35 · LAX 13:35 · JFK 16:35
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.