大道至简


道在中国哲学中,是一个重要的概念,表示“终极真理”。此一概念,不单为哲学流派诸子百家所重视,也被宗教流派道教等所使用。大道至简是指大道理(基本原理、方法和规律)是极其简单的,简单到一两句话就能说明白。所谓“真传一句话,假传万卷书”。这便是大道至简的基本释义。

但是现在很多作者写书是为厚而厚,原创精华总是很少。而这本《大道至简》却是作者从事十年开发工作的总结,虽然不厚,但却闪烁着独立思考的光芒。要知道,大道至简,悟者天成。

作者在第一章通过愚公移山的故事介绍了编程的根本是顺序、分支和循环,当中提到除了先天智力问题或者后天懒惰不思进取的人,都能学会编程,程序=算法+结构。所以这一点给我们学习编程提供了信心。像我们这些编程小白总是觉得代码好像是神作,总会在想自己能不能学好,编程适不适合自己。读完这本书,我们就可以放下顾虑,轻装上阵了。

第二章则用愚公移山“碎尸击壤”与李冰凿山“积薪烧之”来提出懒人造就了方法,人的精力终归是有限的,提出新的方法,才能突破人类精力的极限。当然这并不是说我们不需要勤奋,而是说我们在勤奋的基础上可以增加效率。

我们所谓的编程,其实就是给计算机布置任务,我们只需掌握计算机可以听懂的语言。但是,首先我们自己要搞清楚事情的本质,把事情分析清楚,把事情之间的逻辑关系和依赖关系搞清楚。这样我们才能让计算机理解我们,并为我们去工作。

在书中,作者还讲解了团队的重要性,以及团队管理的方法,效率,意义。软件工程里没有个人英雄主义,我们必须融入团队,听从安排,弹性分工。这点对于现在的我们可能实用性不高。但是在未来,当我们合作工程时,你会发现书中一字一句,皆是至理名言。

同样,读完大道至简你会发现,所谓的主流语言全是无稽之谈。语言只是工具,我们可以去学习任何一门语言,但是真正重要的是我们如何把语言变成我们需要的程序。所以我们在学习语言的过程中更重要的是培养自我学习的能力,这样当你将来工作的时候需要用到不熟悉的语言时,你能说的就不会是我不会,而是我马上学。

《大道至简》,与其说它是一本书,不如说它是一种指引我们编程的思想,它就像一个幽默诙谐的老师,总结了我们在开发过程中前人的经验和错误。让我们更深刻的了解了软件工程这个专业,以及外界对于我们的基本需求。

在大一时,我们的编程其实根本不足以称为编程。我们只是去填充一个模型,达成基本的输入输出。我们从未去考虑如何自己去设计,优化。我们更多的是在按部就班的应付。

读完这本书之后,我们更应该明白大道至简的真正含义,我们必须从跟随前人经验的套模板转变为追寻自己的道。你真正悟得的,才是你编程所需要的“道”。我们必须学会用真正的软件开发的思想去思考问题。大道至简,知易行难。望共勉。

转载于:https://www.cnblogs.com/zjm15511858030/p/9345991.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/397463.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

别人7天乐,运维还苦逼值班?

你被点名值班了吗?或者你的朋友、隔壁七大姑八大姨的侄子被点名值班了吗? 国庆将至,大家都开始研究各种度假攻略了,国内游、国外游、地球游、外星游。。。然而总有一票人,默默地职守着 -- tIT 公司运营支撑组/运维组。…

【常用损失函数】

一、Smooth L1 Loss 1.公式: 2.原因: L1损失使权值稀疏但是导数不连续,L2损失导数连续可以防止过拟合但对噪声不够鲁棒,分段结合两者优势。 二、Focal Loss 1.公式: 2.作用: 使得正负样本平衡的同时&#x…

ORA-01940: cannot drop a user that is currently connected解决方法

我们在删除数据库用户时候会碰到如下错误 SQL> DROP USER sys_xj cascade; DROP USER sys_xj cascade*ERROR at line 1:ORA-01940: cannot drop a user that is currently connected 解决方法: 1.查询出还在连接的此用户会话进程 SQL> SELECT SID,SERIAL# FR…

实现对象克隆

实现Serializable接口,通过对象的序列化和反序列化实现克隆,可以实现真正的深度克隆,代码如下 package com.lovo; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.ObjectInputStream; i…

linux 读取内存颗粒,linux查看主板内存槽与内存信息的命令dmidecode怎么用

在Linux中,我们常常使用命令来实现许多操作,比如查看内存信息等,下面小编就为大家带来一篇linux查看主板内存槽与内存信息的命令dmidecode方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来…

python 图像处理(从安装Pillow开始)

python 图像处理(从安装Pillow开始) python2.x及以下用的是PIL(图像处理库是 PIL(Python Image Library)),最新版本是 1.1.7 可在http://www.pythonware.com/products/pil/index.htm 下载和学习。 不过从该网站可看出它不支持python3.x Pillow由PIL而来(支持3.x)&…

手机还是不要随便更新的好

新入mate9pro 不到一个月,手贱升级了系统版本,出现导航搜索不到卫星的情况,软件下载了高德地图、腾讯地图、百度地图,逐一卸载安装重试,没一个能成功的,后来又下载了专业搜星软件,还是搜不到卫星…

