C

《C Primer Plus》(第5版)中文版 买新版

C++

C++ Primer

本书适合C++新手,而不是编程新手看

当字典翻阅

在实际操作时把这本书作为手册,遇到有疑问的地方,或者不确定的地方,再仔细阅读。读这本书,比在网上胡乱搜索要好得多。书中的内容都是详细、准确无疑的,许多地方都有例子。书后有索引,可以根据名词找到对应的页数。

奉劝读此书的人一定要去读英文原版,因为翻译者是个极其不严谨的人!此书280页“IO库定义了一个与机器无关的iostate类型”,而原版是“The IO library defines a machine-dependent integral type”

一看翻译和审校的阵容就知道这书值得拥有有陈硕大佬

C Primer Plus

千万别买

《Essential C++》

如果觉得c++ primer太厚,可以读读作者写的这一本

适合老手复习语法

C++标准库(第2版)

快速的看完了, 觉得买的还是比较值得. 不过读过一遍以后基本就不会再翻了. 主要是 DASH 太好用了

就是字典。

分类很科学,讲的很细,有代码实例,唯一美中不足就是type_trait相关的东西一点都没讲,不知道为什么

终于更新了C++11标准的第二版了啊 对于标准库的各种用法、注意事项及其原因介绍详尽 美中不足的是allocator的介绍还是太少了 不过也是因为这本书只是从使用者的角度来讲的吧

字典式图书,层次初/中级,只适合用来查询,不推荐逐章阅读。

STL的设计思想(通过迭代器将数据结构和算法分离,获得通用性的程序组件)是此书的精华。。其余的部分诸如复数complex,valarray,bitset,strings,国际化等等,了解一下即可,没有必要深究。还有令人纠结的auto_ptr,本身就是一个设计失败的产物,当一个组件给你提供了3条功能却告诉你为了使用这3条功能你需要遵守10大戒律的时候,这个组件本身的设计没准就是有问题的。很不幸,在我看来,auto_ptr就是这样的组件,使用它会带上很大的心智负担(C++的很多特性都是如此,看上去很强大很花哨,但深究起来发展这里面的陷阱很多,会给使用者带来很大的心智负担)。

去除以上两部分,此书最有价值的东西就在300页左右,也就是第5-10章的内容,细说起来,就是STL,容器、算法、迭代器、仿函数。

我的数学基础并不能参透STL这些背后的数学思想,不过仅有的一些lisp和scheme的知识,倒让我在STL中的某些组件里面,找到了一些似曾相识的东西。

比如像functor(仿函数),我觉得仿函数的本质在于将函数的地位提升到和C++ class同样的一等公民的位置。在scheme中,函数(操作)和数据一样,都可以作为一等公民,可以当做参数传递、返回。而在C++中,数据才是一等公民,C++ class的各种机制(构造函数、析构函数、运算符重载等),无非也就是让用户自定义的class拥有和built-in的类型一样的使用接口和特性(比如像std::complex和int)。但函数本身在C++中并不能通过很轻易的方式成为一等公民。要想像普通数据一样传递函数,需要用到函数指针。而functor的存在,就是为了通过重载operator(),来实现传递“函数(操作)”的目的。至于优点和好处,此书上已经说的很清楚了。

再比如像transform()、for_each()、accumulate()算法,如果你读过SICP前两章,你就会发现这其实和lisp/scheme里面的map/reduce函数有异曲同工之妙。MapReduce?没错,就是那个MapReduce,google的那个MapReduce。

语言是会影响人的思维的。所以我并不赞同“语言和工具不重要”的这种论调,没错,语言是相通的,C++可以做到的事情,汇编一样可以,本质上大家都是Turing-Complete的。但是Turing-Complete并不意味着相同的表现形式和使用难度,多学几种语言,多了解几种思想,不盲目崇拜,跳出语言的框架去学习语言,是很重要的。

