《大道至简》阅读笔记

第一章:编程的精义

“虽我之死,有子存焉;子又生孙,孙又生子;子又有子,子又有孙。子子孙孙,无穷匮也。而山不加增,何苦而不平?”《愚公移山》中的经典句。这句话基本上概述了“愚公移山”的步骤,包括顺序、分支、循环在内的所有编程要领,复杂的移山过程可以由几个简单的步骤组合完成,愚公同时具备了项目组织者、团队经理、编程人员、技术分析师等多种角色素质,将复杂的问题细分成多部分,每部分有特定的方法完成,这就是编程的精义。

“除了先天智障或后天懒惰者,都是可以学会写程序的”写学会程序是需要花费时间和精力的,不能一蹴而就,利用科学的方法与坚持不懈地努力,人人都可以学会编程。

"所以编程的第一要务是先把事情分析清楚,事件先后的逻辑关系和依赖关系搞清楚,然后再去代码实现。一接到任务就开始 Coding的程序员,通常就是加班最多的程序员。"用计算机解决问题首先要知道自己知道问题如何解决,计算机只负责计算过程,它并不会思考处理问题的方法,编代码之前要把事件先后的逻辑关系和依赖关系搞清楚。

“成天讨论这门语言好,或者那门语言坏的人,甚至是可悲的。不但是悲其一叶障目,更要悲叹于那种大愚若智 的自得心态。”不同的语言适合不同的领域,做不同的事,语言没有好与坏,它们最终都是服务于我们编程,一种编程工具。对工具的运用才是编程人员需要掌握的关键。

第二章:是懒人造就了方法

“人的精力终归是有极限的。提出新的“方法”,解决的将是影响做事成效的根本问题。”愚公靠努力凿石,李冰靠智慧烧石,伟大的成就离不开努力更离不开思考,为了省时高效地完成任务,领导者必须在任务开始前就制定出“烧石”的方案。

大量的知识和资讯搅乱了学习者的思维,我们需要及时地整理、归纳,把方法内化成自己的东西,对知识的多一分理解要比对知识多学一分重要的多,学会举一反三、融会贯通、活学活用。

“方法”是面向对象程序设计与面向过程程序设计的区别,“方法”是解决复杂问题的关键,事件前逻辑关系、依赖关系是必须在写代码前的仔细研究的。

第三章:团队缺乏的不只是管理

“三人团队中的那个领导,不是要程咬金一样的牛人, 而是要李离一样的死士。项目完成不了,切脑袋的事倒不 必做,递交辞呈的那点勇气总是要有的”做管理要对团队负责,项目成功了是大家的功劳,项目失败了是管理者的主要责任, 不够优秀的团队不只是缺乏管理,更缺乏责任,有责任感,有担当才是一个管理者的基本素养。

项目经理是需要时间来成熟的。他需要有机会来承受错误,而不是一开始就享受成功。

“如果因为不知道而出了问题,那管理者首先应该自省才是,动摇了制度的人不是犯错的员工,而是管理者自己,将制度传达给下属员工才是预防员工犯错误的前提,如果是因为制度规范没有及时的传达给员工,导致项目延误或失败那么管理这者就要承担相应的责任。”

工程开始之前先明确个体的角色,每个人都要确定自己的位置,兼任者要灵活地在两个或多个角色中转换,如果不清楚在特定的情景下自己应该扮演领导者还是协作者,那么这个管理人员就是不合格的。

第四章:流于形式的沟通

“应该清楚的是,保障每一次沟通的有效性都是最重要 的事。沟通不是打电话或者请客户吃饭那么简单的事。你得到的每一次沟通机会,都是向客户了解更深层次的需求 的机会,因此最好在见到客户之前,你就已经设计了所有 的问题和提问方式。”项目做的是否能满足客户的要求并不是与仅仅完成项目计划书的要求,所谓的沟通是所有项目相关者之间达成共识。

第五章:失败的过程也是过程

