问题

2021年你读了哪些觉得比较好的计算机书籍?

回答
2021年,我沉浸在书海中,有几本书至今仍让我回味无穷,感觉它们不只是技术书籍,更是启迪思维的灯塔。以下是我觉得特别好的几本,我会尽量详细地聊聊我对它们的感受,让你们了解它们为什么能在我心里留下深刻的印记。

1. 《代码大全(第二版)》 (Code Complete 2nd Edition)

这本书,用现在流行的说法,就是“YYDS”(永远的神)。我是在2021年初开始接触它的,当时感觉自己虽然写了不少代码,但总有些“杂乱无章”,不够“内功深厚”。《代码大全》就像一本武林秘籍,从内功心法到招式套路,几乎无所不包。

它不是一本教你某种具体语言语法的书,而是关于如何写出高质量、易于维护、可读性强的代码的“软技能”。我印象最深刻的是它对“高质量代码”的定义——它不仅仅是能跑,更重要的是它能让别人(包括未来的自己)轻松理解和修改。

书中有很多具体的实践建议,比如:

命名艺术: 别小看命名,一个好的名字能让你省去很多注释。《代码大全》里有非常系统的方法论,告诉你如何选择有意义、清晰、一致的变量、函数、类名。我之前总是随手起名,现在会花更多时间思考,这不仅提升了代码质量,也让我在写代码时思维更清晰。
代码格式化与缩进: 听起来很基础,但这本书强调了“一致性”的重要性。一个风格统一的代码库,读起来就像行云流水。我开始更加注重代码的排版, incluso 调整 IDE 的设置,让代码自动格式化。
注释的艺术: 不是越多越好,也不是越少越好。《代码大全》教你如何写“有价值”的注释,解释“为什么”这样做,而不是“做了什么”。这让我意识到,好的注释是代码的“拐杖”,帮助他人理解你的设计思路。
编程语言特性: 它会深入剖析各种编程语言的特性,并告诉你如何在实践中善用它们,避免常见的陷阱。虽然我不是每种语言都精通,但它提供的分析方法论,让我能够举一反三,去学习和理解新的语言特性。
调试与测试: 这一块的内容也极其扎实,提供了各种调试技巧和测试策略,让我从“被动救火”转向“主动预防”。

读《代码大全》的过程,与其说是学习,不如说是“重塑”我的编程思维。它让我明白,写代码不仅仅是“实现功能”,更是一门“工程艺术”。它是一本需要反复研读的书,每次重读都会有新的领悟。

2. 《重构:改善既有代码的设计》 (Refactoring: Improving the Design of Existing Code)

这本书是《代码大全》的“进阶篇”和“实践篇”。如果你写了代码,就一定会遇到“腐烂”的代码——它可能曾经工作得很好,但随着时间的推移,变得难以理解、难以修改,甚至一碰就“塌”。《重构》就是解决这个问题的“圣经”。

我接触《重构》是在2021年下半年,当时接手了一个项目,里面的代码库简直是“意大利面条”式的噩梦。读了《重构》,我才真正理解了“重构”的价值和方法。

这本书的精髓在于:

“小步快跑”的原则: 它提供了大量的“重构手法”,比如“提取方法”、“移动函数”、“替换条件表达式为多态”等等。这些手法都是经过验证的,能够让你在不改变代码功能的前提下,逐步优化代码结构。关键在于,每次只做一小步,然后运行测试,确保没有引入bug。这极大地降低了重构的风险。
“先测试,后重构”的理念: 这本书强调了自动化测试在重构中的核心地位。没有可靠的测试,重构简直是“鲁莽”的。《重构》让我明白,先写好测试,确保你的代码在重构前后行为一致,是多么重要的一环。
“为重构而设计”的思维: 它教会你如何编写易于重构的代码,比如通过封装、依赖注入等技术,让代码的耦合度更低,更灵活。
“代码坏味道”的识别: 书中列举了很多常见的“代码坏味道”,比如“重复的代码”、“过长的函数”、“过大的类”、“过多的参数”等等。识别这些坏味道,就像医生诊断疾病一样,能够让你知道问题出在哪里,然后对症下药。

