之所以看这本书,是想了解一些跟汇编相关的知识,打开这本书后就被作者的观点——“If you don't understand something the first time, reread it. If you still don't understand it, it is sometimes best to take it by faith and come back to it later(第一遍看不懂,那就看第二遍;还是看不懂,记住它,回头再看)”吸引了,从2024年6月30到2024年10月11日,期间断断续续的抽空阅读,大概花了11天读完。

这是一本关于通过汇编语言(AT&T语法)入门编程的书。总共十三个章节,介绍了计算机基本结构、汇编语言语法、常用指令、函数、文件操作、内存管理、优化等基本内容,虽然整本书只有300多页,但编程的各个方便也基本涵盖了,和《The C Programming Language》一类书一样,属于非常精简的书。

既然这是一本通过汇编语言入门编程的书,那么是否适合无基础的人作为编程的入门教材?

我的观点是:不那么适合。这本书出版于2004年,当初32位的电脑很普遍,所以里面的汇编代码使用的指令大部分适用于32位的电脑,而如今是2024年,大部分的电脑都是64位的,那么关于寄存器、指令的这两部分的内容,稍微显得有点过时——当然,这并不是说里面的内容没有意义,也不是说里面的代码无法运行。本书的作者为了解决这个问题,在2021年又写了一本书——《Learn to Program with Assembly : Foundational Learning for New Programmers》,介入时间关系,我还没有开始阅读,各位感兴趣的读者不放先从后面一本书读起。

这本书对自己有什么帮助?

看完了一本技术类书籍,不能看完了就完了。有什么收获?于我而言,有一下几点收获:

1.锻炼了英文阅读能力。这本书比较简短,所以阅读起来相对来说没有那么困难。同时尽量将范围局限在技术之内,没有过多的涉及国外的历史、人文等知识。不想有些书,不像某些书,每个章节的开始都引用一段其它书的内容——个人真的很不喜欢这种话风格,去掉了对阅读完全没有影响。

2.掌握了AT&T的汇编语法

3.学习了一些优秀的思维方式。应该说,这是本书让我最满意的一点,作者的很多观点。本人觉得很有指导意义:(1)“If you don't understand something the first time, reread it. If you still don't understand it, it is sometimes best to take it by faith and come back to it later(第一遍看不懂,那就看第二遍;还是看不懂,记住它,回头再看)”。(2)Therefore, the time to optimize is toward the end of development, when you have determined that your correct code actually has performance problems(在开发即将结束时进行优化,因为这已经确定了代码的正确性,同时也确定了代码确实存在性能问题)。(3)As a programmer, you will need to be

prepared to be constantly learning and pushing your limits。

最后的最后,推荐一下郭晴霞老师的中译本《深入理解程序设计:使用Linux汇编语言》,看完英文版后,去看了下中文版,中文版翻译质量很高,不想看英文版的,可以直接看中文版。

参考资料

1. 编程

(1)Jonathan Bartlett,《Programming From The Ground Up》:https://book.douban.com/subject/1787855/

欢迎搜索及关注:编程人(a_codists)

