首页 > 其他分享 >《Programming from the Ground Up》读后感

《Programming from the Ground Up》读后感

时间:2024-10-11 21:34:12浏览次数:1  
标签:本书 读后感 don 汇编语言 编程 Programming Up understand

之所以看这本书,是想了解一些跟汇编相关的知识,打开这本书后就被作者的观点——“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)

标签:本书,读后感,don,汇编语言,编程,Programming,Up,understand
From: https://www.cnblogs.com/codists/p/18459403

相关文章

  • [The 3rd Ucup. Stage 10 West Lake] Generated String
    题意维护一个字符串集合,支持动态插入,动态删除,查询同时具有前缀\(s_1\)与后缀\(s_2\)的串的个数,所有字符串用如下方式给出:先给定一个全局模板串\(S\),每一个字符串都是\(S\)的若干个下标区间对应的字符串拼接而成的。即给出若干个区间\([l_1,r_1],[l_2,r_2],\dots,[l_k,r_k......
  • jupyter notebook里添加conda虚拟环境
    情况描述有时clone的项目中包含demo.ipynb文件,需要启动jupyter-notebook运行,此文记录将虚拟环境导入到jupyter中。1.下载并运行jupyter-notebook#在base环境当中安装jupyterpipinstalljupyter#base环境下运行jupyterjupyternotebook#jupyternotebook可选参数2.......
  • Vue3,setup()函数与<script setup>到底有什么本质区别?
    文章目录Vue3中`setup()`函数与`<scriptsetup>`的本质区别一、`setup()`函数的基础理解二、`<scriptsetup>`的基础理解三、`setup()`与`<scriptsetup>`的本质区别四、何时使用`setup()`,何时使用`<scriptsetup>`五、`<scriptsetup>`的一些特殊功能六、......
  • 常见魔改UPX
    几篇大佬的文章:https://cujo.com/blog/upx-anti-unpacking-techniques-in-iot-malware/https://www.cnblogs.com/ichunqiu/p/7245329.htmlhttps://bbs.kanxue.com/thread-275753.htmhttps://www.52pojie.cn/forum.php?mod=viewthread&tid=326995HeaderStructuresp_fil......
  • upload-labs 文件上传靶场 详细攻略(pass1-10)
    前言:本篇文章主要讲解upload-labs第1-10关,原因是前十关的代码过滤思路大体上是相似的,无非是每关缺少了某几个函数导致过滤不严谨造成漏洞,因此可以归为一起学习,从而熟悉文件上传中常用的过滤函数,了解代码的原理和设计的目的文件上传漏洞对于文件上传漏洞的简要概括就......
  • Halcon Tuple数组的增删查改
    read_image(Image33,'E:/Halcon数据/资源图片/33.png')dev_get_window(WindowHandle)dev_set_draw('margin')get_image_size(Image33,Width,Height)query_font(WindowHandle,Font)FontWithSize:=Font[0]+'-30'set_font(WindowHandl......
  • Jupyter Notebook 中同时使用 Python 和 R
    要在JupyterNotebook中同时使用Python和R,可以通过rpy2库来实现。以下是具体步骤:安装rpy2(如果尚未安装):pipinstallrpy2在JupyterNotebook中加载R包:可以在Python代码单元中使用rpy2的importr函数来加载R包。下面是一个示例代码,展示如何加载neuroba......
  • ArgoCD + ArgoCD Image Updater 部署实现
    部署思路踩坑整理1、ArgoCD和ArgoCDImageUpdater是2个不同的程序。"ArgoCDImageUpdater小工具"没有集成在ArgoCD中需要单独部署。2、单独的ArgoCD能够实现基于git仓库变更作为应用部署的事实来源[参考子页:argocd根据镜像tag变化实现自动发布的2种方式];ArgoCD+"ArgoCD......
  • 方正畅享全媒体新闻采编系统 addOrUpdateOrg xxe漏洞
    0x01产品描述:   方正畅享全媒体新闻采编系统是一个集指挥中心、采集中心、编辑中心、发布中心、绩效考核中心和资料中心为一体的全媒体新闻采编系统‌,主要应用于媒体行业的深度融合,通过大数据和AI技术,实现新闻生产的策、采、编、发、存、传、评的全流程管理‌     ......
  • 区块链中Roll Up啥意思
    在区块链中,“RollUp”是一种扩展解决方案,它通过将多个交易打包(或“卷起”)到一个单一的交易中,从而减少链上数据的处理量。RollUp的主要优点是提高交易吞吐量和降低手续费,同时仍然保持安全性和去中心化。RollUp分为两种主要类型:ZK-Rollup:使用零知识证明来验证交易的有效性,......