《大道至简》第二篇读后感

今天把周爱民大道至简的第二章关于是懒人造就了方法读了几遍,作者通过战国时李冰凿山与愚公移山的比较来阐述懒人早就方法主题,以前听历史老师讲课的时候正是因为懒人才会有那么多可以节省人们力气和时间的发明,但懒人并不是真的懒,只是把更多的时间用到了思考上面与观察生活细节上面,正如文中作者所说愚公太勤快了,勤快的今天可以比昨天凿出一倍的石头,以致没有了机会去寻找更快的方法,人的精力终归是有极限的。提出新的方法,解决的将是做事成效的根本问题。而愚公可以多吃点饭,多加点班,但却突破不了人的精力极限。

文中讲的一百万行代码是可以写在一个文件里面的,由早期的写程序,都是打在穿空带上,让计算机去读,到后来的汇编语言这也是一种进步了,省去了好多麻烦,而且无论这个程序多大,多少行代码,写到一个文件里会方便许多。但 把一百万行代码写到一个文件中去,要查找一个函数需要在编辑器中按五千次PageDown/PageUp键,当然对于勤快的愚公来说他并不会去想些什么,但对于一些懒人来说这个十分庞大的工程并不愿意去参与,因而他们才会去想如何才能“偷点懒” ,才会有了后来的“单元文件(Unit)”,有了单元文件,也就很快出现了一个新的概念:模块。把一个大的模块分成小模块,再把小模块分成更细的小小模块,一个小模块对应于一个单元,因而就可以分工作了,一部分人写着几个单元的代码,另一部分写那几个,这样就能减少一个人的工作量 了,从而提高了工作的效率,这也达到了“懒人”们的要求了,也正因为多了些思考,才少了那么多的辛劳。

当讲到你桌上的书是乱的吗?我当时就想这和编程又拉上了什么关系,但当讲到内容时我陷入到了思考当中,文中作者的引用的例子正好是困扰自己的问题,学了一年的编程,却不知道怎么写程序,作者用整理桌上的书说出了其中的问题,既然书桌上的书知道怎么分类、归整得整整齐齐的,那编程不也是一样的道理,把自己所学的知识、所了解的东西分类一下、归纳一下,整整齐齐的放在脑子中,那样不就更清楚地了解自己所学的了,常用的记在自己的脑子之中,而那些不常用的可以不去记只需要在用的时候能从书中找到便可。所以我们在学习中我们应该学会归纳自己所学的知识,那样我们就可以更快的学会新的知识。勤奋的人没有时间去思考这些问题,他们努力地编写着程序,有时候我们真的需要一些时间去整理我们所学到的东西。而且,对于软件工程的专业的我来说,有良好的软件品质的是非常重要的,这里的素质指的是:我们在写编程时一定要写备注,断行的良好的习惯、规范的格式是写代码应该具备的重要素质。

关于作者对:程序=数据+算法+方法的思考,是在soul和他的对话中,可以很好的看出自己的思考有很多不满之处,他缺失了面向对象的“方法问题”如果一个问题不能解决,那它将永远成为问题。所以就有了对“程序=数据+算法+方法”的思考。

 

转载于:https://www.cnblogs.com/chenpengmeng/p/4840376.html

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

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

相关文章

oracle备份磁盘头,ASM 磁盘头信息备份

ASM磁盘头信息保存在每个磁盘的前4K里面,这个信息的备份对于ASM的恢复非常重要,有下面的几种方法1.直接做dd来备份磁盘的前4K,磁盘头信息丢失时,dd回来 备份:dd if/dev/raw/raw1 of/gyj/asmheader.dd bs4096 coun…

var s=+newDate();的用法,表示对应的时间截

var snewDate(); var snewDate(); 解释如下:是不存在的; new Date()是一个东西; 相当于.valueOf(); 看到回复补充一下.getTime()这个也是得到毫秒数 //4个结果一样返回当前时间的毫秒数alert(new Date());alert(new Date);var snew Date();alert(s.valueOf()); alert(s.getTime…

asp控制oracle,asp下用OracleInProcServer完成对Oracle的连接和操作

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼tblnamerequest("tb")Dim objOraSession,objOraDbDim strDbUser,strDbPwd,strDbConnCall ConnectDB()Sub ConnectDB() 连接数据库On Error Resume NextstrDbUser "liujincai" 连接用户名strDbPwd "ljc1…

jitpack让使用第三方依赖库更简单

在开发过程中,使用第三方优秀依赖库是个很常见的问题,有的时候是maven,或者gradle, 或者sbt,大部分库工程,都会有对应的gradle,maven依赖代码,但是有的没有,尤其是使用的snapshot的依赖的时候,虽…

linux用户命令快捷链接,linux简单命令

linux系统命令是最基础也是最重要的部分,下面由学习啦小编为大家整理了linux简单命令的相关知识,希望对大家有帮助!linux简单命令一、文件和目录家目录为 /home/user 或者 ~目录分为两种:绝对目录,从根目录开始写相对目…

Swift - 发送消息(文本,图片,文件等)给微信好友或分享到朋友圈

