史上最全程序员书单
之前也给大家推荐过书单,但是都比较零散,有的是在群里,有的时候是在微博里,有的是在公众号里,都没有过统一的做一个书单,这次就为大家整理下所有的书单统计到这里(因为图片太多,容我一点点加图片~~),方便大家收藏
身为一个程序员,不打代码肯定不行,不看书更是不利于自己的成长,一个优秀的程序员的成功必经之路肯定是要打代码,看书,博客,交流,不分先后,这些步骤都是要有的。
所以一个优秀的程序员必须要有两种能力:
-
良好的程序设计能力:
掌握常用的数据结构和算法
掌握基本的计算机方面的核心知识:操作系统,计算机网络,编译原理等等
至少熟悉两门编程语言
-
专业的软件开发素养:
有良好的编程实践,能够按照要求写出代码
按照客户需求,按照交付客户所需要的软件产品
有一定的沟通能力,和产品经理做好沟通,做好团队协作
有一定的自学能力,自主学习一门语言的能力
这些基本都要源于书本或者一些资料,带你入门或者是深入研究。项目的话可能自己弄无从下手,坑太多,项目代码不开源,推荐一个全网最好的大牛带你做项目的视频课程:http://www.nowcoder.com/activity/project-courses(常按复制)
那么这篇文章就为大家总结下针对上面这些必备知识推荐的好书。
数据结构和算法
基本的算法和数据结构都是必要的,千万不要存在侥幸心理,除非说有的人是天才,不用学习太多,轻松学习两三个月就轻松拿下 BAT的offer,如果是正常的学习,那么千万不要存在什么侥幸心理,找工作是一个双向选择的过程,看到群里的小伙伴们有的人就会问是什么导致了竞争压力如此大呢,我当时说的是海投是一方面原因,更重要的原因是因为优秀的人真的太多,有的人可能觉得我已经很好了啊,我有着xxx的实习经历,有着xxx奖项,但是有没有想过比你还优秀的人还有很多呢~而且真的是非常多,主要是牛妹每天处理后台的时候就真的发现,小伙伴们都太厉害了!我也想到了曾经去面试腾讯的时候,面试官说你们现在的小孩都太厉害了。
数据结构和算法推荐书单:
推荐课程
直通BAT算法精品课
数据结构和算法书:
数据结构
是为“数据结构”课程编写的教材,也可作为学习数据结构及其算法的C程序设计的参考教材。
适合人群:初学数据结构并熟悉c语言者
推荐指数:★★★★
数据结构与算法分析
讨论数据结构和算法分析。数据结构主要研究组织大量数据的方法,而算法分析则是对算法运行时间的评估。本书也有Java版本的,可以根据自己的需求来读
本书可作为高级数据结构课程或研究生一年级算法分析课程的教材,使用本书需具有一些中级程序设计知识,还需要离散数学的一些背景知识。
适合人群:想了解数据结构和算法的人
推荐指数:★★★★★
大话数据结构
本书以一个计算机教师教学为场景,讲解数据结构和相关算法的知识。通篇以一种趣味方式来叙述,大量引用了各种各样的生活知识来类比,并充分运用图形语言来体现抽象内容,对数据结构所涉及到的一些经典算法做到逐行分析、多算法比较。与市场上的同类数据结构图书相比,本书内容趣味易读,算法讲解细致深刻,是一本非常适合自学的读物。
适合人群:数据结构初学者
推荐指数:★★★★★
算法
全面讲述算法和数据结构的必备知识,涵盖所有程序员必须掌握的50种算法,适合做入门教材
适合人群:常用算法入门,适合入门的所有人
推荐指数:★★★★
编程珠玑
计算机科学方面的经典名著。书的内容围绕程序设计人员面对的一系列实际问题展开。引导读者理解这些问题并学会解决方法,而这些正是程序员实际编程生涯中至关重要的。本书的特色是通过一些精心设计的有趣而又颇具指导意义的程序,对实用程序设计技巧及基本设计原则进行了透彻而睿智的描述,为复杂的编程问题提供了清晰而完备的解决思路。对各个层次的程序员都具有很高的阅读价值。
适合人群:所有程序员
推荐指数:★★★★★
算法导论
将严谨性和全面性融为一体,深入讨论各类算法,并着力使这些算法的设计和分析能为各个层次的读者接受。全书各章自成体系,可以作为独立的学习单元;算法以英语和伪代码的形式描述,具备初步程序设计经验的人就能看懂;说明和解释力求浅显易懂,不失深度和数学严谨性。
选材经典、内容丰富、结构合理、逻辑清晰,对本科生的数据结构课程和研究生的算法课程都是非常实用的教材,在IT专业人员的职业生涯中,《算法导论(原书第3版)/计算机科学丛书》也是一本案头必备的参考书或工程实践手册。
适合人群:想深入研究算法的程序员
推荐指数:★★★★★
计算机程序设计艺术
《计算机程序设计艺术》系列是公认的计算机科学领域经典之作,深入阐述了程序设计理论,对计算机领域的发展有着极为深远的影响。本书是该系列的第1卷,讲解基本算法,其中包含了其他各卷都需用到的基本内容。本卷从基本概念开始,然后讲述信息结构,并辅以大量的习题及答案。其他卷可以自行根据需要查看。
适合人群:学习基本算法,初学者
推荐指数:★★★★
从事研究的人惊艳于其精美优雅的分析,而普通程序员则一直在卓有成效地利用书中提供的各种方案解决日常问题。
计算机算法设计与分析
是普通高等教育“十一五”国家级规划教材和国家精品课程教材。全书以算法设计策略为知识单元,系统介绍计算机算法的设计方法与分析技巧。
适合人群:算法学习者
推荐指数:★★★★
算法之美
本书以现代计算机常用的十八种数据结构为线索,结合C++中的STL编程实践,详细介绍了四大算法设计思想(贪心法、动态规划、分治法、回溯法)、二十大经典问题和四十二个重要算法。具体涉及的数本书围绕算法与数据结构这个话题,循序渐进、深入浅出地介绍了现代计算机技术中常用的40余个经典算法,以及回溯法、分治法、贪婪法和动态规划等算法设计思想。在此过程中,本书也系统地讲解了链表(包括单向链表、单向循环链表和双向循环链表)、栈、队列(包括普通队列和优先级队列)、树
(包括二叉树、哈夫曼树、堆、红黑树、AVL树和字典树)、图、集合(包括不相交集)与字典等常用数据结构。同时,通过对22个经典问题(包括约瑟夫环问题、汉诺塔问题、八皇后问题和骑士周游问题等)的讲解,逐步揭开隐匿在数据结构背后的算法原理,力图帮助读者夯实知识储备,激活思维技巧,并最终冲破阻碍编程能力提升的重重藩篱。
适合人群:研究算法者
推荐指数:★★★★★
数据结构、算法与应用
它完整地包含了基本数据结构的内容,是CS2课程的理想用书。《数据结构、算法与应用——C++语言描述》是享有盛誉的数据结构教科书的第2版。它完整地包含了基本数据结构的内容,是CS2课程的理想用书。作者SartajSahni通过循循善诱的讲解、直观具体的讨论和基于现实的应用,让读者轻松、愉快地学习。新版书着重利用标准模板库(STL),把书中开发的数据结构和算法与相应的STL实现方法相互关联。本书还增加了很多新的实例和练习题。
书中的应用实例是它的特色。Sahni博士为每一个数据结构和算法都提供了若干个应用实例,涉及排序、压缩编码和图像处理等多个方面。这些实例把概念和应用结合在一起,使理论与实践统一,从而让概念容易理解,使学生增加学习动力和兴趣。
《计算机科学丛书·数据结构、算法与应用:C++语言描述(原书第2版)》采用的实用教学方法,不仅充实了理论概念,而且大量的习题让学生有了实践机会(书中有800多道练习题,包括理解题和简单的编程题和工程设计题)。除此之外,本书的配套网站上包含书中的所有程序、示例数据、运行结果、部分练习的解答和带有结果的示例测试。
适合人群:数据结构和算法的研究者
推荐指数:★★★★★
推荐视频
直通BAT算法精品课
程序员找工作必备——必须掌握的算法面试技巧精讲课,适合所有技术求职人员,尤其是算法、数据结构较为薄弱的同学。课程精选十二章算法常考知识点,每章均配套近年名企考题练习,知识点分门别类,讲解深入浅出,使学习更系统、理解更容易、掌握更牢固。
适合人群:算法初学者和准备面试的人
推荐指数:★★★★★
剑指offer
系统整理基础知识、代码质量、解题思路、优化效率和综合能力这5个面试要点。全书分为8章,主要包括面试流程:讨论面试每一环节需要注意的问题;面试需要的基础知识:从编程语言、数据结构及算法三方面总结程序员面试知识点;高质量代码:讨论影响代码质量的3个要素(规范性、完整性和鲁棒性),强调高质量代码除完成基本功能外,还能考虑特殊情况并对非法输入进行合理处理;解题思路:总结编程面试中解决难题的有效思考模式,如在面试中遇到复杂难题,应聘者可利用画图、举例和分解这3种方法将其化繁为简,先形成清晰思路再动手编程;优化时间和空间效率:读者将学会优化时间效率及空间换时间的常用算法,从而在面试中找到解;面试必备能力:总结应聘者如何充分表现学习和沟通能力,并通过具体面试题讨论如何培养知识迁移、抽象建模和发散思维能力;综合面试案例:总结哪些面试举动是不良行为,而哪些表现又是面试官所期待的行为;英文版面试题增补,优选久经欧美知名企业面试考验的经典题目,帮助国内读者开阔视野、增补技能。
牛客网上面有针对这本书的在线练习,实践远是除了书本以外最重要的东西。http://www.nowcoder.com/ta/coding-interviews?page=1(长按复可去在线练习哦)
适合人群:即将走向工作岗位的大学生和计算机专业爱好者或者程序员的参考书
推荐指数:★★★★★
程序员代码面试指南
这是一本程序员面试宝典!书中对IT名企代码面试各类题目的*优解进行了总结,并提供了相关代码实现。针对当前程序员面试缺乏权WEI题目汇总这一痛点,本书选取将近200道真实出现过的经典代码面试题,帮助广大程序员的面试准备做到万无一失。“刷”完本书后,你就是“题王”!本书采用题目+解答的方式组织内容,并把面试题类型相近或者解法相近的题目尽量放在一起,读者在学习本书时很容易看出面试题解法之间的联系,使知识的学习避免碎片化。书中将所有的面试题从难到易依次分为“将、校、尉、士”四个档次,方便读者有针对性地选择“刷”题。本书所收录的所有面试题都给出了*优解讲解和代码实现,并且提供了一些普通解法和*优解法的运行时间对比,让读者真切地感受到*优解的魅力!本书中的题目全面且经典,更重要的是,书中收录了大量定制题目和*优解分析,这些内容源自笔者多年来“死磕自己”的深入思考。
适合人群:想近名企的大学生和工作人员的参考书
推荐指数:★★★★★
程序员面试金典
《程序员面试金典》作者Gayle Laakmann McDowell是著名的软件从业者,曾担任谷歌资深面试官和招聘***会成员,深谙世界科技公司的面试之道,与数百名求职者有过“交锋”,洞悉面试成败的关键所在。
《程序员面试金典》融萃了作者在世界科技公司长期从事相关工作所积累的面试经验,涉及与面试相关的每个环节——大到剖析面试流程、详解经典的技术面试题,小到如何制作简历及面试时的着装规范,你都能在书中找到锦囊妙计。
对源自微软、苹果、谷歌等IT名企的150道面试题进行深入解析,是本书的重头戏,这些面试题数量众多、质量上乘、解析深入。
牛客网上面有在线练习。点击查看这本书的在线练习
适合人群:希望冲击IT名企、期望大展宏图的程序员
推荐指数:★★★★★
编程之美
《编程之美:微软技术面试心得》是一本让人着迷的书!阅读起来。有些题目的内容会引起强烈的共鸣,尤其是那些自己非常熟悉并且又深知解答的题目;也有一些题目让我异常惊诧,原来除了我所知道的解答思路之外,还有更好的解答以及更深层次的原因。还有一些题目是从来没想到过的。阅读过程是一次愉快的享受,也是脑细胞持续活跃的过程。解决问题,寻找更优的解法,总结规律,抽象出算法的过程以及由此产生的成就感。
《编程之美:微软技术面试心得》收集了大约60道微软技术面试题,作者试图通过书中妙趣横生的问题和详细的解说以及面试者的各种小故事,告诉读者微软需要什么样的技术人才,重视什么样的能力,如何甄别人才。但它更深层的意义在于引导读者思考,帮助读者重拾通过编程探索未知世界的乐趣。
适合人群:想进名企并想发现一些编程的乐趣的
推荐指数:★★★★★
编码
是一本讲述计算机工作原理的书。不过,你千万不要因为“工作原理”之类的字眼就武断地认为,它是晦涩而难懂的。作者用丰富的想象和清晰的笔墨将看似繁杂的理论阐述得通俗易懂,你丝毫不会感到枯燥和生硬。更重要的是,你会因此而获得对计算机工作原理较深刻的理解。这种理解不是抽象层面上的,而是具有一定深度的,这种深度甚至不逊于“电气工程师”和“程序员”的理解。
适合人群:所有程序员
推荐指数:★★★★★
深入理解计算机系统
从程序员的视角详细阐述计算机系统的本质概念,并展示这些概念如何实实在在地影响应用程序的正确性、性能和实用性。全书共12章,主要内容包括信息的表示和处理、程序的机器级表示、处理器体系结构、优化程序性能、存储器层次结构、链接、异常控制流、虚拟存储器、系统级i/o、网络编程、并发编程等。书中提供大量的例子和练习题,并给出部分答案,有助于读者加深对正文所述概念和知识的理解。
《计算机科学丛书:深入理解计算机系统(原书第2版)》适合作为高等院校计算机及相关专业本科牛、研究生的教材,也可供想要写出更快、更可靠程序的程序员及专业技术人员参考。
适合人群:学生学习经典和专业人才参考
推荐指数:★★★★★
计算机网络
2006年8月被纳入普通高等教育“十一五”规划教材,现在正在申报普通高等教育“十二五”规划教材。本次修订版在内容和结构方面都有很大的修改。
《"十二五"普通高等教育本科规划教材:计算机网络(第6版)》分为10章,比较全面系统地介绍了计算机网络的发展和原理体系结构、物理层、数据链路层、网络层、运输层、应用层、网络安全、因特网上的音频/视频服务、无线网络和下一代因特网等内容。
关于这本书有人整理了一些面试必考题目,计算机网络之面试常考||果断收藏了!
适合人群:初学者和大牛参考书籍
推荐指数:★★★★
HTTP权威指南
详细解释了HTTP协议,包括它是如何工作的,如何用它来开发基于Web的应用程序。但本书并不只介绍了HTTP,还探讨了HTTP有效工作所依赖的所有其他核心因特网技术。尽管HTTP是本书的中心内容,但本书的本质是理解Web的工作原理,以及如何将这些知识应用到Web编程和管理之中去,主要涵盖HTTP的技术运作方式、产生动机、性能和目标,以及一些相关技术问题。
适合人群:想深入了解HTTP的
推荐指数:★★★★
TCP/IP协议族
《世界著名计算机教材精选·TCP/IP协议族(第4版)》可作为大学生和研究生的教材,对从事计算机网络的教学和科研人员以及工程技术人员也有很好的参考价值。
适合人群:想深入了解TCP、ip的
推荐指数:★★★★
Linux内核设计与实现 - Linux Kernel Development 第3版
Robert Love用最薄的篇幅,顺畅的文字将Linux内核主要的算法讲清楚了,比《深入理解Linux内核》,《深入Linux内核架构》之类厚厚的全是代码的,不是专门的内核程序员看这本足够了。
适合人群:想用最短的时间了解linux内核的初学者
推荐指数:★★★★★
linux系统编程
比起APUE也是以薄见长,专门针对重要的系统调用讲解。
系统编程是指编写系统软件,其代码在底层运行,直接跟内核和核心系统库对话。
《Linux系统编程(第2版)》是一本关于Linux系统编程的教程,也是一本介绍Linux系统调用的手册,还是一本如何实现更优雅更快代码的内幕指南。
适合人群:想系统学习linux系统编程的
推荐指数:★★★★★
性能之巅
操作系统的性能调优、监控、工具和方法论,看这本就够了,足够厚。还有本薄一点的,东抄西编格调没那么高的叫《Linux性能优化大师》。
适合人群:关于操作系统的初学者和程序员额工具书
推荐指数:★★★★★
TCP/IP详解 卷1:协议
这么多年过去了,TCP的书好像还是只有这一本,有点旧了,看了也还是半懂不懂。后人在2011年写了第二版,看目录清晰明了与时俱进了很多,机械工业正在翻译。
适合人群:学生学习和老师的参考书,还有研究网络的技术人员
推荐指数:★★★★★
现代操作系统
是操作系统领域的经典之作,书中集中讨论了操作系统的基本原理,包括进程、线程、存储管理、文件系统、输入/输出、死锁等,同时还包含了有关计算机安全、多媒体操作系统、掌上计算机操作系统、微内核、多核处理机上的虚拟机以及操作系统设计等方面的内容。
《UNIX环境高级编程》和《UNIX网络编程》,APUE和UNP更多作为一本超厚工具书存在。《Unix 编程艺术》,扯的都是闲篇,厚厚的一本其实略读一下就行。
适合人群:学生学习,设计,开发操作系统的重要参考书
推荐指数:★★★★★
linux就是这个范
内容源自淘宝技术大学的培训实战。由来自阿里巴巴集团的ZI深linux系统专家赵鑫磊和同样来自阿里巴巴集团的支付宝网络技术有限公司的高级专家jiezhang(张洁)共同著写。
两位作者用轻松、诙谐的语言讲解了高深的linux特性。通俗易懂、深入浅出,从linux设计思想的角度出发,授人以渔。同时,又密切结合应用案例,透彻展示出linux的系统架构设计是如何在实际中贯穿的,从而让读者真正掌握linux的强大之处。书中不含较为复杂的技术理论问题,一切从实际出发。
适合人群:想进名企并想发现一些编程的乐趣的
推荐指数:★★★★★
作为一个程序员来说,掌握至少两门语言是必不可少,那么编程语言的书籍也就成了人人必备,这里给大家列出了C,C++,php,java,andriod,ios,前端,python,C#,JavaScript的书单
C
C和指针
在上大学的时候,第一本c语言的入门往往是谭浩强的那本书,但是对于初学者,指针是C语言最难理解的地方,这本很适合入门。这本书里面有好多图示,能很清楚的让人理解。
适合人群:学生学习,设计,开发操作系统的重要参考书
推荐指数:★★★★★
C程序设计语言
是C语言——以及计算机科学中最重要的书籍之一,它的重要性不仅仅在于它用清晰的语言和简练的代码描述了C语言全貌,而且在于它为之后的计算机书籍——尤其是编程语言书籍树立了新的标杆。
适合人群:初学者
推荐指数:★★★★★
延伸阅读:
-
C专家编程:不要被标题中的“专家”吓到,这实际是一本很轻松的书籍,它既包含了大量C语言技术细节和编程技巧,也包含了很多有趣的编程轶事;
-
C陷阱与缺陷:书如其名,这本书介绍了C语言中常见的坑和一些稀奇古怪的编程“技巧”,不少刁钻的C语言面试题都源自这本小册子;
-
C语言参考手册:全面且权威的C语言参考手册,而且覆盖C99,如果你打算成为C语言专家,那么这本书不可错过;
-
C语言接口与实现:这本书展示了如何使用C语言实现可复用的数据结构,其中包含大量C语言高级技巧,以至于Amazon上排行第一的评论是“Probably the best advanced C book in existance”,而排行第二的评论则是“By far the most advanced C book I read”。
C++
作为C++的发明者,没有人能比Bjarne Stroustrup更理解C++。Bjarne在Texas A&M大学任教时使用C++为大学新生讲授编程,从而就有了C++程序设计原理与实践这本书——它面向编程初学者,既包含C++教程,也包含大量程序设计原则。不仅仅是一本C++入门书,更是一本好的编程入门书
同样是Bjarne Stroustrup的作品,C++程序设计语言是C++最权威且最全面的书籍。第4版相对于之前的版本进行了全面的更新,覆盖了第二新的C++ 11标准,并砍掉了部分过时的内容。
适合人群:初学者
推荐指数:★★★★★
延伸阅读:
-
A Tour of C++:如果你觉得C++程序设计语言过于庞大,但你又想快速的浏览一遍新版C++的语言特色,那么可以试试这本小红书;
-
C++语言的设计与演化:C++的“历史书”,讲述了C++是如何一步一步从C with Classes走到如今这一步,以及C++语言特性背后的故事;
-
C++标准库(第2版):相对于其它语言的标准库,C++标准库虽然强大,但学习曲线十分陡峭,这本书是学习C++标准库有力的补充;
-
深度探索C++对象模型:这本书系统的讲解了C++是如何以最小的性能代价实现对象模型,很多C++面试题(包括被问烂的虚函数指针)都可以在这本书里找到答案;
-
Effective C++和More Effective C++:由于C++的特性实在繁杂,因此很容易就掉到坑里。Effective系列既讲述了C++的良好编程实践,也包含C++的使用误区,从而帮你绕过这些坑。
-
《SGI STL 源码剖析》
-
《深入理解C++11》
Java
IT图书作家李刚老师针对Java 8推出的全新升级版;880分钟视频讲解,550多个实例,海量代码,详实的PPT课件;被多所“985”“211”院校选做教材或中文推荐参考书;北京大学教授力荐;不但程序员欢迎而且具有强大影响力的国人原创Java必读经典。
适合人群:初学者
推荐指数:★★★★★
本书介绍了java ee领域的三个开源框架:struts
2、spring和hibernate。其中struts2升级到2.2.1,spring升级到3.0.5,hibernate升级到了3.6.0。本书还全面介绍了servlet3.0的新特性,以及tomcat
7.0的配置和用法,本书的示例应该在tomcat 7.0上运行。本书重点介绍如何整合struts 2.2 spring 3.0
hibernate 3.6进行javaee开发。
适合人群:有java基础并想继续深入java方向的
推荐指数:★★★★★
《编写高质量代码:改善Java程序的151个建议》针对每个问题所设计的应用场景都非常典型,给出的建议也都与实践紧密结合。
书中的每一条建议都可能在你的下一行代码、下一个应用或下一个项目中崭露头角,建议你将此书搁置在手边,随时查阅,一定能使你的学习和开发工作事半功倍。
适合人群:有一定基础并想继续深入的从事java方向的人
推荐指数:★★★★★
java核心技术
是Java领域最有影响力和价值的著作之一,与《Java编程思想》齐名,10余年全球畅销不衰,广受好评;根据JavaSE7全面更新,系统全面讲解Java语言的核心概念、语法、重要特性和开发方法,包含大量案例,实践性强。
适合人群:有些java基础并想继续深入的
推荐指数:★★★★
effective java中文版
它包含大量的优秀Java编程实践,并对泛型和并发这两个充满陷阱的Java特性给出了充满洞察力的建议,以至于Java之父James Gosling为这本书作序:“我很希望10年前就拥有这本书。可能有人认为我不需要任何Java方面的书籍,但是我需要这本书。”
适合人群:有些java基础并想继续深入的
推荐指数:★★★★★
疯狂Java程序员的基本修养。
会熟练编写Java代码并不意味能顺利通过大公司对程序员的面试,扫清知识死角,夯实基本功方可成为一名合格的程序员。李刚老师在《疯狂
Java 程序员的基本修养》中将Java程序员经常遇到的问题、难点分类梳理,透过现象告诉你隐藏在代码背后的本质,助你从容应对职场挑战。
适合人群:有些java基础并想继续深入的
推荐指数:★★★★★
延伸阅读:
-
深入理解Java虚拟机(第2版):非常优秀且难得的国产佳作,系统的介绍了Java虚拟机和相关工具,并给出了一些调优建议;
-
Java程序员修炼之道:在这本书之前,并没有一本Java书籍系统详细的介绍Java 7的新特性(例如新的垃圾收集器,try using结构和invokedynamic指令),这本书填补了这个空白;
-
Java并发编程实践:系统全面的介绍了Java的并发,如何设计支持并发的数据结构,以及如何编写正确的并发程序;
-
Java Puzzlers:包含了大量的Java陷阱——以至于读这本书时我说的最多的一个词就是WTF,这本书的意义在于它是一个反模式大全,Effective Java告诉你如何写好的Java程序,而Java Puzzlers则告诉你糟糕的Java程序是什么样子。更有意思的是,这两本书的作者都是Joshua Bloch。
C#
精通C#
不要被表面名字所迷惑,看似精通,实则也是入门书籍。被誉为“C#圣经”的经典著作,因语言生动流畅、剖析深入、涵盖全面而广受推崇,畅销不衰。曾经获得Referenceware编程图书大奖,并入选Jolt大奖提名。探讨了C#语言和.NET平台的各种特性,包括面向对象编程,委托、事件和Lambda表达式的关系,LINQ编程,多线程、并行和异步编程,ADO.NET、WCF、WF、WPF等技术。新版更透彻阐述了C#5.0和.NET 4.5的新功能。
作者为世界级C#专家、C#超级畅销书作家AndrewTroelsen,英文原版一出即成为销量最好的C#图书。第5版中文版在豆瓣评分高达9.1分,是众多C#程序员力荐的经典好书。
不论是从零开始的菜鸟,还是小有水平的中级程序员,抑或是已经跻身高手梯队的老码农,都需要用这本书来武装自己,正如一位读者所说,“不藏此书,便不像一名真正的C#程序员”。
适合人群:想入门C#并有所发展的
推荐指数:★★★★★
CLR via C#
CLR via C#是C#/.Net最重要的书籍,没有之一。任何一个以C#为工作内容的程序员都应该阅读此书。
适合人群:想入门C#并有所发展的
推荐指数:★★★★★
延伸阅读:
-
深入理解C#(第3版):C#进阶必读,这本书偏重于C#的语言特性,它系统的介绍了C#从1.0到C# 4.0的语言特性演化,并展示了如何利用C#的语言特性编写优雅的程序;
-
.NET设计规范(第2版):C#专业程序员必读,从变量命名规范讲到类型系统设计原则,这本书提供了一套完整的.Net编程规范,使得程序员可以编写出一致,严谨的代码,
-
C# 5.0权威指南:来自O'Reilly的C#参考手册,严谨的介绍了C#语法,使用,以及核心类库,C#程序员案头必备;
-
LINQ to Objects Using C# 4.0和Async in C# 5.0:LINQ和async分别是.Net 3.5和.Net 4.5中所引入的最重要的语言特性,所以我认为有必要在它们上面花点功夫——这两本书是介绍LINQ和async编程的最佳读物。
JavaScript
是超级畅销书的升级版,由倡导Web标准的领军人物执笔,揭示了前端开发的真谛,是学习JavaScript和DOM开发的必读之作。
适合人群:新手专家都值得拥有
推荐指数:★★★★★
JavaScript语言精粹
介绍JavaScript语言本质的书籍,值得任何正在或准备从事JavaScript开发的人阅读,并且需要反复阅读。学习、理解、实践大师的思想,我们才可能站在巨人的肩上,才有机会超过大师,这本书就是开始。
适合人群:初学者
推荐指数:★★★★★
延伸阅读:
-
JavaScript高级程序设计(第3版):详尽且深入的介绍了Javascript语言,DOM,以及Ajax,并针对HTML5做了对应更新;
-
JavaScript权威指南(第6版):这本书的第5版曾被前端专家Douglas Crockford称之为“唯一靠谱的JavaScript书”。相对于JavaScript高级程序设计,JavaScript权威指南更像是一本案头参考书,当然如果你感兴趣也可以从头读到尾;
-
编写可维护的JavaScript:书如其名,这本书给出了大量的优秀JavaScript编程实践,使得程序员编写出健壮且易于维护的JavaScript代码;
-
JavaScript异步编程:和常见的支持并发的编程语言(例如Java和C#)不同,JavaScript本身是单线程的,因此不能把其它语言处理并发的方式照搬到JavaScript。JavaScript异步编程系统的介绍了JavaScript中的并发原理,并阐述了如何使用Promise、Deferred以及Async.js编写出简洁高效的异步程序。
Python
简洁,全面,代码质量很不错,而且有几个很有趣的课后作业,包括Python程序设计的方方面 面,首先从Python的安装开始,随后介绍了Python的 基础知识和基本概念,包括列表、元组、字符串、字 典以及各种语句。然后循序渐进地介绍了一些相对高 级的主题,包括抽象、异常、魔法方法、属性、迭代 器。此后探讨了如何将Python与数据库、网络、C语 言等工具结合使用,从而发挥出Python的强大功能, 同时介绍了Python程序测试、打包、发布等知识。* 后,作者结合前面讲述的内容,按照实际项目开发的 步骤向读者介绍了几个具有实际意义的Python项目的 开发过程。
适合人群:适合各个层次的Python 开发人员阅读参考
推荐指数:★★★★★
python参考手册
是python编程语言的权威参考指南,书中详尽解释了python核心语言和python库中最重要的部分,涉及类型和对象、操作符和表达式、编程结构和控制流、输入和输出、测试、调试等,也包括一些python官方文档或其他参考资料中未提及的高级主题。
《Python参考手册(第4版)》面向python程序员,或有其他编程语言经验的开发人员。
是权威的python语言参考指南,内容涉及核心python语言和python库的最重要部分。内容简洁扼要、可读性强,书中还包括了一些没有在python官方文档或其他资料中出现过的一些高级的主题。
适合人群:适合各个层次的Python 开发人员阅读参考
推荐指数:★★★★★
延伸阅读:
-
Python袖珍指南(第5版):实用且便携的Python参考手册,我会说我在飞机上写程序时用的就是它么 -_-#;
-
Python Cookbook(第3版):非常好的Python进阶读物,包含各种常用场景下的Python代码,使得读者可以写出更加Pythonic的代码;
-
Python编程实战:运用设计模式、并发和程序库创建高质量程序:Python高级读物,针对Python 3,2014年的Jolt大奖图书,不可错过;
-
Python源码剖析:少见的国产精品,这本书以Python 2.5为例,从源代码出发,一步步分析了CPython是如何实现类型,控制流,函数/方法的声明与调用,类型以及装饰器等Python核心概念,读过之后会大大加深对Python的理解。尽管这本书有些过时,但我们仍然可以按照它分析源代码的方式来分析新版Python。
设计模式
大话设计模式
本书通篇都是以情景对话的形式,用多个小故事或编程示例来组织讲解GoF(设计模式的经典名著——Design
Patterns:Elements of Reusable Object-Oriented
Software,中译本名为《设计模式——可复用面向对象软件的基础》的四位作者Erich Gamma、Richard
Helm、Ralph Johnson,以及John Vlissides,这四人常被称为Gang of Four,即四人组,简称GoF)总结的23个设计模式。本书的特色是通过小菜与大鸟的趣味问答,在讲解程序的不断重构和演变过程中,把设计模式的学习门槛降低,让初学者可以更加容易地理解——为什么这样设计才是好的?是怎样想到这样设计的?以达到不但授之以“鱼”,还授之以“渔”的目的。引导读者体会设计演变过程中蕴藏的大智慧。
本书适合编程初学者或希望在面向对象编程上有所提高的开发人员阅读。
数据库
收获不止oracle
在《收获,不止Oracle》这本书里读者将会跟随作者一同对Oracle数据库的相关知识进行梳理,*终共同提炼出必须*先掌握的那部分知识,无论你是数据库开发、管理、优化、设计人员,还是从事Java、C的开发人员。接下来作者再将这部分知识中*实用的内容进一步提炼,浓缩出*精华的部分,分享给大家。这是二八现象的一次经典应用。
这部分知识就是Oracle的物理体系结构、逻辑体系结构、表、索引以及表连接五大部分。通过阅读这些章节,读者将会在*短时间内以一种有史以来*轻松的方式,完成对Oracle数据库的整体认识,不仅能在工作中解决常规问题,还能具备一定的设计和调优能力。相信通过这些章节的学习,会给读者的Oracle学习带来极大的收获。
然而,作者*希望看到的是:让读者的收获,不止Oracle。
架构设计的书
大型网站系统与java中间件实践、大型网站技术架构——核心原理与案例分析
淘宝出品,大型互联网站的科普入门书。《大型网站系统与Java中间件实践》围绕大型网站和支撑大型网站架构的 Java 中间件的实践展开介绍。从分布式系统的知识切入,让读者对分布式系统有基本的了解;然后介绍大型网站随着数据量、访问量增长而发生的架构变迁;接着讲述构建 Java 中间件的相关知识;之后的几章都是根据笔者的经验来介绍支撑大型网站架构的 Java 中间件系统的设计和实践。希望读者通过《大型网站系统与Java中间件实践》可以了解大型网站架构变迁过程中的较为通用的问题和解法,并了解构建支撑大型网站的 Java 中间件的实践经验。对于有一定网站开发、设计经验,并想了解大型网站架构和支撑这种架构的系统的开发、测试等的相关工程人员,《大型网站系统与Java中间件实践》有很大的参考意义;对于没有网站开发设计经验的人员,通过《大型网站系统与Java中间件实践》也能宏观了解大型网站的架构及相关问题的解决思路和方案。
恰如其分的软件架构 - 风险驱动的设计方法
《恰如其分的软件架构》描述了一种恰如其分的架构设计方法。作者建议根据项目面临的风险来调整架构设计的成本,并从多个视角阐述了软件架构的建模过程和方法,包括用例模型、概念模型、域模型、设计模型和代码模型等。本书不仅介绍方法,而且还对方法和概念进行了归类和阐述,将软件架构设计融入开发实践中,与敏捷开发方法有机地结合在一起,适合普通程序员阅读。
软件系统架构:使用视点和视角与利益相关者合作
《软件系统架构:使用视点和视角与利益相关者合作(原书第2版)》是软件系统架构领域的开创性著作,是两位拥有数十年软件行业工作经验的架构师工作经验的结晶,围绕利益相关者、视点和视角三大主题,创新性地提出了如何用架构视点和架构视图的方法来定义软件架构,如何用架构视角的方法来确保软件质量,以及如何用架构视点和架构视角的方法与利益相关者合作,具有里程碑意义。《软件系统架构:使用视点和视角与利益相关者合作(原书第2版)》还展示了一种实用的、经过验证的框架,你可以应用它来处理架构定义过程,并应对创建软件架构工作所带来的挑战。
程序员必读之软件架构 - Software Architecture for Developers
本书从全新的视角重新解读软件架构,揭示软件架构的本质,是一本强调实践、注重实效、轻量级、面向开发人员的软件架构指南。本书作者是一位备受好评的软件架构讲师,为全球20多个国家的软件团队提供咨询和培训,其中不乏家喻户晓的大型企业。在过去几年中,他的实践经验已令数千人受益终生。
如果你是一名软件开发人员,那么本书定会对你的职业发展有所助益。
作者维护着codingthearchitecture.com 。不过中文书名叫“必读”有点过。薄书里的两部分内容:
1. 编码的架构师:一直是我的职业模板,我记的笔记。
2. 架构的表达: 当年我觉得RUP的4+1 UML视图不足以表达系统时,Simon Brown的模板给了很好的过渡范例。
软件的设计与部署 - Release It!: Design and Deploy Production-Ready Software
《图灵程序设计丛书:发布!软件的设计与部署》分为四个部分,每部分内容都由一个研究案例引出。第一部分介绍了如何保证系统的生存,即维护系统正常运行。第二部分介绍了如何衡量系统的容量,以及如何随时间来优化系统的容量。在第三部分讲述了架构师在为数据中心构建软件时应该思考的一般设计问题。第四部分讨论了系统的运行寿命,将其作为整个信息生态环境的一部分。书中代码采用的Java语言,熟悉编程的人都能轻易阅读。作者从Java和Unix的视角看问题,因而本书的焦点比较中立,着眼于跨所有平台的技术和概念。在每种模式和反模式的末尾,都有一段简短精要的总结。
《图灵程序设计丛书:发布!软件的设计与部署》适合面向企业级软件的架构师、设计师和开发人员阅读参考。关于高可靠性的软件,学校里不会教,出来社会却要面对的那部分,英文的原标题更清晰。
大规模分布式存储系统
杨传辉等编著的《大规模分布式存储系统(原理解析与架构实战)》是分布式系统领域的经典著作,由阿里巴巴高级技术专家“阿里日照”(oceanbase核心开发人员)撰写,阳振坤、章文嵩、杨卫华、汪源、余锋(褚霸)、赖春波等来自阿里、新浪、网易和百度的ZI深技术专家联袂推荐。理论方面,不仅讲解了大规模分布式存储系统的核心技术和基本原理,而且对谷歌、YA马逊、微软和阿里巴巴等国际型大互联网公司的大规模分布式存储系统进行了分析;实战方面,首先通过对阿里巴巴的分布式数据库oceanbase的实现细节的深入剖析完整地展示了大规模分布式存储系统的架构与设计过程,然后讲解了大规模分布式存储技术在云计算和大数据领域的实践与应用。 《大规模分布式存储系统(原理解析与架构实战)》内容分为四个部分:基础篇――分布式存储系统的基础知识,包含单机存储系统的知识,如数据模型、事务与并发控制、故障恢复、存储引擎、压缩/解压缩等;分布式系统的数据分布、复制、一致性、容错、可扩展性等。范型篇――介绍谷歌、YA马逊、微软、阿里巴巴等ZHU名互联网公司的大规模分布式存储系统架构,涉及分布式文件系统、分布式键值系统、分布式表格系统以及分布式数据库技术等。实践篇――以阿里巴巴的分布式数据库oceanbase为例,详细介绍分布式数据库内部实现,以及实践过程中的经验。专题篇――介绍分布式系统的主要应用:云存储和大数据,这些是近年来的热门领域,本书介绍了云存储平台、技术与安全,以及大数据的概念、流式计算、实时分析等。分布式文件系统与数据库的科普入门书。
大数据日知录
大数据是当前流行的热点概念之一,其已由技术名词衍生到对很多行业产生颠覆性影响的社会现象,作为明确的技术发展趋势之一,基于大数据的各种新型产品必将会对每个人的日常生活产生日益重要的影响。
张俊林著的这本《大数据日知录:架构与算法》从架构与算法的角度全面梳理了大数据存储与处理的相关技术。大数据技术具有涉及的知识点异常众多且正处于快速演进发展过程中等特点,其技术点包括底层的硬件体系结构、相关的基础理论、大规模数据存储系统、分布式架构设计、各种不同应用场景下的差异化系统设计思路、机器学习与数据挖掘并行算法以及层出不穷的新架构、新系统等。本书对众多纷繁芜杂的相关技术文献和系统进行了择优汰劣并系统性地对相关知识分门别类地进行整理和介绍,将大数据相关技术分为大数据基础理论、大数据系统体系结构、大数据存储,以及包含批处理、流式计算、交互式数据分析、图数据库、并行机器学习的架构与算法以及增量计算等技术分支在内的大数据处理等几个大的方向。通过这种体系化的知识梳理与讲解,相信对于读者整体和系统地了解、吸收和掌握相关的技术有很大的帮助与促进作用。
具体技术的书(后面由于字数限制就不贴图和详细介绍了)
Docker: 容器与容器云
这本书叫Docker一本就够了,的确够了,在那些Docker操作指南书之上,不想着改Docker代码的看它就够了,别想着什么《Docker源码分析》。
Redis设计与实现分析
用Redis的工程师桌面必备吧,不用再多说了。
从Paxos到Zookeeper
Zookeeper的书,淘宝出品。
Spark技术内幕
深度与厚度之间,选了这本200页的薄书,一样有很多的原理与代码解释,但不会像有的书那样贴20行代码只写一行字。
Netty权威指南 第2版
虽然网上的吐槽较多,但Netty 快速入门也只有这一本了。
源代码 :
-
《Struts2内幕》
-
《Spring源码深度解析》
-
《深入剖析tomcat》
综合
深入分析java web技术内幕
程序员读书需要注意的问题:
-
当然,书不是读的越多越好,
-
同一本经典书也不怕被多读,读一次i就多一些见解。
-
一定要注重实践,而不是理论
-
有计划的阅读并配合实践
-
要根据自己的情况选择适合自己的书