首页 > 其他分享 >九月读书笔记

九月读书笔记

时间:2023-12-19 23:33:34浏览次数:24  
标签:读书笔记 知识 技术 石头 质量 士兵 软件 九月

程序员修炼之道:从小工到专家

阅读了此书的前五节

第一节:我的源码让猫吃了

1、开发过程中出现未曾预料的技术问题,交付晚了等情况,没关系,这些是无法避免的。发生了,我们就要尽可能想方设法地职业的去处理它们。程序员这个职业需要诚实和坦率,要敢于承认自己的错误。

2、要对担负的东西负责,如果某些东西真的超出了你的控制范围可以不处理,需要尽早提出这个不可控的点。自己职责所在的事情就需要为其结果负责。当结果不达标,比如磁盘垮了,但你却没有备份代码,那这就是你的错。不要为出错的情况找借口,想老板说"我的源码让猫给吃了”,对问题没有任何帮助,而要向他们提供可行的解决方案,做什么能够最大的挽回局面。

第二节:软件的熵

1、熵是一个热力学概念,指的是在某个系统中的“无序”的总量,热力学定律指出宇宙中的熵总是倾向于最大化。软件工程里中也存在这么一个定律,工程越庞大,代码的“无序”状态越严重。

2、破窗理论指出,当一个东西本身就破旧时,不但没人爱惜,还会朝他仍石头,导致更多破窗。软件开发中也一样,如果我们项目留有很多“破窗户”(低劣的设计、错误的决策、糟糕的代码),之后接手的人也会倾向于是它变得更糟糕。如果代码很漂亮,你自己以及之后接手的人,都可能会格外注意,不把它弄脏的。所以我们应该尽早处理工程中遗留的问题。

第三节:石头汤和煮青蛙

1、三个士兵返乡,路上饿了,路过一个村子,想跟村民借点吃的,但村民粮食贫乏不愿意出借。士兵们没有气馁,他们煮开了一锅水,往里面放了几块石头。村民好奇为他们在干嘛,士兵解释,这叫石头汤,如果能放点胡萝卜的话会更好喝。村民跑回家拿来了胡萝卜,士兵说如果放些土豆会更美味,又有人跑回家带来了土豆。后面又有人加了别的东西,最后士兵和大家一起吃了一顿饱饭。

2、有时候你确切的知道自己需要什么以及怎么做,但请求许可这件事往往会遭遇拖延和漠然,每个人都会护卫他们自己的资源,这让事情变得复杂,这叫“启动杂役”(start-up fatigue)。这时候我们不应该等着所有事情都准备好,而应该先拿出“石头”煮起来,就是想让事情启动起来。只要是有益的事情,你把做出的一部分结果拿给别人看,然后告诉他们如果加的别的什么会更好,大家一般都会帮忙的。

第四节:足够好的软件

1、使质量成为需求问题。很多时候对于质量的评估都是开发人员在进行,我们对质量要求低,交付时会出现很多问题,我们对质量要求高,会很大程度延误工期。所以指定需求时,把质量这一块考虑进去,在商定的时间内,由产品或者客户决定他们可以接受的质量是什么样的。

2、没有完美的软件,应该知道何时止步。今天了不起的软件常常比明天的完美软件更可取。及早让客户使用,他们的反馈常常会把你引向更好的解决方案。

第五节:足够的资产

1、本杰明·富兰克林说过:知识上的投资总能得到最好的回报。这没问题,但遗憾的是知识是有时效的资产,特别是计算机领域。我们可以把我们了解的技术实现、工作经验视为知识资产,并使用管理金融资产的形式管理这些知识。

2、经营知识资产可以从以下方面进行:

  • 定期投资:定期投入时间学习,即使很小的投资也是很重要的。
  • 多元化:作为底线我们需要对当前所从事的技术熟练掌握。但不要就此止步,技术的发展变化很快,掌握的知识越多,就越能更好的进行调整,赶上变化。
  • 管理风险:不要把所有的“技术鸡蛋”放到一个篮子里。
  • 低买高卖:新技术流行之前就掌握它往往比之后跟风再学得到更大的回报。

这些知道方针里最重要也是最简单的就是:定期为你的知识资产投资。

3、具体方案介绍

  • 每年至少学习一种新语言。
  • 每季度阅读一本技术书籍,习惯之后可以一个月就阅读一本。
  • 也要阅读非技术书籍,记住计算机是由人使用的。
  • 在本地大学或者网上系统地学一门课程。
  • 体验不同的环境,如果你只在 Windows 上工作,可以试下 Unix。如果你只使用某一种 IDE 那可以试试其他 IDE。