无论是用 RAD 模型还是 RUP 模型来做工 程,即使是亦步亦趋,也做不好工程。模型再好也不能完美地做好项目,事在人为,随机应变才能在实现过程中游刃有余

工程只是处理问题的途径,途径的最终目的是实现项目要求,为工程而工程的人,都迷失在项目中了。就象开发人 员迷失在一个技术的细节上一样。专注于 RUP 或者 RAD 之间的区别的人,可以把每一个过程的流程图都画出来,却也被这每一个流程给捆绑得死死的,再也没有挣扎一下的力气。
  过程不是死模型,过程模型是在既有工程中总结出来的。也就是说,在某个模型有了名字之前就它已经存在了,就已经被一些团队或者公司创生并使用了,一昧地追求模型是无法解决问题的,模型处理方法要恰到好处的契合进项目中。

第六章:从编程到工程

编程语言只是程序开发工具,仅仅是工具,但又那么重要,精通多门语言是非常实用的,作为管理者没有必要对语言有多么了解,而是不同的问题,不同的领域要有不同的工具。

编程是工程里的一部分,没有编程就没有工程,但仅关注编程而忽视了其他步骤是做不好工程的。

第八章:是思考还是思想

与一个技术分析人员讨论一个产品的技术 价值与市场价值之间的差异,以及市场运作方式与技术实 现手段的无关性,是毫无必要的。

实现目标与保障质量难以共存,能否平衡二者的关系是考验管理者的重要标准。管理人员做事件的决策的时候,就必须要学会忽略枝节问题。 混淆这两个名词的使用,其根本原因在于一大部分读 者并不能区分“细节”与“枝节”。

时间: 2024-08-07 21:18:18

《大道至简》阅读笔记的相关文章

《The C Programing Language》阅读笔记

<The C Programing Language> 要理解一种程序语言,而不仅仅只是会使用它. -----我的心声 介绍部分: 作者 C语言设计者 Kernighan  Ritchie  标准C语言及其程序设计方法 应用级编程两个主流语言 C++  Java 都建立于C的语法和基本结构上 现在世界上许多软件都是C语言及其衍生的各种语言的基础上开发出来的. C在传播中,肯定会有变化和进展,88年 ANSI(美国国家标准协会) 为C语言指定了一个精确的标准.即ANSI C. 自C诞生之后,C悄

CI框架源码阅读笔记4 引导文件CodeIgniter.php

到了这里,终于进入CI框架的核心了.既然是"引导"文件,那么就是对用户的请求.参数等做相应的导向,让用户请求和数据流按照正确的线路各就各位.例如,用户的请求url: http://you.host.com/usr/reg 经过引导文件,实际上会交给Application中的UsrController控制器的reg方法去处理. 这之中,CodeIgniter.php做了哪些工作?我们一步步来看. 1.    导入预定义常量.框架环境初始化 之前的一篇博客(CI框架源码阅读笔记2 一切的入

javascript高级程序设计阅读笔记(一)

javascript高级程序设计阅读笔记(一) 工作之余开发些web应用作为兴趣,在交互方面需要掌握javascript和css.HTML5等技术,因此读书笔记是必要的. javascript简介 JavaScript一种直译式脚本语言,是一种动态类型.弱类型.基于原型的语言,内置支持类型.它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能. 文档对象模型 DOM doc

论文《Chinese Poetry Generation with Recurrent Neural Network》阅读笔记

这篇文章是论文'Chinese Poetry Generation with Recurrent Neural Network'的阅读笔记,这篇论文2014年发表在EMNLP. ABSTRACT 这篇论文提出了一个基于RNN的中国古诗生成模型. PROPOSED METHOD 第一句的生成 第一句的生成是规则式的. 先自定义几个keywords,然后通过<诗学含英>(这是清朝人编写的)扩展出更多的相关短语.然后生成所有满足格式约束(主要是音调方面的)的句子,接下来用一个语言模型排个序,找到最好

《构建之法阅读笔记02》