《Programming from the Ground Up》读后感的更多相关文章

  1. 《DevOps软件架构师行动指南》读后感

    从软件架构师视角讲解了引入DevOps实践所需要拥有的技术能力,涵盖运维.部署流水线.监控.安全与审计以及质量关注,这是本书一开始内容简介的开头,本书的作者是伦恩·拜斯(Len Bass).英戈·韦伯 ...

  2. nodejs开发指南读后感

    nodejs开发指南读后感 阅读目录 使用nodejs创建http服务器; supervisor的使用及nodejs常见的调式代码命令了解; 了解Node核心模块; ejs模板引擎 Express 理 ...

  3. DevOps:软件架构师行动指南(文摘)

    第一部分 背景 第1章 DevOps是什么 第二部分 部署流水线 第三部分 横切关注点 第四部分 案例研究 第五部分 走向未来

  4. 2020年DevOps工程师入门指南

    DevOps兴起于2010年代,到现在DevOps已经在行业中拥有了一席之地,并在继续发展壮大. 有兴趣成为一名DevOps工程师吗?如果想要成为一名DevOps工程师,需要做到以下五点: 要有开发者 ...

  5. 5月29日 Java性能调优指南 读后感

    并行垃圾收集器 串行垃圾收集器 并发标记清除(CMS)垃圾收集器 Garbage First(G1)垃圾收集器 没有深入的学习G1的原理,只是看了大概的思想; SA工具:待学习

  6. 敏捷开发、DevOps相关书籍——书单

    自己瞎整理的一些书单,都是豆瓣评分比较高的书,可以作为选择的一个参考. 书名 豆瓣链接 持续交付:发布可靠软件的系统方法 https://book.douban.com/subject/6862062 ...

  7. 有奖试读—Windows PowerShell实战指南(第2版)

    为什么要学PowerShell? Windows用户都已习惯于使用图形化界面去完成工作,因为GUI总能轻易地实现很多功能,并且不需要记住很多命令.使得短时间学会一种工具成为可能. 但是不幸的是,GUI ...

  8. [转载]你所不了解的DevOps

    DevOps开发运维训练营 一旦建立了创新的文化,即使那些并非科学家或者工程师的人——诗人.演员.记者——也能以团体的形式,接受科学文化的意义.他们信奉创新文化的概念.他们以促进这种文化的方式投票.他 ...

  9. 给 DevOps 初学者的入门指南

    当我们谈到 DevOps 时,可能讨论的是:流程和管理,运维和自动化,架构和服务,以及文化和组织等等概念.那么,到底什么是"DevOps"呢? 什么是DevOps 随着软件发布迭代 ...

  10. CI Weekly #3 | 关于微服务、Docker 实践与 DevOps 指南

    CI Weekly 围绕『 软件工程效率提升』 进行一系列技术内容分享,包括国内外持续集成.持续交付,持续部署.自动化测试. DevOps 等实践教程.工具与资源,以及一些工程师文化相关的程序员 Ti ...

随机推荐

  1. 【CI/CD】Centos7 下载安装 Jenkins

    一.Docker安装Jenkins 参考: https://www.bilibili.com/video/BV11B4y1W7eH?p=5 安装Jenkins最新稳定版镜像: [root@Centos ...

  2. 【Oracle】Windows-19C 下载安装

    下载 Download 官网下载地址[需要Oracle账号]: https://www.oracle.com/database/technologies/oracle-database-softwar ...

  3. 工业机器人的力控(Force Control)

    相关: https://baijiahao.baidu.com/s?id=1785676027803650068 机器人编程人员需要提前知道机器人的摩擦力.阻力.质量.重力,等数值,然后建立基于物理模 ...

  4. 【转载】 ImportError: libGL.so.1: cannot open shared object file: No such file or directory——docker容器内问题报错

    版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/qq_35516745/article/de ...

  5. impdp/expdp报错: ORA-39064: 无法写入日志文件 ORA-29285: 文件写入错误

    问题现象 Windows服务器导入/导出Oracle 11g数据库出现如下报错提示,输出的日志文件从报错位置往后不再输出. ORA-39064: 无法写入日志文件 ORA-29285: 文件写入错误 ...

  6. vscode 下配置 clang

    需要在workspace的文件夹下添加文件: .clang-format 更多参数说明: https://clang.llvm.org/docs/ClangFormatStyleOptions.htm ...

  7. 一款运行于windows上的linux命令神器-Cmder(已经爱不释手)

    一.前言 很多工程师都习惯了使用linux下一些命令,再去用Windows的 cmd 简直难以忍受. 要在windows上运行linux命令,目前比较流行的方式由: GunWin32.Cygwin.W ...

  8. cloud compare二次插件化功能开发详细步骤(一)

    点云处理,有一个出名的处理软件,cloud compare,简称 cc,将自己实现的功能以插件形式集成到 CC 里,方便使用 前提 环境:cc 2.13,qt 5.15,cmake 3.18,vs20 ...

  9. JavaScript设计模式样例十二 —— 享元模式

    享元模式(Flyweight Pattern) 定义:减少创建对象的数量,以减少内存占用和提高性能.目的:用共享技术有效地支持大量细粒度的对象.场景:系统中有大量对象. // 构建享元对象 class ...

  10. npm包管理工具 --save和--save-dev的区别

    --save是默认的,例如 npm i jquery 和 npm i jquery --save 是等价的 --save是代表着项目上线时所依赖的包 --save-dev 代表着是项目打包或者开发时候 ...