Java对象容器——List

为什么80%的码农都做不了架构师?>>> 在Java中,我们可以用数组来存放同类型的变量或对象,但是数组有一个缺陷,它的长度不可变,必须在定义时给定其长度,所以说在一些场合下不适用。例如我们要存放…

STL学习笔记(数值算法)

运用数值算法之前必须先加入头文件<numeric> 加工运算后产生结果 1.对序列进行某种运算 T accumulate(InputIterator beg,InputIterator end, T initValue) T accumulate(InputIterator beg,InputIterator end, T initValue,BinaryFunc op) 1.第一种形式计算InitValue和…

angualejs

为什么80%的码农都做不了架构师&#xff1f;>>> http://segmentfault.com/a/1190000000347412 http://www.xker.com/page/e2015/06/199141.html http://www.runoob.com/angularjs/angularjs-application.html http://blog.csdn.net/lglgsy456/article/details/3690…

linux函数地址获取函数名,函数名/函数地址/函数指针

函数指针&#xff1a;1。指针变量 2。指针变量指向函数这正如用指针变量可指向整型变量、字符型、数组一样。在编译时&#xff0c;每一个函数都有一个入口地址&#xff0c;该入口地址就是函数指针所指向的地址。可利用该指针变量调用函数&#xff0c;就如同用指针变量可引用其他…

SPOJ SORTBIT Sorted bit squence (数位DP,入门)

题意&#xff1a; 给出一个范围[m,n]&#xff0c;按照二进制表示中的1的个数从小到大排序&#xff0c;若1的个数相同&#xff0c;则按照十进制大小排序。求排序后的第k个数。注意&#xff1a;m*n>0。 思路&#xff1a; 也是看论文的。一开始也能想到是这种解法&#xff0c;枚…

老web换新枝----Sails.js移动设备的全新生产力(五)

自定义模型操作目前为止&#xff0c;我们的进展非常顺利&#xff0c;我们使用了 Sails 的默认路由来访问或修改模型实例。这些默认设置&#xff08;包含在 Sails Blueprint API 中&#xff09;负责我们期望从 Web 或移动应用程序获得的基本的创建&#xff08;create&#xff09…

linux 驱动没有设备id,linux不同总线的设备和驱动的匹配过程分析

摘自&#xff1a;前几日读书会&#xff0c;谈到linux中driver和device的匹配问题&#xff0c;我认为是通过设备名来匹配的&#xff0c;因为我之前看过platform的驱动&#xff0c;它就是通过设备name和驱动name来进行匹配&#xff0c;所以我确信linux里边所有的驱动和设备都是这…

理解Flight框架核心

看到了这篇分析flight的文章还不错&#xff0c;就转过来了&#xff0c;地址&#xff1a;https://blog.csdn.net/sky_zhe/article/details/38906689 Flight框架&#xff08;官网&#xff09;是一个微型的PHP框架&#xff0c;它简单&#xff0c;快速&#xff0c;可扩展。借助Flig…

安装ISO系统(原版系统)系统终极方法

首先进入PE&#xff0c;在PE下找到你的系统ISO镜像&#xff0c;解压缩&#xff0c;然后将镜像里的boot文件夹、sources文件夹和bootmgr文件提取出来&#xff0c;然后复制到你要安装的分区&#xff08;比如c盘&#xff09;&#xff0c;接下来拔下U盘&#xff0c;重新启动计算机&…

intel i218v千兆网卡 linux驱动,适用于英特尔® 千兆位以太网网络连接的 Linux* 基础驱动程序...

适用于英特尔 千兆位以太网网络连接的 Linux* igb* 基础驱动程序安装说明Linux* igb 驱动程序支持所有基于 82575、82576、82580&#xff0c;I350&#xff0c;I354 和 I210/I211 的英特尔 千兆位以太网网络连接。有关驱动程序配置的详细信息&#xff0c;请参阅下载中心中的自述…

Linux下如何抓取串口码流,linux alsa音频中采样率fs、比特率BCLK 、主时钟MCLK关系...

转&#xff1a;https://blog.csdn.net/lugandong/article/details/72468831一、拿512fs说话&#xff1a;看图知道采样的位深是32bit(位)&#xff0c;左右声道各占了8*32BCLK&#xff0c;那一个完整的LRCLK一共8*32*2512BCLK。其实xxxfs就是这么算出来的&#xff0c;也是固定的&…

第 39 章 ThinkPHP--CURD 操作

学习ThinkPHP 模型中的 CURD 操作&#xff0c;也就是增删改查。通过 CURD&#xff0c; 我们可以方便快速的对数据库进行操作。 1.数据创建 2.数据写入 3.数据读取 4.数据更新 5.数据删除 一&#xff0e;数据创建 在数据库添加等操作之前&#xff0c;我们首先需要对数据进行创建…

洛谷 P1529 回家 Bessie Come Home Label:Dijkstra最短路 乱搞

题目描述 现在是晚餐时间,而母牛们在外面分散的牧场中。 农民约翰按响了电铃,所以她们开始向谷仓走去。 你的工作是要指出哪只母牛会最先到达谷仓(在给出的测试数据中,总会有且只有一只最快的母牛)。 在挤奶的时候(晚餐前),每只母牛都在她自己的牧场上,一些牧场上可能没有母牛。…