当前位置: 首页 > 编程日记 > 正文

大道至简第一章读后感

当今社会,信息化飞速发展,软件的需求也越来越高,而《大道至简》给我们点透了编程的精义。

大道至简第一是讲的便是编程的精义,文章借愚公移山这个故事来阐释编程的基本思路:出现一个问题(惩山北之塞,出入之迂),接下来便是一个团队商量解决问题的办法(聚室而谋),然后提出工程的目标(毕力平险,直通豫南,达于汉阴),确定技术方案(扣石垦壤,箕畚运于渤海之尾)。在与河曲智叟的对话中,我们看到了这个工程的实现程序:

while(直通豫南,达于汉阴)

{

扣石垦壤,箕畚运于渤海之尾;

if(愚公死)

愚公=愚公子;

}

这就是编程的精义:顺序,分支和循环,即便大如“愚公移山”,小到“Hello World”,都是通过这样简单的编程实现的。

程序=算法+结构。编程的第一要务是想清楚干什么,事件先后的逻辑关系搞清楚,然后用代码实现,不论是算法,还是数据结构,都没有提到语言,这说明一个程序最重要的不是用什么语言编写,而是弄懂程序的思想和算法,见到一个程序,不要着急去写,当把程序算法设计出来了,结构描述出来了,程序已经成型了,剩下的只是劳力活。

学不会编程?文中说到除了先天智障或后天懒惰者,都可以学会编程,正如一个人天冷会选择先穿衣后洗漱,如果天热则可反之,这样日复一日直到死亡。如此便可着手编程的学习了,只有自己努力,不存在会不会,只有喜不喜欢的问题。

学习了一年的C++之后,对编程有了更深的理解,编程语言大部分都是相通的,只要自己肯下功夫,一定会成为一个合格的程序员!

转载于:https://www.cnblogs.com/jokerr/p/5879753.html

相关文章:

nginx resolver 指令的使用

官方解释下就是:反向代理的场景,upstream后端用域名时,配置resolver以便于nginx能够解析该域名 Configures name servers used to resolve names of upstream servers into addresses 官网地址:http://nginx.org/en/docs/http/ngx…

以太坊和EOS DApp数量上升

链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 目前,在最受欢迎的智能合约平台以太坊和EOS上,每月大约有180个新的去中心化应用程序(DApps),该数量处于历史最高…

转载iOS开发中常见的警告及错误

iOS警告收录及科学快速的消除方法 前言:现在你维护的项目有多少警告?看着几百条警告觉得心里烦么?你真的觉得警告又不是错误可以完全不管么? 如果你也被这些问题困惑,可以和我一起进行下面的操作。其实大部分的警告都是…

数学思想 —— 低维与高维的统一

在平面几何有勾股定理:“假设三角形ABC的两边AB、AC互相垂直,则有关系: AB2AC2BC2当我们拓展到空间,类比平面几何的勾股定理并研究三棱锥的侧面面积与底面面积的关系时,我们可得到相应结论:假设三棱锥A-BCD…

python键_在Python中创建键命令

我正在根据我在网上找到的一个脚本编写我自己的简单键记录器。但是,我正在尝试编写一个键命令,以便在键入此命令时记录器程序将关闭。我该怎么做?(我也知道它一点也不安全,但这与这个程序无关) 例如&#x…

对标以太坊的EOS再火,也拼不过InterValue的区块链4.0

链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 2017年6月26日上线的数字货币EOS,仅用5天时间,就融了1.85亿美元,一举打破ICO的融资记录。 至2018年4月12日&a…

python中ttk和tkinter_Python tkinter与ttk日历

我正在使用 this代码在我的Tkinter上创建一个简单的日历.当我在主根窗口上放置日历时,日历显示正常.因此,我决定放置另一个按钮,它将创建一个Tkinter顶层窗口并在顶层窗口上放置另外一个日历.但这次它无法显示日历,而是它给了我这个错误,“TclError:无法打包. 18913…

