美文网首页
什么是程序设计?《禅与计算机程序设计艺术》 / 陈光剑

什么是程序设计?《禅与计算机程序设计艺术》 / 陈光剑

作者: 光剑书架上的书 | 来源:发表于2021-05-07 22:45 被阅读0次

    软件是人类有史以来最复杂的系统。
    其一、软件系统本身规模庞大,参与人手众多,难以管理;
    其二、环境和需求不断变化,且错误难以避免。

    人类无法驾驭过于复杂的事物,于是只能寻找方法简化软件系统:把系统分为许多子部分,人们开发一个部分的时候,系统其他部分都是一种抽象,无需了解其细节。

    计算机程序设计,也就是我们说的编程,本质上是对人类遇到的现实问题的抽象——从现实问题空间模型到计算机算法空间模型的映射。编程中的抽象主要有过程抽象(函数、方法,也就是“算法”)与数据抽象(对象、实体、模型、结构体,也就是数据结构)。

    过程抽象,就是编程语言中的函数,目的是封装计算过程的细节。应用过程抽象的原则是:一切可以定义为过程的计算片段都应该定义为过程。

    数据抽象,最直接的理解就是面向对象编程,如 C++,而 Java 和 C# 则是更彻底的数据抽象。把一组过程抽象(类的方法)集中考虑,并加入内部状态(类的变量),就是一个数据抽象。每个数据抽象都应该把自己的内部对象状态和对象的实现隐藏起来,对外通过一组接口进行消息传递。

    软件是计算机的灵魂,是藏在半导体电路芯片里面的精灵。要想真正领会到编程的真谛,绝知此事要躬行。

    参考资料

    https://book.douban.com/review/4559081/

    《禅与计算机程序设计艺术》 / 陈光剑 目录

    第一性原理

    什么是禅?

    什么是计算机?

    什么是程序设计?

    什么是艺术?

    宇宙之起源

    物质之形成

    半导体材料

    纳米光刻

    二极管、三极管

    太极阴阳与二进制

    布尔代数与数字逻辑系统

    模拟电子电路系统

    信号与处理

    信息论

    图灵机模型

    冯诺依曼模型

    计算机演化史

    什么是编程?

    编程语言进化史

    程序 = 数据结构 + 算法

    模型关系思维

    真理与模型

    建筑工程、机械工程、电气工程与软件工程

    CPU架构设计

    缓存思想

    计算机科学中的中间层理论

    从01机器码到汇编指令到高级编程语言:一切皆是映射

    美妙的递归

    用计算机画一张分形图

    分层思想

    硬件驱动

    操作系统

    通信原理:TCP/IP 与 HTTP 协议、WIFI无线协议

    互联网简史

    数据的存储:从ROM、RAM到寄存器到L1/L2 Cache 再到磁盘文件

    索引原理:来自大自然的启示 Tree 结构

    人类社会数字化

    人工智能

    虚拟现实

    技术、艺术与禅道

    // TODO ...... 待续


    《禅与计算机程序设计艺术》 / 陈光剑

    相关文章

      网友评论

          本文标题:什么是程序设计?《禅与计算机程序设计艺术》 / 陈光剑

          本文链接:https://www.haomeiwen.com/subject/jgkvlltx.html