扯远了,回头说说阅读此书的基础和后续吧。首先需要对C++有比较好的了解,如果连const、reference都搞不清楚,还是不要读此书了。其次最好对模板技术有一些了解,最好能看些”C++ Template: The Complete Guide”,了解下type traits这类技术。

读完此书后,找个机会动手实现下STL的各种container和一些基础算法,Mark A.Weiss有一本老书”Data Structures and Problem Solving Using C++”,包含了很多STL的实现代码和STL的应用,很不错,可惜现在很难搞到。有机会再去读读侯先生的”STL源码剖析”。当然,更高阶的,什么c++ template metaprogramming,我就不继续了。

“STL的核心设计思想是数据结构和算法的分离,这个从某种意义上来讲,是和OOP的思想背道而驰的。所以在STL中只用到了Object-based的东西,却没有用到Object-oriented,STL没有用到继承。STL之父Alexander Stepanov也并不是100%赞同OOP的” 这点上,不是很赞同诶。 1) effective c++ 专门有两三章讲分离是为了更好的OOP。OOP有三个基本点:encapsulation(in which case the state is kept separate。在 stl 里面,iterator,traits不就是体现了这一点么?);2)inheritance(stl源码有大量的继承);3)polymorphism; 2)我觉得有挺多设计思想的,把说烂了的OOP用得相当有意思,粒度把握得很值得思考; 3)STL 宏真是一大亮点。

私以为不该从C++入手去探求其思想,而应该从更正常的语言那里了解了这些思想再回头看C++如何带着镣铐跳舞。从实际应用的角度权衡它有时可以是最佳选择,但想从这里入手学习思想什么的几乎总是事倍功半吧。 functor不过是没有lambda时的难用的替代品罢了,起个高端的名字也不能把缺陷变成feature。C++对map、reduce这样的高阶函数本来支持有限,在lambda引入前更是半残;想了解这类思想的话从C#的LINQ入手都更合适。至于迭代器(和更一般情况下泛型)所带来的可扩展性,如果把模板简化地看做编译期的鸭子类型的话,这不过是面向接口编程的结果,从动态语言就能找到更友好的例子,比如Ruby的Mixin。又比如模板元的图灵完备性来源于其递归结构(和对整数操作的支持),如果想了解怎么在没有循环结构和副作用的情况下实现各种功能,去看看正常点的函数式语言就好了,何必把生命浪费在和c++编译器的斗争上。当然要是C++有完善一点的宏支持,或者它自己本身完善一些,谁会这么蛋疼。

一周不到,你看清楚了吗?就在这儿大放厥词

一边刷Leetcode,一边学习STL,效率很高。

666,auto_ptr在 c++11里面被另外三个智能指针给取代了,你知道么,貌似你写这篇文章的时候c++11已经出来了吧

《C++标准程序库》读后感

C#

赵三本:

- CLR via C#
- C# in Depth
- Framework Design Guidelines

赵三本中,除了《CLR via C#》之外,其他书都可以通过经验总结,或者其他网络信息中学到,唯独《CLR via C#》不可以,因为太底层了。所以必须看,当然,看完其他两本更好,缩短你的学习时间。

另外,个人还推荐《C#与F#编程实践》,主要负责教你.net下如何使用函数式编程,为你打开新世界的门。

CLR via C#

