漫谈程序设计之--阅读

2024-08-25 09:38
文章标签 阅读 程序设计 漫谈

本文主要是介绍漫谈程序设计之--阅读,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

如今编码已经一年多,和朋友闲聊时谈到我想写自己的心得体会,不会多,只是有空就随手记录,遂成博文。其中不乏有我个人纰漏之观点。阅读的人看一半信一半,还有再怀疑我一半就行。



搞技术的人其实是很很幸苦的,因为光会编码不行,还得懂得设计思维,以及很多底层的知识。阅读是最好的营养品。所以我会把自己阅读过的书罗列起来,让新来者能够从中获取最适合自己的信息。l



《c++程序设计原理与实践》难的说他是一本极其好的入门书籍,因为它对语法的照顾不是很好,但是其中程序设计的思想却十分老道。如今翻阅,和当初学习的时候心境自然不同,更确切的说是对解决问题有了新的认识。该书最难的部分应该就是其中的计算器了。我记得当中有非常难以理解的文法。当时学习的时候对递归的认识并不很深,因而阅读的时候十分吃力。开始的时候我没有买台灯(我们学校十点半熄灯)那时候为了弄懂文法的意思,我就一直占着厕所,仔细思考其中含义,现在想想,恍若昨日,也很感激舍友对我的照顾,并没有对我有半句不满的言辞。貌似话题有些扯远。现在我去开发复杂项目的时候,文法图能够带给我清晰的逻辑思维,以至于文档也很好写,至于模块化嘛,肯定是有的。



《c++ primer》当时学习是配着这本书看的。不过其中有很多c++11的内容,当时我还是个新手(现在应该还是),所以对语法糖的钟爱称得上是overkill的。我常以自己用了新的语法而感到骄傲,对于满足感的追求,我有时也写出自己都难懂的代码,所以,如果你是刚学习c++,或者其他的程序设计语言的时候,我建议对语法糖的钟爱不要像我这样。毕竟代码是给人阅读的,他应该是一首诗,而不是晦涩的谜题。


《c++高级编程》不怎么推荐去阅读,高不成低不就,翻译一塌糊涂,其中都是讲解的语法糖,而且还有错误。


《深度探索c++对象模型》我感觉是我读的最值当的书之一,其中对c++语言设计做了非常完美的解释,只是不知道是不是翻译的原因,其中有些话总给人一种逻辑不清的感觉。当中也有错误(应该是候老师自己误解吧)。不过这本书对我后来学习java等面向对象的程序设计语言很有帮助,至少我懂得多态大概是怎么实现的,还有一些对性能上的冲击等等,这帮助我日后进行软件的建模,以及正确的使用继承,而不是滥用继承,给程序带来不必要的累赘。其实对这本书有很多体会,只是不知为何,现在却写不下这些感觉。

对了,如果看过这本书,就应该知道一些与编译器相关的特性,至少这会提醒你,不要这么做,不然你就失去了移植性。用herb sutter的话来说,凡是写出这样代码的人都应该拉到停车场后面批评,或者直接被解雇。


《 effective c++》每一个c++程序员都应该阅读的书之一。其中对于编码规范,以及一些设计技巧,C++语言的“潜规则"都做了非常详细的说明。仔细想想,java没有析构函数也是有他的道理所在,毕竟谁都不想在抛出一个异常的时候又产生一个异常。如果自己信心勃勃编写的程序被无辜shut down,换做谁都会十分诅丧的。


《more effective c++》scott meyers在继上一本书之后的有一著作,其中对c++ oop的一些高级内容做了完美的阐述。我很庆幸自己阅读了这本书,因为在我日后学习qt的时候,我不会因为其中的设计模式而感到困惑,因为这些内容我都在这本书中接触过。印象最深的应该是实现c++自己多态的拷贝复制构造函数。


    《STL源码剖析》非常有名气的一本书,只不过其中有些错误实在是让人。。。不过看完感觉非常棒,使用c ++的模板元编程,去获得性能上的飞升。对程序员的启发很大呦。如果看不懂,至少其中的类型萃取,迭代器萃取什么的都有所了解,当阅读别的库的时候,压力不会那么的大。记得学习QT的时候,我发现他很多的容器提供的迭代器都是随机迭代器,我很困惑,于是去看了它的实现,感触良多,因而这本书非常值得去阅读。


   《effective STL》学习过STL的实现还不够,应该知道如何高效的使用它。这本书应该是最好的选择。其中的建议非常中肯。阅读的人应该低下头好好的品味其中的教诲。其中会解释为什么STL中list的size是那么设计的,其设计初衷是什么,有些很难理解的问题都能在其中找到答案,也帮助读者在进行泛型程序设计时拥有正确的泛型设计思维。