Ubuntu dns

在Ubuntu系统网络设备启动的流程中,会依赖/etc/network/interface的配置文件初始化网络接口,所以直接在/etc/network/interface之中配置好对应的dns服务器会最先写入/etc/resolv.conf。所以我们可以在其中添加如下内容: dns-nameserve…

web图片识别

<!doctype html><html lang"en"><head> <meta charset"UTF-8"> <title>图像识别</title> <script src"../js/jquery.js"></script></head><body><canvas id"canv…

通俗易懂,到底什么是区块链?

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 2017年9月4日&#xff0c;中国政府正式明令禁止ICO和数字货币交易行为&#xff0c;随即关闭了多个数字货币交易所。同时政府也多次声明&#xff0…

select三级联动 怎么删除前一个的_python测试开发django57.xadmin选项二级联动

前言当我们选择项目分类的时候&#xff0c;一个项目下关联多个模块&#xff0c;同时有这两个选项框的时候&#xff0c;需要实现选中一个项目&#xff0c;模块里面自动删除出该项目下的模块&#xff0c;如下图这种解决基本思路&#xff1a;1.写个jqeury脚本监听change事件2.ajax…

安装wdcp的方法和bug

1.Wdcp安装SSH登录系统,这里讲解源码编译安装和RPM包安装两种 a.源码编译安装 下载源码包wget http://dl.wdlinux.cn:5180/lanmp_laster.tar.gz 解压并安装 tar zxvf lanmp_laster.tar.gz sh in.sh linux安装wdcp之后mysql找不到my.cnf&#xff0c;locate my-medium.cnf。 cp /…

第七周读书笔记

《深入理解计算机系统》从程序设计与性能优化的角度介绍了计算机系统&#xff0c;让我从程序员的角度了解了计算机系统&#xff0c;更深入地理解了硬件、操作系统和编译系统等对应用程序性能和正确性的影响&#xff0c;并掌握了基本的程序优化设计技术&#xff0c;为编写更高效…

是什么限制了区块链技术的应用?

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 2017年已经匆匆离去&#xff0c;回顾过去一整年&#xff0c;似乎区块链应用一直处于隐忍未发的状态&#xff0c;很多项目的落地已处于验证阶段&…

软件包管理(rpmyum)

一、rpm包管理器 rpm是一个功能强大的包管理工具&#xff0c;可用于构建&#xff0c;安装&#xff0c;查询&#xff0c;验证&#xff0c;更新和卸载软件包。 用法&#xff1a; rpm [OPTION...] 配置文件&#xff1a; /var/lib/rpm/ 已安装rpm包的元数据 选项&#xff1a; -i&am…

python yield理解_对Python中Yield的理解

看到下面这段程序的时候&#xff0c;有点不明白这个yield到底是个啥东西&#xff0c;看了网上很多的博客&#xff0c;大致理解了yield的含义&#xff0c;所以记录下来。要说yield首先要说python中的生成器&#xff0c;那么什么是生成器?假设有一个包含一百万个元素的列表&…

Linux下文件的三种时间戳

Linux下文件的三种时间标记 三种时间对应关系表 columncolumncolumn访问时间Accessatime修改时间Modifymtime状态改动时间Changectime如何查看文件文件的三种时间戳 stat filename 三种时间戳的解释 访问时间&#xff1a;读一次文件的内容&#xff0c;这个时间就会更新。比如mo…

比特币和以太坊本质有什么区别?

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 14年的时候&#xff0c;币圈 &#xff08;当时还没有链圈之说&#xff0c;链圈应该是17年的事情了&#xff0c;区块链概念的流行是15年底&#xf…

HDU1402(FFT入门)

题目链接&#xff1a;http://acm.hdu.edu.cn/status.php?userReykjavik11207&pid1402&status5 本题数据范围为5e4&#xff0c;常规方法O(n2)肯定是不行的。 FFT是离散傅里叶变换DFT的快速形式 对多项式f(x) a0 a1x a2x2 an-1xn-1&#xff0c;有两种表示法&#x…