标签:读书笔记,知识,技术,石头,质量,士兵,软件,九月
From: https://www.cnblogs.com/yang-----/p/17915113.html

相关文章

  • 《需求分析与系统设计》读书笔记2
      第四章是需求规格的说明,在这章中作者提出需要用图形和其他形式化模型来说明需求。需求规格说明用客户的叙述性需求作为输入,用构造规格说明模型作为输出,这些模型分为3组,即状态模型,行为模型和状态变化模型。对象的状态由它的属性和关联的取值来决定,状态规格说明提供系统的静态视......
  • 【Kaggle】AAAMLP读书笔记 Cat-in-the-dat II (优化)
    本人希望从0开始,自己的Kaggle竞赛12月拿到自己的第一块Kaggle奖牌短期内读完AbhishekThakur的Approaching(Almost)AnyMachineLearningProblem并且发博客记录https://github.com/abhishekkrthakur/approachingalmost12月至少发21篇博客每天保持八小时的学习时间Approachingca......
  • 程序员的思维修炼 读书笔记02
    第三章认识你的大脑R型对直觉,问题解决和创造性非常重要,L型让你细致工作并实现目标。人类具有超强的感知能力,其中许多无法有效地用语言表达。例如,你可以立刻认出大量熟悉的人的面孔,无论他们是否改变了发型、穿着,或者肥了10磅,还是过了20年。但是,尝试描述你最亲密爱人的脸庞,你......
  • 读书笔记
     1.有基本函数的用法 Numpy: 来存储和处理大型矩阵,比Python自身的嵌套列表(nestedliststructure)结构要高效的多,本身是由C语言开发。这个是很基础的扩展,其余的扩展都是以此为基础。数据结构为ndarray,一般有三种方式来创建。 Pandas: 基于NumPy的一种工具,该工具是......
  • 读书笔记——槽叔《攒多少钱,才能安心养老》
    01中国人养老的四大迷思◆1.1我的社保养老,能领多少?社保养老:国人养老第一支柱城镇职工养老保险和城乡居民养老保险统称为社保养老金。现收现付制:读懂第一支柱的钥匙设计职工养老金制度时,政府设立了两个账户:统筹账户和个人账户。统筹账户由单位出资,按月薪的16%计算。—......
  • 《构建之法》读书笔记(二)
      “人们为了解决现实社会和生活中的各种问题,要求助于软件。”那我们如果精准地获取到这些需求呢?通过阅读我了解到以下步骤。   开发一个软件前,我们要去了解这个软件的受益者,了解他们的需求,了解他们对这个软件的期待,然后软件工程师按照相应的需求开发,替用户着想。当然......
  • 《需求分析与系统设计》读书笔记1
    第一章讲了软件过程,从总体生描述了软件开发过程中的策略问题,介绍了支撑现代软件开发的过程和方法,认到了软件工程的本质是软件固有的复杂性,一致性,可变性和不可见性的产物。软件工程的偶然因素分为3类,即投入者,过程和建模语言和工具;投入者指那些与软件项目之间存在着利害关系的人,即客......
  • 读书笔记12《构建之法 现代软件工程(第二版)》读后感
    今天将《大话软件工程-需求分析与软件设计》这本书算是总体阅读下来了,说一说总的感受。《大话软件工程-需求分析与软件设计》是一本为软件工程师和客户们提供一套支持交流、传递,具有很强实操性的理论、方法、工具和标准的书籍。这本书让我对软件工程有了更深入的理解,并且让我......
  • 软件架构读书笔记2
    第二部分:计算机功底主要讲解的是术。计算机功底、语言、框架、网络、数据库、操作系统等。印象最深刻的是框架那一章。作者提到,熟悉一个框架之后,更多的是应该去关注它的缺点,而不是优点。更应该关注它不能做什么,而不是它能做什么。它不能做什么往往是别的框架的改进点。细想,如......
  • 软件架构设计读书笔记
    第一部分:什么是架构?一句话:架构是针对所有重要问题做出的重要决策。不同公司或者相同公司在不同的阶段所面临的问题不同,架构自然也会有所不同。个人认为,不存在称之为完美的架构,只会存在最适合的。面对的场景,着重的目的不同,那么相应的决策也会不同(有点废话)。架构的分类。作......