其中最难懂也最的怕就是等价和等于那部分。大概是在第三章关联容器中。能使用不代表会使用,当时深有体会。


《Exceptional c ++》herb sutter非常有名的作品。作者文风很有趣。凡是有大成者,对生活肯定热爱。这本书从字里行间就能品到作者生活哲学。文字幽默。大师的幽默通常都带有讽刺性。比如一个难缠的BUG被解决后,大师对设计方法的拷问,幽默,但却深刻。到这一本书开始其中便是深究c++这门语言的很多细微部分。比如类的设计与继承,编译防火墙,名字空间和接口规则等。我非常推荐读者阅读这本书,因为他能让你对c++的OOP编程有个更清楚的认识,类的依赖性并不取决于接口是否在类中定义。可谓脑洞大开。值得阅读。不过其中也有无用之处。比如auto_ptr,如今已经废弃的组件。不过对学习智能指针还是有帮助的。


《c++ concurrency in action》以前学习多线程都和特定平台绑定太严重,不过C++11的推出一举打破这个格局。如今使用c++编写多线程程序,已经告别代码不可移植时代。可惜的是这本书在国内没有中文版,阅读的人怕是要在自己英文水平上加把劲。网上可以下载到电子书。电子书免费。其中的内容自然非常充实。从mutex,要后面的线程通信,无锁编程,线程中断,线程池。讲解都深入浅出,用最简单的例子帮助读者掌握多线程技术,所以我非常建议学习多线程的人去阅读这本书。只不过其中也有一些小错误,不过无伤大雅。读者可以顺便考验自己能力。尽信书,不如无书。同样的道理


《算法导论》算法入门的圣经,麻省理工的教材。既然能成为麻省理工的教材自然有它的优势所在。该书常配以图,帮助读者理解。不过文风不是很幽默,一贯的严谨风格。逻辑清晰,用词准确,这也得益于本书的翻译。我看的时候已经出了第三版。后来者应该可以买到更高的版本。值得一提的是看着本书也是需要数学基础的。概率论,离散数学等等。阅读完这本书后最大的体会就是学会分析问题,如何有效的建模很重要,这本书应该能成为你的良师益友。


《汇编语言 王爽》这本是我看的唯一的国内教材。怎么说呢,内容简单,只是对于汇编最终要的内容-保护模式涉及不是很好,所以学习汇编的人应该用这本书入门,而不是提高。


《c程序设计语言》我老师常说既然读书,就应该读最好的。K&R的这本书称得上是最好。学习c最难缠的就是它的声明。不过这本书设计的很好,他直接罗列了编译器在解析声明的过程。读者阅读后应该尝试自己去编写分析过程。非常有趣.


《c专家编程》任何一名c程序员都应该阅读的书。这本书有很多非常有趣的例子。他大概每一节都会罗列一些非常有趣的趣闻,应该是挽回那些走神者的注意,哈哈。记得其中印象最深的就是它讲解微软是如何赢得市场的,看完之后不得不感叹历史的巧合。至于内容很深入,最深入的就是给你讲解一些关于指针的问题。有很多问题你现在应该知道了,比如cpu是如何从内存中取数据的。如果这些懂了,地址阻塞问题也就迎刃而解了。


《征服c指针》毒舌程序员为你解开指针的真实面纱。有很多事情都是不知道的,但是阅读玩这本书你就清晰了。这也给你很大的理由去击破一些谣言。比如直接用指针计算会比用下标运算快。今后,如果你再听到有人说这句话,你就有足够的勇气反驳他了。清醒吧。指针不是那么简单的,如果内存碎片问题让你非常头痛。那么去阅读这本书吧