这次主要对<构建之法>的第四章“两人合作”作一次阅读笔记. 首先是代码规范问题. 我过去对于代码规范问题并没有做到注意.在编程中,许多变量和函数的命名都非常的简单而没有实际的意义.而且编程时不注意对齐缩进.很多时候也不加注释,导致对这些简单的变量名称不熟悉. 这样做会使得很多人读代码费劲,甚至是自己都要花时间再次阅读懂自己的代码.而且很多没必要的注释也会使得注释失去意义.当自己再次在原基础上编程时,可能要重新编程等问题. 因此,通过阅读“代码规范”,我找到一些解决方法.代码的风格要简明.易读.

《代码阅读方法与实践》阅读笔记之二

时间过得真快,一转眼,10天就过去了,感觉上次写阅读笔记的场景仿佛还历历在目.<代码阅读方法与实践>这本书真的很难写笔记,本来我看这本书的名字还以为书里大概写的都是些代码阅读的简易方法,心想着这就好写笔记了,没想到竟然好多都是我们之前学过的东西,这倒让我有点无从下手了.大概像我们这些还没有太多经历的大学生,总是习惯于尽量避免自己的工作量,总是试图找到一些完成事情的捷径吧.总之,尽管我不想承认,但我自己心里很清楚,我就是这种人.下面开始言归正传,说说接下来的几章内容归纳. 这本书在前面已经分析了

《大道至简》阅读笔记1

<大道至简>阅读笔记1 不知不觉间看完了第一章,从这个章节里我看到了一些我们都明白可是却自己很难做到的道理. 书中从愚公移山的故事和编程相结合给出了编程的精义就是顺序.分支.循环,这些都是我们所熟悉的,也是老师在教学中耳提面命的,可是我们又有几个人能做到呢. 我们总是在找着各种各样的学不好学不会理由,“它太难了”,“我太笨了”,认真的想一想难道真的是它太难了或者是自己太笨了么?不,答案是否定的,追根究底是懒惰,是没能坚持.从根本上来说,不存在会不会写程序的问题,除了先天智障和后天懒惰者,这要你

CI框架源码阅读笔记3 全局函数Common.php

从本篇开始,将深入CI框架的内部,一步步去探索这个框架的实现.结构和设计. Common.php文件定义了一系列的全局函数(一般来说,全局函数具有最高的加载优先权,因此大多数的框架中BootStrap引导文件都会最先引入全局函数,以便于之后的处理工作). 打开Common.php中,第一行代码就非常诡异: if ( ! defined('BASEPATH')) exit('No direct script access allowed'); 上一篇(CI框架源码阅读笔记2 一切的入口 index

构建之法阅读笔记05

2017.5.20 今天阅读的是<构建之法>第8章需求分析的阅读笔记,我们如果要开始做一个软件,最先要进行的就是需求分析,我们应该充分的了解我们这个软件是否具有前景,我们为用户提供的服务是不是用户所需要的,这一章详细的叙述了如何进行需求分析. 首先是获取和引导需求,我们应该找到软件的利益相关者,了解挖掘他们对软件的需求,引导他们表达出真实的需求.然后分析和定义需求,对各个方面的需求进行规整,定义需求内涵,从各个角度将需求量化,然后估计实现这些需求所需要的时间和资源,确定各个需求的优先级.紧接着

《构建之法》阅读笔记(2)

<构件之法>阅读笔记2 看了前面两章,我感觉我现阶段距离一个程序员还很远,软件工程师更是遥不可及.在学校的我学习了很多,如c++,数据结构,面向对象--学的多而不精,纵观现在我就是一个盲目学习的学生,上课时认真听了课后却没有花更多的时间去研究,遇到不懂的容易掉价死胡同,总是花很多时间闷闷思考,不到最后都没有去请教同学,去百度.看着其他很厉害的同学,自己就只能在一旁羡慕嫉妒恨.那现在在怎么样才能将自己对编程的兴趣提高,加强自己的编程思想?提高自己的价值?能够尽早地迈进程序员.软件工程师的行列之中