通过调用微信提供的API接口,我们可以很方便的在应用中发送消息给微信好友,或者分享到朋友圈。在微信开发平台(https://open.weixin.qq.com)里,提供了详细的说明文档和样例。但由于提供的样例是使用Objective-C写的&…

linux怎么改程序图标,如何在Ubuntu Unity上修改应用程序图标

这篇文章将教大家在Ubuntu Unity上修改应用程序图标,这个教程适合于Ubuntu 14.04, Ubuntu 13.10, Ubuntu 12.04 等使用Unity作为默认桌面环境的发行版。在Unity桌面环境,程序启动器实际上以.desktop为后缀的文件的形式存储在电脑上,所以我们可…

php 大流量网站访问

1:确认服务器硬件能否支持当前流量 2:数据库优化,用到什么字段查什么字段,减轻查询负担。 3:静态化,缓存,减少连库操作。 4:禁止外部盗链,减轻负载压力。 5:控…

linux内核 默认路由表,Linux 默认路由表 0.0.0.0

netstat -nr命令会显示路由表的内容。网关为0.0.0.0的网络通常是直连到网络设备上的。因为到自己的直连设备上是不需要网关的,所以0.0.0.0的网关地址是正常的。目的地址是0.0.0.0的路由是你的缺省网关。在这个例子里,有两个网关,缺省的并且是到255.255.2…

htop linux命令详解,htop使用详解

在管理进程时通常要借助一些工具,比较常用的就是ps和top了;不过CentOS还为我们提供了一个更加强大的工具htop,下面就来了解一下此工具的使用方法。一、安装htophtop工具在epel源中提供,请自行配置epel源,也可以直接下载…

iOS 中的 xml 解析

在ios 中解析xml 的方法有很多种 1.苹果原生 NSXMLParser:SAX方式解析,使用简单 2.第三方框架 libxml2:纯c语言,默认包含在ios sdk中,同时支持DOM 和 SAX 方式解析 GDataXML : DOM方式解析,由谷歌开发,基于…

Android Termux安装SSH结合内网穿透实现远程SFTP文件传输

文章目录 1. 安装openSSH2. 安装cpolar3. 远程SFTP连接配置4. 远程SFTP访问4. 配置固定远程连接地址 SFTP(SSH File Transfer Protocol)是一种基于SSH(Secure Shell)安全协议的文件传输协议。与FTP协议相比,SFTP使用了…

linux上clisp运行lisp,apache - 重新访问linux + apache2 + mod_lisp + CLISP - 堆栈内存溢出

CLISP已安装并成功运行:(加载“ modlisp-clisp”)(modlisp:modlisp-server)运行正常,即无休止Python可通过localhost在/ usr / lib / cgi-bin中正常工作试图使clisp服务器在/ var / www / html / lsp中工作通过localhost / lsp打印的浏览器访…

linux解压war包乱码,linux中zip解压乱码解决方法

在windows上压缩的文件,是以系统默认编码中文来压缩文件。由于zip文件中没有声明其编码,所以linux上的unzip一般以默认编码解压,中文文件名会出现乱码。有2种方式解决问题:1、通过unzip行命令解压,指定字符集unzip -O …

Android沉浸式通知栏设计

转载博客:http://www.2cto.com/kf/201503/381348.html Android4.4新特性,系统状态栏一体化。 实现的步骤主要有以下几点: 1.android4.4 以上版本 2.设置app全屏: 方法:在AndroidManifest.xml中设置android:theme"…

linux火狐自动更新,CentOS 7手动更新firefox | Linux系统运维联盟

这里针对的是firefox无法检测到新版本,需要手动升级。1.下载新版的irefox,一般是.tar.gz压缩包。2.tar zxvf 解压到/usr/lib64 。(只要是原版firefox文件的目录就对了)3.cd /usr/lib64/firefox4../firefox-bin 完成有的更新好之后可能会无法播放视频&a…

C/C++02: Josephus问题

据说著名犹太历史学家Josephus有过以下的故事:在罗马人占领乔塔帕特後,39个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被人抓到,于是决定了一个自杀方式,41个人排成一个圆圈,由第…

ahci模式下无法启动Linux,电脑AHCI模式无法开启是怎么回事?

安装之前就要开启ahci,然后安装系统,如果在ide模式下安装了,是不能随意的改到ahci的!你的情况只能重装系统解决了!看看你的主板,有没有第三方芯片的sata口,如果有,你把第三方芯片的s…

LeetCode Solutions : Reorder List

Given a singly linked list L: L0→L1→…→Ln-1→Ln, reorder it to: L0→Ln→L1→Ln-1→L2→Ln-2→… You must do this in-place without altering the nodes values. For example, Given {1,2,3,4}, reorder itto {1,4,2,3}. Considering the following steps: * 1. split…

双系统linux触摸板不能用,windows系统与ubuntu双系统导致笔记本触摸板失灵的解决办法(非输入代码)...

先说一下我现在的笔记本使用的系统,windows10 64位+ubuntu14.04 64位。这几天把ubuntu装好后本来毫无问题的,用的飞起~可是昨天不知道什么原因,触摸板突然失灵了,插上鼠标可以用,就是触摸板不能…