![](https://cdn.jsdelivr.net/gh/c-parrot/source/img/blog/名词解释/CLR via C#.png)

c#是表,clr才是里,要真正搞懂你写的都是啥推荐clr via c#,配合IL SPY或ILDASM或Reflactor对照着看。看看await lock using yield的本体到底是个啥。

深入理解C#(第3版)

部分地方可以读一读,其他的都不怎么样(我看异步编程讲得很差,不如直接读《CLR via C#》),很多地方都没有讲到重点,加上有的地方废话多,怎么让人思维连续,如果你明白其中的一个关键点,其他的就好理解,但是作者偏偏略过了,或者仅仅是点到。整体不如直接读《CLR via C#》,对于Linq 是很好的入门,还有里面讲到协变逆变,迭代器,这部分还是可以的。

.NET设计规范

C# 8.0 in a Nutshell

![](https://cdn.jsdelivr.net/gh/c-parrot/source/img/blog/名词解释/C# 8.0 in a Nutshell.png)

本书的定位在字典和共嗯快速预览之间的工具书。可以帮有一定基础的人快速了解C#某个功能点的概念,但是从了解转到生产环境,又不够深入。

对于新手深入学习这门语言很不错,可以在clr via c#之前读,没有那么底层。

不适合入门学习,适合后期的提示。作为工具书翻阅还行,作为学习资料就不是那么好用了。

正则表达式

精通正则表达式

正则表达式必知必会

Redis

Redis实战

实际上像 redis in action和 redis设计与实现 这样的书是很好读的,好理解也好记。看完一遍把书合上,过一阵再对着目录想,记得不清的再看就好。总之,针对特定问题,提出解决方案的书,更容易读些。

本书介绍的很多技巧是基于把redis当成数据落地的db来用,据我所知很少有人会这么干,也许是我孤陋寡闻吧。对我而言,redis首先是缓存,其次是局部业务性能优化的备用方案。将redis当成纯db来用太过于极端了。不过介绍很多技巧也是大开眼界。

把redis当数据库用,就问你怕不怕,我反正是怕的,当数据库用太反直觉了,编写维护都很费事,容易出错,生产使用风险太大。说是redis实战,无需先验知识,但是初学者看这本书肯定很吃力,python的一些高级语法加上简单晦涩的描述,后半部分缺乏图表及示例,对于读者理解会造成很大的困惑,这本书4星其实也有点多,不太推荐,大家可以找更好的关于redis的书籍阅读

本书主要话题是讲述以Redis为底层存储,如何构建实现方案来支撑不同的应用场景。学习这些案例可以扩展思路,学习使用Redis的能力来搭建出功能强大的小服务。

一本实用的Redis入门书籍。可以考虑入手一本,拓宽Redis的应用思维。

Redis设计与实现

本书偏向机制的实现原理,尤其是在底层数据结构,RDB和AOF持久化,哨兵和切片集群上。

对于没时间读源码的同学理解redis的机制有很大的帮助,要了解Redis内部原理,此书必备。读源码类书籍,最重要的是要看到作者的想法而不是源码本身,否则,直接读源码就好了,这本还不错

本书针对Redis3.0,出版较早, 缺少最新的HyperLogLog Geo 淘汰算法pipeline介绍,但是很多原理依然使用。

建议看下序言 阅读本书指南

第一部分 必须 第二部分 可以 不用那么深究 第三部分 可选 第四部分的话 事务 发布于订阅 排序 可以看看

Redis开发与运维

除了集群部分都很好,集群部分redis cluster和那个cache cloud真的不行,还是要看codis和twitter的那个

论谈操作使用还是讲解实现原理都结合实际场景,很接地气。写作语言也平实清楚,堪称国内技术书的模范

实战出真经,有场景支撑的教材。

大概是目前为止看到最好的 Redis 综合内容的书:比 redis in action 更接地气(适合国内的使用场景)

这本书更侧重于实践,但内容深入浅出,非常适合与《Redis设计与实现》一起食用。

程序员的自我修养

代码大全(第2版)

所以我想说说这本书读的时机。

入行1年,至少完整的跟过一两个商业项目的程序员应该是初读这本书的时机。然后在自己开始思考代码结构,设计,脱离代码工人层次的时候可以考虑去读第二遍。

纸上得来终觉浅, 绝知此事要躬行。

每一章后面都有这一章的要点,略读这些要点中我们就可以了解到我们已经掌握了哪些知识,哪些知识还没有掌握,阅读,重读时就有重点了。

https://book.douban.com/review/1075004/

Code Complete大概就是完成了相当的测试后,发布以前,认为程序的代码不应该再被修改,于是Code Complete。

当你失恋过之后,你便理解了所有情歌的意义;当你做过一个不甚理想的框架与设计之后,你便明白了这本书的价值。

其实看开源社区的优秀代码才是学习软件构建的和架构的手段..

构建的核心就是管理复杂度,要把主要精力集中于构建活动,采用自上而下的思考,自下而上的执行,这样才能提高工作效率。

前面一小半有点太过基础,适合初学者;中间关于测试,重构,调试,调优的几章把重点都点到了,但是还是需要去看相关的深入的书;最后几张代码风格和程序员性格什么的有点凑字数占篇幅的嫌疑……书里有一些箴言和金句,但是必须自己在实际工作中有体会才能共鸣,不可能出现“本来啥都不懂,看完那些指导就一下子明白了”。

前两百页是工程学的基础知识、excel其实就是个简便的数据库兼编程工具,在当前计算机运算能力过剩的情况下,这个软件用处非常大,可以简化大多数办公室的程序化劳动,提升你临时解决批量问题的能力。你用excel能随意搭建逻辑链,把两个不同领域的相关问题结合到一起处理的时候-

那个表驱动法一定要看…事这本书里印象最深的一处

先看Kernighan的程序设计实践再看此书效果更佳

还有人提到《人月神话》,我想再加上《人件》、《你的灯亮着吗》,这四本书籍对我影响至深。

老实说,《代码》虽然成书晚,讲的具体细微,其质量并不如《人月》。很多观点也值得商榷。

比如说,《代码》虽然列举,但是贬低把软件开发视为 organic grow 的过程。反而把建筑的比喻作为讨论的基础。我并不同意。为什么我不喜欢用建筑比喻软件 。软件的构建是团队知识的固化过程,而建筑并没有「知识固化」这个过程。

而且,用建筑来比喻软件,往往是搞错了软件的设计和生产。曾经有很长一段时间,人们认为软件的高层设计是「设计」,而 coding 是「生产」软件。错!Coding 就是 design —— Code as Design: Three Essays by Jack W. Reeves。所以,软件构建的大部分时间,相当于建筑的蓝图绘制阶段。当你用建筑的蓝图绘制来比喻软件的 planning,本身就是会错了意。软件的 planning 相当于建筑里开始绘制蓝图之前的非正式构思。

另外,为了 Unit Test 引入的各种 trick,我也不能认同。关于单元测试(续)

我现在也倾向于用集成测试例代替单元测试了

开始编程的时候,读的不知所云;

敲了一年代码之后,读的如饮甘泉,醍醐灌顶,如获独孤九剑一般;

敲了五年代码之后,读的吹毛求疵,鸡蛋里面挑骨头说,这里过时了,这里不合理……

现在敲了十年代码了,再次去翻,不觉叹息,方知经典永不褪色。

说的太好了,入行1年,一直放在手边,写代码,随时翻阅;入行五年,此书给我垫了显示器,觉得里面道理我都懂;入行十多年,此书又给我擦的干干净净,放在手边,时时给后辈推荐。最近买了本英文的,又对作者敬意加深…

也让你从模块、组件、架构等角度理解你的代码,它真正提醒我们,世界是面向对象的,我们也可以面向对象,冗余不代表都是坏的,而完美也不代表就真的完美。

当然做了这么多年开发,最深的体会还是软件是为人所用的,创造价值甚至比它完不完美还要重要,傻子才一味追求工匠精神,天才都是在让创造的事物实现最大价值的情况下一步步完善它,

代码大全教会你如何变成一个计算机科学家式的好程序猿或工程狮,而创新却非每个人都能有,唯有天才引领我们的时代。
上士闻道,勤而行之,中士闻道,若存若亡,下士闻道则笑之,不笑不足以为道。

印象比较深的是表驱动法这块,记得在另外一本书中看到过相似的说法,聪明的数据结构搭配愚蠢的代码远比反过来要好得多。另外就是关于防御式编程的方式往往会让代码过于冗余,有些时候反而应该避免防御式的思想

这本书和人月神话类似,不过现在肯定也可以说是过时了。两本书按照现在的眼光看来都没有能够真正理解现代软件工程的关键,非要读这方面的书应该是敏捷系的东西更符合当前实际。具体为何这本书细节过时我就不想展开说了,比较简单的例子是现在讨论匈牙利命名约定是很扯淡的事情,设计模式这些interface hack汇总在任何能够把函数作为数据的语言里都没有存在必要了。

The Pragmatic Programmer****吧,从这本看起应该还是不错的

不要用战术上的勤奋掩盖战略上的懒惰,很多时候,受限于开发经验,对于项目,直接上手完成,缺少对代码结构的构思。当需要维护时,付出巨大时间成本去修改。这其实是一种逃避,只顾着编写,却忽略了更为重要的对代码设计的思考。

《代码大全》和《代码整洁之道》有什么区别?更应该优先读哪个?

如果是学生或刚工作的话建议先读《代码整洁之道》,再读《代码大全2》。

《**代码整洁之道**》工作后接触的项目大而且杂和乱,感觉代码不应该是这个样子的,遂去图书馆,看到了这本书,正是我想要的。 *让我明白了代码应该写成什么样

《**修改代码的艺术》问题同上,前者让我明白了代码应该写成什么样,后者让我知道了面对混乱的代码,应该如何去做**;

1、《重构 : 改善既有代码的设计》Java语言版,看过“代码整洁之道”和“修改代码的艺术”,读完这本书感觉一般,不知道先读这本书会不会感觉不一样,豆瓣评价很高

2、《阿里巴巴Java开发手册》/《Google Java Style》、SonarQuber(代码质量检测工具)、IDE代码质量检测插件SonarLint、SpotBugs、**阿里P3C**

,前面几章有些抽象,从第六章开始比较具体的介绍编码时应该养成的好的习惯。

精华是6-13章,差不多就是第二第三部分,真正的精华,则是特别透彻的解析了模块化编程的思想,以及该如何去做。第9章的用伪代码去编写过程,实在是太精彩了。能够让你不断思考细化你该如何去组织你的代码结构。梳理编程思路。

总结一下,其实让我记忆深刻的主要是

首先,软件构建的核心就是管理复杂度。虽然书中有不少的篇幅来讨论变量、语句等等这些编程的基本要素,还包括代码改善和调整的策略和方法,可谓不无巨细。不过深入理解一下,这些内容都是围绕着上面这句话展开的,也就是软件构建的核心就是管理复杂度。而这一目标产生的根源就在于人脑智力同软件项目复杂程度之间的矛盾。书中常常会提到几个数字,差不多在6、7左右变化,因为这是人脑智力管理的极限,多了,就管不过来了,呵呵。所以,书中会有一些结论性的建议。比如构建可工作的类,内部成员应该控制在7(+-)2,也就是5个或者9个左右,如果都是Native Type的话,9个成员变量能管的过来,如果都是对象成员的话,5个也能保证你的头脑始终清晰。还有,比如程序中的嵌套结构,类似于If,循环啊什么的,要保持嵌套层次不能多于6层,而据实际调查,一般3层以上的嵌套就会使程序员非常的困惑和抓狂了;还有比如子程序的参数个数尽量保持在7个以下,要不然也记不住,别说7个了,没有现代IDE的帮助,我连4个以上的参数我都记不住,呵呵。

我想满足这些指标并不是很难的事情,而这些东西也给出了对于代码进行改善时候可以依据的标准。不过想要管理这种复杂度,从作者的书中总结一下,具体可能是以下几点:第一,分割,既然大脑管不过来,那就把系统进行分割,也就是从设计角度上抽象出若干部分,每次让大脑focus在一个部分上,这点我是有深刻体会,虽然我现在完全自己做的东西超不过15000行,不过也不能妄想自己把所有的部分都记住,如果抽象的不好的话,我就特别头疼,每天在代码中翻来翻去的,效率非常低;第二,清晰理解,其实这点跟上面一点是差不多的,只有清晰理解了抽象的含义,才能做好每个封装每个接口,这样在关注别的抽象部分的时候,其他部分需要记住和管理的更清晰也更简洁,因为不需要关注其他部分是如何实现的,只要按照接口和抽象来做就好了;第三,清晰表达,在程序中应该清晰表达逻辑和抽象含义,也就是增加程序的可读性,唉,这点太重要了,书上也围绕着这个不断的论述,上面提到那些事无巨细的部分反复的说着这一点,甚至连命名都有专门的一章来讨论。

最后,本书对设计模式,重构以及软件工程方面也有所涉猎,但是只可当作提纲,概要。对这些东西,要读的书就太多了。比如设计模式可以去读深入浅出设计模式和Gof的那本,重构显然应该去看福勒的重构。

程序员的自我修养 链接、装载与库

为了能够读懂这本书,需要先掌握以下内容:
\1. CPU体系结构
\2. 计算机体系结构
\3. 汇编语言
\4. 编译原理
\5. 操作系统
\6. C/C++语言
\7. 编译器是如何产生处理代码的(建议阅读《Delphi源码分析》)

如果你已经学习或接触了C,汇编,计算机结构,但还是没办法把三者的关系理的很顺很清或者对应起来
那么深入研读一下这本书绝对是对你的一大帮助

这本书一步步的剖析了一个程序的前世今生,从代码的编译,到链接,到运行时虚拟空间物理空间的映射,到内存的分配,无不一一展开,还原一个程序本来的面目。

就像此书中引用的一句无法考证其作者的话说的那样:任何计算机的问题都可以通过增加一个层来解决。

随着各种问题的解决,计算机的层增加的越来越多,

但是这本书隐约给了我们一个回答,总有些东西是不会变的,

好吧,从内容上,这本书一定值得你一翻,就算你不通读,把第二、第三部分仔细读读一定会很有收获,如果你对系统的机理感兴趣,特别是,如果你是linux C/C++程序员,我如是推荐。

代码整洁之道:程序员的职业素养

值得一看,主要还是软件工程的一套,但不乏点睛之笔,适合粗读。但是书名翻译太强行,其实跟代码整洁没啥关系,主要讲的是如果成为一个专业负责的程序员。

不认同书中的大多数观点,这本书显得过时了。猜测作者是出身于传统软件行业的老程序员?对于员工的要求过于苛刻,看问题的角度像是老板而不是程序员。关于测试,盲目追求覆盖率甚至为了测试改变程序应有的结构,我觉得是不可接受的。文中很多观点浮于表面,比如要求代码要经常改,我同意,但本质上应该保持简洁的同时应变复杂的需求。只有简单的东西才是可以被依赖的。总之,这本书一行代码都没,感觉在瞎扯。

书中的内容都很棒,对于一个程序员的要求也算是正常要求,但是译者在某些用词上简直没眼看,如果不是机翻那就是作者缺乏一些项目管理领域和个人时间管理领域的知识,甚至让我对其专业能力产生了怀疑。 比如将Affinity Estimation翻译成关联预估,这是非常基础的项目管理用词。再比如4.2流态区是什么东西?从下面的内容来看应该是“心流”,这也是常见的时间管理用词。 还有那个“1024字的磁鼓式内存”已经让我彻底怀疑作者的专业性了,先不说这里到底是byte还是bit,作为译者真的有好好读这个翻译的结果么?

提供了与他人合作的时很多问题的解决方案,专业的素养,专业的沟通,专业的估计,专业的抗压也即说“不”。

作者以自己的经历讲述程序员这个职业应该有的素养:tdd 重构 估算 。

《重构:改善既有代码的设计》

重构,一言以蔽之,就是在不改变外部行为的前提下,有条不紊地改善代码。多年前,正是本书原版的出版,使重构终于从编程高手们的小圈子走出,成为众多普通程序员日常开发工作中不可或缺的一部分。本书也因此成为与《设计模式》齐名的经典著作,

《设计模式》

7.《编译原理》

《编译原理》全面、深入地探讨了编译器设计方面的重要主题,包括词法分析、语法分析、语法制导定义和语法制导翻译、运行时刻环境、目标代码生成、代码优化技术、并行性检测以及过程间分析技术,并在相关章节中给出大量的实例。与上一版相比,《编译原理》进行了全面修订,涵盖了编译器开发方面最新进展。每章中都提供了大量的实例及参考文献。

9.《修改代码的艺术》

我们都知道,即使是最训练有素的开发团队,也不能保证始终编写出清晰高效的代码。如果不积极地修改、挽救,随着时间流逝,所有软件都会不可避免地渐渐变得复杂、难以理解,最终腐化、变质。

本书是继《重构》和《重构与模式》之后探讨修改代码技术的又一里程碑式的著作,而且从涵盖面和深度上都超过了前两部经典。书中不仅讲述面向对象语言(Java、C#和C++)代码,也有专章讨论C这样的过程式语言。作者将理解、测试和修改代码的原理、技术和最新工具(自动化重构工具、单元测试框架、仿对象、集成测试框架等),与解依赖技术和大量开发和设计优秀代码的原则、最佳实践相结合,许多内容非常深入,而且常常发前人所未发。书中处处体现出作者独到的洞察力,以及多年开发和指导软件项目所积累的丰富经验和深厚功力。通过这部集大成之作,你不仅能掌握最顶尖的修改代码技术,还可以大大提高对代码和软件开发的领悟力。

0.《Patterns ofEnterprise Application Architecture / 企业应用架构模式》

《企业应用架构模式》作者是当今面向对象软件开发的权威,他在一组专家级合作者的帮助下,将40多种经常出现的解决方案转化成模式,最终写成这本能够应用于任何一种企业应用平台的、关于解决方案的、不可或缺的手册。《企业应用架构模式》获得了2003年度美国软件开发杂志图书类的生产效率奖和读者选择奖。《企业应用架构模式》分为两大部分。第一部分是关于如何开发企业应用的简单介绍。第二部分是《企业应用架构模式》的主体,是关于模式的详细参考手册,每个模式都给出使用方法和实现信息,并配以详细的Java代码或C#代码示例。此外,整《企业应用架构模式》中还用了大量UML图来进一步阐明有关概念。

《企业应用架构模式》是为致力于设计和构建企业应用的软件架构师、设计人员和编程人员而写的,同时也可作为高等院校计算机专业及软件学院相关课程的参考教材。

\

数据结构

剑指offer

书中的代码太差了,还是去看力扣查对应的题解的好。题型很多,扫盲必备

算法导论CLRS

翻译一直都是问题 = = 还是看英文原版的好.本书的翻译问题主要出现在殷建平负责的1~3章了,很多部分是机翻的,是的,机翻。

需要较强的数学基础与数学思路, 不是非常适合工程研发人员学习. 尤其对于某些比较复杂的结构, 如红黑树、B树等, 展开解释的太少从而过于生涩, 需要额外的学习资料

比如红黑树,我看其他的资料完全无法理解。但是看了算法导论第13章,配合习题食用,恍然大悟,讲解的太透彻了!

个人还是推荐通过网课加看书的形式来学习算法。

算法

这本应该算是最简单的算法书了,

算法设计手册

这是一本中级算法书,之前没有编程基础看此书很可能会觉得没讲明白。 特点正如标题所示是手册:简短的语言总结和比较了种种算法与数据结构。无怪Steve Yegge推荐给程序员面试前复习算法用。学习算法不建议用这本,而应该选择更详细全面的CLRS或者Kleinberg&Tardos