python怎么读_如何用Python读写文件

前面我们已经介绍了很多Python相关的基础知识&#xff0c;大家是不是对Python已经有了进一步认识了呢&#xff1f;作为人工智能时代的热门编程语言&#xff0c;开始接触并学习Python的孩子越来越多&#xff0c;家长们都不想让自己的孩子落于人后&#xff0c;近期前来找陈老师咨…

什么是区块链智能合约?

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 自从2009年第一枚比特币诞生&#xff0c;九年多时间里&#xff0c;区块链技术正在被应用在人们生活的各方各面&#xff0c;从1.0时代的数字货币&…

python数据分析基础 余本国_Python数据分析基础

本书根据作者多年教学经验编写, 条理清楚, 内容深浅适中, 尽量让读者从实例出发, 结合课后练习, 少走弯路。本书涉及的内容主要包括Python数据类型与运算、流程控制及函数与类、Pandas库的数据处理与分析等。作者通过近三轮的教学&#xff0c;对Python3.x的基础知识进行了筛选和…

stm32F042 (二) 按键触发中断

已经实现GPIO口输出高低电平控制LED&#xff0c;这里实现按键触发中断来改变LED闪亮的频率&#xff0c;因为PB3连着LED&#xff0c;所以PB3的输出模式没有改变&#xff0c;随意选一个GPIO口PA7接按键产生中断。因为nucleo开发板是裸板&#xff0c;所以按键、上拉电阻是另找在面…

区块链和智能合约的关系

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 尽管比特币&#xff08;Bitcoin&#xff09;和以太坊&#xff08;Ethereum&#xff09;是经常被一起提及的两个词&#xff0c;但实际上&#xff0…

repo同步代码_iTOP-4412开发板android4.0代码下载和编译

Android4.0 源码可以从光盘&#xff0c;网盘获取稳定版本&#xff0c;也可以从 GitHub 下载我们的开发版本。GitHub 仅提供源码下载&#xff0c;不提供二进制下载&#xff0c;二进制文件存放在光盘和网盘中。基于迅为4412开发板6.3.1.1 repo 下载android 代码管理不同于 uboot,…

vue项目构建实战基础知识:SPA理解/RESTful接口介绍/static目录配置/axios封装/打包时map文件去除...

一、SPA 不是指水疗。是 single page web application 的缩写。中文翻译为 单页应用程序 或 单页Web应用&#xff0c;更多解释请自行搜索。 所有的前端人员都应该明白我们的页面的 url 构成&#xff1a;http://www.fengcms.com/index.html?namefungleo&old32#mylove/is/wo…

神奇的输入 while(cin....)如何在遇见换行之后进入下一层循环读入

1 cin>>m>>n;2 for(int i1;i<m;i){4 int x0;5 char ch ;6 while(ch!10) //在遇到换行之后进入下一层循环读入。7 {8 x;9 cin>>c[x]; 10 chgetchar(); 11 } 神奇的输入。 get skill&#xff01;转载于:https://www.cnblogs.com/zyker/p/588…

区块链中的“智能合约”有何应用?

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 如刺金般闪耀的区块链时代&#xff0c;投资者的热潮还将持续升温&#xff0c;与此同时金融的大佬已经开始注意到区块链应用落地场景的实现&#xff…

米勒罗宾素性测试(Miller–Rabin primality test)

1 #include<iostream> //该程序为哥德巴赫猜&#xff08;想输出所有的组合&#xff09;2 #include<cmath>3 #include<cstdlib>4 #include<ctime>5 #include<cstdio>6 7 using namespace std;8 9 typedef unsigned long long ull; 10 typedef u…

Linux Linux程序练习十一(网络编程大文件发送UDP版)

//网络编程发送端--大文件传输&#xff08;UDP&#xff09; #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <errno.h>#include <sys/types.h> #include <sys/socket.h> #include <n…