《c++GUI QT4 编程》说实话看完这本书,我不光学习如何用c++进行GUI界面开发。更学会了如何让程序更模块化。其中编码风格非常严禁,如果想在编码上能够获得大师的启发,这本书不可多得。它更教会别人怎么使用编译防火墙降低编译的依赖度。不过既然涉及实际开发内容,其中必然有很多高级内容,如果你阅读完我上面推荐的书,看它没有压力的。学完差不多应该是一名会 混合编程的人了。如何用css让界面更加炫酷,使用javascript实现一些静态语言难以实现的功能。数据库链接,xml解析等等。不过可以感觉到这个库应该汲取了java很多的营养,很多特性和java非常像。非常用户友好。


《QT高级编程》也不怎么推荐去阅读,很多内容已经在上面这本书涉及了,其中讲解的多媒体库在QT最新的版本中已经移除到其他模块中了。


《操作系统 精髓与设计原理》 William Stallings计算机界全才的经典之作。这本书的文风不怎么活泼,偏向学术,所以从头到位都是用表格,图形什么的来解释操作系统的进程调度,内存调用,磁盘IO管理等内容。学习这本书非常有利于今后学习多线程。


《现代操作系统》比上面一本书有趣。同样讲解操作系统,不过还讲解了一些文件格式。对于今后学习文件解析很有帮助。大名顶顶的MINIX的作者。应该被誉为传世经典,留香后世。


《计算机组成原理与体系结构 性能设计》willam stallings的另外一本著作,配合上面一本书看的好处就是能够从硬件软件角度理解计算机。两书有很多插图都是一样的。所以非常值得搭配阅读。要知道学习硬件知识并不是为了超越那些学习电子的人。而是让你在编码中防止一些Pitfall。了解指令如何发射,以及cpu如何进行指令预取很重要。


《图解TCP/IP》这本书简直太赞了。内容很简单,能够帮助新手快速的入门。中间都是使用现实例子来讲解TCP/IP协议如何工作的,但是在系统讲解上面有点欠缺。不过的确是一本难得的好书


《TCP/IP 详解 卷一 协议》

《TCP/IP 详解 卷二 实现》

《TCP/IP 详解 卷三 TCP/HTTP NNTP UNIX域协议》

 学习TCP/IP的经典,该书是作者在病榻上完成的,据说还未写完第三卷便离世。因而阅读这本书的人应该抱着对伟人的尊敬去阅读。


《鸟哥的私房菜 基础学习篇》内容很简单,但是工作后就发现是精髓。不过作者用的版本太老了,读者应该尝试在新的Linux发行版上使用。


《c++面向对象多线程编程》书有点老了,很多方法都是废弃的。。。因而要与时俱进应该阅读我上面提及的书


《java 核心编程 卷一》非常赞的书。作者应该是写给c++程序员看的(个人观点),他从头到尾都是拿java和c++做对比。看完这本书应该要有很多的心得体会,至于是什么我也可以说出自己的观点,日后我会在该系列中提及


《javascript 权威指南》大名鼎鼎的犀牛书,该书非常之后,不过其中讲解的内容很简单。我给自己的任务就是大学至少学习一门动态语言,我觉得javascript是首选。孜孜不倦的读了一百多页然后写了一个链表,还是很有趣的一门语言。而且它现在用途也非常之广。。。


。。。。。。。。。。待续


这篇关于漫谈程序设计之--阅读的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1105200

相关文章

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟 开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚 第一站:海量资源,应有尽有 走进“智听

论文阅读笔记: Segment Anything

文章目录 Segment Anything摘要引言任务模型数据引擎数据集负责任的人工智能 Segment Anything Model图像编码器提示编码器mask解码器解决歧义损失和训练 Segment Anything 论文地址: https://arxiv.org/abs/2304.02643 代码地址:https://github.com/facebookresear

软件架构模式:5 分钟阅读

