zoukankan      html  css  js  c++  java
  • 梦断代码阅读笔记01

    从开始读梦断代码就发现了它的第一个章节是第0章,带着疑问从开始读了下去,读者读者也发现了,为什么作者把那一章标位第0章,作者说只是想指出计算机程序员和其他人的一处小小不同,程序员从0开始计数,而不是从1开始。要解释这种习惯的来源,得从计算机中央处理单元里的寄存器,以及数据队列的结构等等奧义秘辛说起。

    为什么程序员要从0开始计数?因为计算机从0开始计数!所以,程序员也训练自己这样计数,以免让他们要指示操作的计算机产生误解。这本也无伤大雅,只是使用计算机的大多数人是从1开始计数,未免令人烦恼。往下到系统层面,在这个层面上,数据被存储和操作一意味着我们的金钱、工作和设想被转换为机器可读的符号一计算机程序及编程语言经常会做小小的偏移操作,即“+1” 或“-1”,使得计算机从0开始计数的列表与人类从1开始计数的列表保持同步。

    在计算机的二进制数字世界里,所有的信息都被简化为0和1的序列。但是,在0和1之间有空间存在,在机器计数和思考的方式与人类计数和思考的方式之间也有空间存在。当你寻找软件缺陷、延误和不按设计思路运行的原因时,那原因就藏身于这空间之中。

    读完第零章之后,给我印象最为深刻的就是许多疑问句,内容就是,编程已不再处于萌芽期。我们的世界依赖于无穷复杂的软件。在长达半个世纪的研究和实践之后,为什么还是很难做到按时限?按预算做出计算机软件?为什么还是很难让软件可靠而安全?为什么还是很难把软件做得易于学习使用,且具备按需修改的灵活性?这只跟时间和经验有关吗?是否有出现某种根本性突破的可能?在软件的本质特性( 抽象性、复杂性及延展性)上,是否存在某种总能击倒我们的无常之物,将开发者咒入充满不可挽回的延误和根深蒂固的缺陷的世界?

  • 相关阅读:
    129. Sum Root to Leaf Numbers
    113. Path Sum II
    114. Flatten Binary Tree to Linked List
    112. Path Sum
    100. Same Tree
    300. Longest Increasing Subsequence
    72. Edit Distance
    自定义js标签库
    JS 实现Table相同行的单元格自动合并示例代码
    mysql 高版本only_full_group_by 错误
  • 原文地址:https://www.cnblogs.com/baimafeima/p/11042006.html
Copyright © 2011-2022 走看看