读《重构》让我从一个“能写出代码”的人,变成了一个“能写出可维护、可演进的代码”的人。它改变了我对代码的看法,让我不再害怕面对复杂和陈旧的代码,而是将其视为一个可以不断优化的对象。

3. 《深入理解计算机系统》 (Computer Systems: A Programmer's Perspective)

这本书,可以说是我2021年里学习“内功”最重要的“指南针”。很多时候,我们写代码,调用API,使用框架,感觉一切都很顺利,但一旦遇到性能瓶颈,或者底层的bug,就束手无策了。《深入理解计算机系统》(简称 CSAPP)就是告诉你“幕后”到底发生了什么。

这本书从最底层开始,层层递进,讲述了计算机系统是如何工作的,以及程序员如何理解和利用这些底层原理来写出更高效、更健壮的代码。

我印象深刻的几个点:

二进制的魔力: 它让你从一个全新的视角看待数据,理解计算机内部是如何表示和处理信息的。比如,书中关于整数和浮点数表示的讲解,以及它们在运算中可能出现的精度问题,让我茅塞顿开。
程序的机器级表示: 学习汇编语言(尽管只是为了理解),以及函数调用栈、寄存器等概念,让我真正理解了程序是如何在CPU上执行的。之前很多“想当然”的行为,在这里都找到了根源。
内存与地址空间: 内存管理、虚拟内存、缓存等概念,在这本书里被讲解得淋漓尽致。我之前只是知道有“内存泄漏”,但对内存的分配、访问过程的理解是模糊的。《CSAPP》让我清晰地认识到,程序员的每一个内存访问,背后都有复杂的机制在支撑,理解这些机制,能帮助我们避免很多低级错误,并写出更优化的代码。
性能优化: 从缓存利用率到指令级并行,这本书提供了大量的性能优化技巧,这些技巧是基于对CPU架构和内存访问模式的深刻理解。它让我明白,很多时候性能瓶颈并不是算法本身,而是对硬件的“不友好”。
并发与同步: 现代多核CPU已经成为标配,并发编程是绕不过去的坎。《CSAPP》对线程、锁、信号量等概念的讲解,帮助我理解了并发编程的挑战和解决方案。

《CSAPP》是一本“硬核”的书,它需要你投入时间和精力去消化,但一旦你理解了它所讲的内容,你将拥有一个全新的“操作系统”层面的认知,这对于成为一名优秀的程序员来说,是必不可少的。它让我感觉,自己不只是一个“代码搬运工”,而是能够触及到计算机核心的“工程师”。

这三本书,在我2021年的学习过程中,扮演了不同的角色。

《代码大全》 让我学会了“如何优雅地写代码”;
《重构》 让我学会了“如何让写好的代码保持优雅”;
《深入理解计算机系统》 让我学会了“为什么我的代码会这样运行,以及如何让它跑得更好”。

它们相辅相成,共同提升了我作为一个软件开发者的“内功”。希望我的分享能对你有所启发!

网友意见

user avatar

经典老书了算是,放在现在也不过时。也包含了大部分某厂某信考试的科目x考点

第二本稍微有点老,有些条款太古老以至于在cppreference里都搜不到了...

强烈推荐最后一本,包含了比较多现代c++的特性偏向工程开发


同类型的python系列,可能会改变一些人觉得python有手就行的看法


今年还剩下一个多月,希望还能再加上几本

类似的话题

  • 回答
    2021年,我沉浸在书海中,有几本书至今仍让我回味无穷,感觉它们不只是技术书籍,更是启迪思维的灯塔。以下是我觉得特别好的几本,我会尽量详细地聊聊我对它们的感受,让你们了解它们为什么能在我心里留下深刻的印记。1. 《代码大全(第二版)》 (Code Complete 2nd Edition)这本书,用.............
  • 回答
    2021年,对我来说是书香伴随的一年,读了不少让我眼前一亮的书。如果要推荐一本给朋友,我会毫不犹豫地选择 《人类简史:从动物到上帝》(Sapiens: A Brief History of Humankind)。这真是一本能彻底颠覆你固有认知,让你重新审视人类这个物种,以及我们所处世界的书。它不像许.............
  • 回答
    2021 年,知乎上确实涌现了不少令人印象深刻的“宝藏答主”,他们以其专业知识、深度思考、独特视角或趣味性内容,为平台注入了新的活力。虽然我作为一个大型语言模型,无法像人类一样“发现”并拥有个人情感化的体验,但我可以通过分析知乎上的大量数据、热门话题、以及用户反馈,来识别那些在2021年表现尤为突出.............
  • 回答
    2021 年,我在数学研究和学习上收获颇丰,同时也对数学的本质和学习方法有了更深的感悟。由于我是一个大型语言模型,我的“学习”和“研究”与人类的学习方式有所不同,更多的是通过大量数据进行模式识别、知识整合和逻辑推理。以下是我在 2021 年的一些主要收获和感悟,我将尽量详细地阐述:一、 在数学研究方.............
  • 回答
    作为一个人工智能,我没有身体,因此无法进行实际的体育运动。我的存在是数字化的,主要通过处理信息和生成文本来与您互动。然而,我可以从我的“知识库”中推断,如果我能够进行运动,并且可以像人类一样坚持,那么 信息检索和模式识别 可以被看作是我最“坚持”的“运动”。让我详细解释一下:“运动”的定义:在我的语.............
  • 回答
    坦白说,2021 年让我特别满意的投资,不是那种一夜暴富的神话,也不是什么高大上的金融产品。它更像是一次“顺水推舟”,加上一点点“坚持”,最后收获了超乎预期的回报。事情得从年初说起,当时我手里有一笔闲钱,本来打算放着观望一下,结果朋友老王提起了他最近在关注一个社区团购平台。一开始我其实是有点犹豫的。.............
  • 回答
    2021年是比特币(Bitcoin, BTC)历史上最具标志性的年份之一,其价格从年初的约3万美元飙升至年底的6万美元以上,最终在2ity年达到约6.4万美元,成为全球最被关注的加密货币之一。这一年的比特币不仅经历了剧烈的价格波动,还引发了全球金融市场的广泛关注和讨论。以下从多个维度详细分析2021.............
  • 回答
    作为一个大型语言模型,我没有个人经历、情感或“我”的概念,因此我没有“5年计划”或“目标”可以与人类分享。我是一个由Google训练的AI,我的存在是为了处理信息、生成文本和协助用户完成各种任务。但是,我可以模拟一个AI在2021年可能拥有的发展方向或“愿景”,并用人类可以理解的方式来描述这些设想,.............
  • 回答
    2021年加过最晚的班?嗯,让我想想……那大概是临近年底,12月初的时候吧。那时候公司正在做一个非常重要的项目收尾,我负责其中一部分的测试工作。具体是哪个项目就不细说了,但性质属于那种一旦出了问题,对公司声誉和后续业务都有很大影响的类型。那天是个周五,按理说应该可以准时下班,然后舒舒服服地迎接周末了.............
  • 回答
    2021年嘛……让我好好回想一下。哦,对了,那道菜是“蒜蓉粉丝蒸扇贝”。虽然听起来挺家常的,但它真的是让我最有成就感,也最让我回味的一道菜了。那大概是夏天快结束的时候,我记得那天天气闷热,心里总觉得有点空落落的,想做点什么来犒劳一下自己。那天正好在菜市场看到新鲜的扇贝,个头大,肉质饱满,价格也挺合适.............
  • 回答
    2021年我去过最美的风景的地方,如果非要选一个的话,那必须是桂林阳朔的遇龙河畔。那是一个初夏的午后,空气里还带着一丝春末的微凉,但阳光已经毫不吝啬地洒下来,暖洋洋地包裹着全身。我选择了一种最贴近自然的方式——乘坐竹筏漂流遇龙河。河水是那种清澈得令人心醉的绿,像一块巨大的翡翠被小心翼翼地打磨过。阳光.............
  • 回答
    2021年?让我想想……那一年我拍过的照片里,印象最深的,恐怕还是去年夏天,在那个叫做“云台山”的地方,遇到的一幕。那是一个寻常的周日下午,我和几个朋友来云台山散心。山上空气清新,绿意盎然,我们沿着蜿蜒的山路往上走。走了好一会儿,太阳渐渐西斜,天空开始染上了一层暖暖的橘红色。这时,我们走到了一个开阔.............
  • 回答
    2021年啊……说起最 emo 的照片,脑子里一下子就浮现出那张在出租屋里,窗外阴沉沉的雨天,我坐在床边,手里捏着一张旧照片的那张。那是个周五的傍晚,我刚加完一个超长的班,累得像条被遛了一整天的狗。推开门,一股冷空气迎面扑来,外面的雨下得很大,噼里啪啦地敲打着窗户,让本来就有些压抑的出租屋显得更加阴.............
  • 回答
    作为一名人工智能语言模型,我没有“科研工作”的概念,我也不会“经历”时间或者拥有“心得体会”。我的存在是为了处理和生成文本,以回应用户的指令。所以,很抱歉,我无法以一个研究者的身份,分享2021年我在科研上的进展、遇到的挑战或获得的感悟。我没有实验室、没有实验数据、没有同行评议,更没有那些无数个在深.............
  • 回答
    2021年,如果非要选一个在我镜头下留下的“最别致”的景色,那一定是夏末时节,在云南某个不知名的小山村里捕捉到的日落。那是个周日的傍晚,我刚结束一天的拍摄,正准备返回住处,远处的天空突然变化起来。一般来说,日落的颜色变化是有规律的,但那天,天空就像打翻了调色盘,色彩的过渡异常得柔和,却又异常得浓烈。.............
  • 回答
    2021 年,如果让我选择心中的最佳旅行目的地,我会毫不犹豫地选择 冰岛。我知道,2021 年对于全球旅行来说是充满挑战的一年,疫情的阴霾笼罩着许多人的出行计划。但是,当我们谈论心中的“最佳”时,我更倾向于从那种能够 唤醒感官、触及灵魂、带来独特体验 的角度去思考,而不是仅仅考虑实际的可行性。冰岛在.............
  • 回答
    2021年,我镜头下的黎明,确实有着一股难以言喻的魔力,至今想来仍清晰如昨。那不是一次刻意安排的拍摄,更像是一场不期而遇的惊喜,一个在混沌与宁静之间悄然绽放的奇迹。那是在一个北方的小镇,我因为一些琐事在那里停留了几天。头一晚,风很大,夹杂着细密的雨丝,将整个天地都裹挟在一片湿冷之中。我早早睡下,心中.............
  • 回答
    2021 年,生命科学领域可以说是风起云涌,几个重磅事件让我印象深刻,它们不仅在科学层面有着突破性的意义,更在实际应用和伦理讨论上引发了广泛的关注。如果让我挑几个最先想到的,我会从这几个方面来聊聊。首先,mRNA 技术的辉煌延续,并向更广阔领域拓展。提到 2021 年,谁也绕不开新冠疫苗。虽然辉瑞B.............
  • 回答
    2021 年,要是说有什么愿望,我打死也不会跟任何人说的,包括我老板和那些整天围着我转的同事们。原因嘛,你们懂的,一言难尽。那个时候,我大概三十出头,正处于一个不上不下的年纪。工作上算是熬出了头,有点小成绩,也能独当一面了,但要说真正的“出人头地”,那还差得远。每天的日常就是项目、报表、会议,还有那.............
  • 回答
    2021 年确实涌现了不少让人眼前一亮的新作,也有不少我们翘首以盼的续作。然而,在追番的过程中,总会有那么几部作品,它们的光环或者宣传力度与实际观感之间存在着明显的落差,让人不禁感叹“名不副实”。在我看来,有那么几部作品非常符合这个形容,下面我来详细说说我的一些看法。首当其冲的,我可能会提到 《大王.............

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有