原文: https://orkhanscience.medium.com/software-architecture-patterns-5-mins-read-e9e3c8eb47d2 软件架构模式:5 分钟阅读 当有人潜入软件工程世界时,有一天他需要学习软件架构模式的基础知识。当我刚接触编码时,我不知道从哪里获得简要介绍现有架构模式的资源,这样它就不会太详细和混乱,而是非常抽象和易

C语言程序设计(数据类型、运算符与表达式)

一、C的数据类型 C语言提供的数据类型: 二、常量和变量 2.1常量和符号常量 在程序运行过程中,其值不能被改变的量称为常量。 常量区分为不同的类型: 程序中用#define(预处理器指令)命令行定义变量将代表常量,用一个标识符代表一个常量,称为符合常量。 2.2变量 变量代表内存中具有特定属性的一个存储单元,用来存放数据,在程序运行期间,这些值是可以 改变的。 变

C语言程序设计(选择结构程序设计)

一、关系运算符和关系表达式 1.1关系运算符及其优先次序 ①<(小于) ②<=(小于或等于) ③>(大于) ④>=(大于或等于 ) ⑤==(等于) ⑥!=(不等于) 说明: 前4个优先级相同,后2个优先级相同,关系运算符的优先级低于算术运算符,关系运算符的优先级高于赋值运算符 1.2关系表达式 用关系运算符将两个表达式(可以是算术表达式或关系表达式,逻辑表达式,赋值表达式,字符

漫谈设计模式 [12]:模板方法模式

引导性开场 菜鸟:老大,我最近在做一个项目,遇到了点麻烦。我们有很多相似的操作流程,但每个流程的细节又有些不同。我写了很多重复的代码,感觉很乱。你有啥好办法吗? 老鸟:嗯,听起来你遇到了典型的代码复用和维护问题。你有没有听说过“模板方法模式”? 菜鸟:模板方法模式?没听过。这是什么? 老鸟:简单来说,模板方法模式让你在一个方法中定义一个算法的骨架,而将一些步骤的实现延迟到子类中。这样,你可

【阅读文献】一个使用大语言模型的端到端语音概要

摘要 ssum框架(Speech Summarization)为了 从说话人的语音提出对应的文本二题出。 ssum面临的挑战: 控制长语音的输入捕捉 the intricate cross-mdoel mapping 在长语音输入和短文本之间。 ssum端到端模型框架 使用 Q-Former 作为 语音和文本的中介连接 ,并且使用LLMs去从语音特征正确地产生文本。 采取 multi-st

漫谈设计模式 [9]:外观模式

引导性开场 菜鸟:老鸟,我最近在做一个项目,感觉代码越来越复杂,我都快看不懂了。尤其是有好几个子系统,它们之间的调用关系让我头疼。 老鸟:复杂的代码确实让人头疼。你有没有考虑过使用设计模式来简化你的代码结构? 菜鸟:设计模式?我听说过一些,但不太了解。你觉得我应该用哪个模式呢? 老鸟:听起来你的问题可能适合用**外观模式(Facade Pattern)**来解决。我们可以一起探讨一下。

智能工厂程序设计 之1 智能工厂都本俱的方面(Facet,Aspect和Respect)即智能依赖的基底Substrate 之1

Q1、昨天分别给出了三个智能工厂的 “面face”(里面inter-face,外面outer-face和表面surface) 以及每个“面face” 各自使用的“方”(StringProcessor,CaseFilter和ModeAdapter)  。今天我们将继续说说三个智能工厂的“方面” 。在展开之前先看一下三个单词:面向facing,取向oriented,朝向toword。理解这三个词 和

漫谈设计模式 [6]:适配器模式

引导性开场 菜鸟:老鸟,我最近在项目中遇到一个问题,我们的系统需要集成一个新的第三方库,但这个库的接口和我们现有的代码完全不兼容。我该怎么办? 老鸟:这是个常见的问题,很多开发者都会遇到这种情况。你有没有听说过适配器模式? 菜鸟:适配器模式?没有,能详细说说吗? 老鸟:当然可以!这就是我们今天要讨论的主题。适配器模式是一个设计模式,可以帮助我们解决你现在遇到的问题。 渐进式介绍概念 老