漫谈程序设计之--阅读

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



搞技术的人其实是很很幸苦的,因为光会编码不行,还得懂得设计思维,以及很多底层的知识。阅读是最好的营养品。所以我会把自己阅读过的书罗列起来,让新来者能够从中获取最适合自己的信息。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是首选。孜孜不倦的读了一百多页然后写了一个链表,还是很有趣的一门语言。而且它现在用途也非常之广。。。


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


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值