万隆的笔记 万隆的笔记
博文索引
笔试面试
  • 在线学站

    • 菜鸟教程 (opens new window)
    • 入门教程 (opens new window)
    • Coursera (opens new window)
  • 在线文档

    • w3school (opens new window)
    • Bootstrap (opens new window)
    • Vue (opens new window)
    • 阿里开发者藏经阁 (opens new window)
  • 在线工具

    • tool 工具集 (opens new window)
    • bejson 工具集 (opens new window)
    • 文档转换 (opens new window)
  • 更多在线资源
  • Changlog
  • Aboutme
GitHub (opens new window)
博文索引
笔试面试
  • 在线学站

    • 菜鸟教程 (opens new window)
    • 入门教程 (opens new window)
    • Coursera (opens new window)
  • 在线文档

    • w3school (opens new window)
    • Bootstrap (opens new window)
    • Vue (opens new window)
    • 阿里开发者藏经阁 (opens new window)
  • 在线工具

    • tool 工具集 (opens new window)
    • bejson 工具集 (opens new window)
    • 文档转换 (opens new window)
  • 更多在线资源
  • Changlog
  • Aboutme
GitHub (opens new window)
  • 数据结构与算法

  • 设计模式

  • 编程方法论

    • XP-极限编程
    • 三分钟了解敏捷开发
    • 程序员的玄学与佛学
      • 道家思想与编程思想
      • 批判性思维学编程
      • 佛家思想与产品思维
      • 总结
  • 分布式设计与微服务理论

  • Leetcode

  • 程序员内功
  • 编程方法论
2022-02-01
目录

程序员的玄学与佛学

# 程序员的玄学与佛学

# 道家思想与编程思想

有道无术,术尚可求,有术无道,止于术。--道德经

简单来说:道是思想,术是方法。

# 什么是编程思想

编程思想其实是解决问题时的思考方式。

关于编程的思想有很多:

  • 面向过程编程思想
  • 面向对象编程思想
  • 面向接口编程思想
  • 面向服务编程思想
  • ...

这里以面向对象编程思想为例说明:

  • 核心思想:万物皆对象
  • 三大特性:封装、继承、多态
    • 封装:将对象的"属性”和“行为”抽象出来并包装成一个类。
    • 继承:将具有相同的"属性”和“行为”对象抽象出来并包装成一个父类。
    • 多态:多种形态,相同的“属性”和“行为”,却有不同的表现方式。

案例:猫、狗、动物。编程体现略。

# 有道无术,术尚可求

有了思想,我们就可以选择方法。思想是实践总结出来的智慧,而方法却有很多。编程思想在任何语言中都是适用的,例如Java、C++、Python等等,有了编程思想,我们面对的是对不同语言(工具)的选择,不同的是他们的语法(使用说明书)。

# 有术无道,止于术

如果我们有了方法,却没有指导思想,个人境界往往停留在会工具使用的层面,很难应对以后要的变化。俗语说道:知其所然,而不知其所以然。

总的来说,我们在学习的时候,道先行,术实践。道是思想,术是方法,用思想去指导方法的选择。在学习编程的时,不能仅仅停留在不同编程语言的使用的掌握,而是要挖掘编程语言背后的思想。

# 批判性思维学编程

最有效的教育方法不是告述人们答案,而是向他们提问。--苏格拉底

学习到一个新的知识点或技能,不仅要能够向他人提出疑问,还要达到回答别人的疑问。

# 什么是批判性思维?

批判性思维是一种思维习惯,是“对思考的思考”。而不是怼别人。

什么是对“对思考的思考”?当别人对你传授某种知识的时候,通常是他人对这个知识的思考和终结,这个时候我们要去思考"为什么他会这样理解的(他对问题的思考)?他理解的对不对?"

案例:

  • 老师教授”jsp的知识点,列出了1、2、3点...
  • 首先我们接触到的信息,是经过老师思考过的信息:"他是这样理解jsp的,有这些知识点...",往往我们学习的时候,仅仅停留在这一步,几乎是全盘接受别人的思考,盲目地去“消化、理解”,学习是被动的。
  • 如果假如批判性思维就会想:
    • 他说的jsp知识点有哪些?(理解一下)
    • 为什么学jsp?他说的1、2、3点对不对?我是否同意他的观点,有什么理有支撑我的想法?
    • ...
  • 其实这就是"对别人的思考的思考" 。

说简单点就是:要把别人说的过一遍脑子,而我们生活中经常就会触犯一个思考误区:不过脑子地“怼别人"。思考不过脑子,人云亦云。

案例:

  • diu,JSP啊,垃圾东西,早过时了,学他干嘛?
  • 为什么过时了?
  • 我不知道啊,大家都这样说。

这种就是没有批判性思维,长期以往,会形成不好的思维习惯。

# 什么是思维习惯?

说到思维习惯,首先我们要知道什么是习惯,习惯是指积久养成的生活方式。

习惯大体分三种,难度梯度是递进的:

  • 行为习惯
  • 身体习惯
  • 思维习惯

我们经常听过“21天养成一个好习惯”,其实是行为习惯。这种习惯通常是比较简单,不费脑的习惯,比如早起喝杯水、晚上刷牙这些。
身体习惯养成的时间通常要三个月左右,比如晨跑、健身,这些习惯容易被打断,他们的特点通常需要付出较多的时间、毅力去坚持。
思维习惯三种习惯中最难养成的,通常是需要一两年,甚至两三年,这种习惯通常是比较抽象的,是看不见摸不着的。像批判性思维,需要我们在理解了别人的信息的时候,进一步去思考,挖掘信息,形成自己对知识的理解。

批判性思维案例:

什么是面向接口编程 ? 接口是为了处理各个对象之间的协作关系,是系统设计的关键组成部分,主要作用是为了将“定义”与“实现”分离,从而实现系统“解耦”的目的。

如何面向接口编程? 在系统设计之初,要为抽象类建立行为模型。

脑海:

  • 什么是“定义”、"实现”,“解耦”?
  • 为什么要这样?
  • ...

是因为面向对象设计原则提供了方法和准则(七大原则):

  • 开:面向扩展开,面向修改关闭
  • 口:接口隔离原则
  • 合:组合/聚合原则
  • 里:里氏替换原则
  • 最:最少知识原则(迪米特法则)
  • 单:单一职责原则
  • 依:依赖倒置原则

# 佛家思想与产品思维

看山是山,看山不是山,看山还是山。--禅宗人生三重境界

  • 看山是山:看的是山的本身,是现象。
    • 腾讯QQ:ICQ->OICQ->QQ->腾讯QQ
    • 学会借用
  • 看山不是山:看的是山背后的道理,是本质。
    • 微信:高速邮箱软件
    • 学会遗忘
  • 看山还是山:看的是现象和本质的统一,是融会贯通。
    • 微信:即时通讯 + 高速邮箱
    • 学会学习

# 总结

道家思想修今生,用于技术学习
佛家思想修来世,用于产品迭代

上次更新: 5/31/2023, 1:14:42 AM
微服务简介

微服务简介→

最近更新
01
2025
01-15
02
Elasticsearch面试题
07-17
03
Elasticsearch进阶
07-16
更多文章>
Theme by Vdoing
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式