点击蓝色“程序员书单”关注我哟
加个“星标”,每天带你看好文,读好书!
来自:网络
明天大雄给大家分享的是一些,程序员在把握每个要害概念所需的入门书籍和必读书籍。
其实,最近这段时间,真的很适宜浏览,置信很多小伙伴在之前的浏览都是碎片式的,所以这段待在家的工夫,真的倡议小伙伴们能够好好读一本书,或者认真地钻研一件事。
明天的分享次要分为程序设计、软件开发、以及个人成长三大类。
程序设计
1\. 基础理论
编码
编码:隐匿在计算机软硬件背地的语言,这本书其实不应该叫编码——它更应该叫“Petzold 教你造计算机”——作者 Charles Petzold。
创造性的以编码为主题,从电报机和手电筒讲到数字电路,而后利用数字电路中的逻辑门结构出加法器和触发器,最初结构出一个残缺的存储程序计算机。
不要被这些电路概念吓到—— 编码应用大量形象贴切的类比简化了这些概念,使其成为最精彩最通俗易懂的计算机入门读物。
深刻了解计算机系统
深刻了解计算机系统(第 2 版)这本书的全名是:Computer Systems:A Programmer’s Perspective,所以它又被称为 CSAPP。
如果想打下扎实的计算机根底又不想把操作系统计算机构造编译原理这些书通通读一遍,浏览深刻了解计算机系统是最有效率的形式。
2\. 编程语言
编程语言是程序员必不可少的日常工具。工欲善其事,必先利其器。
C 程序设计语言
只管 C 程序设计语言这本书是二十多年前的书籍,但它依然是 C 语言——以及计算机科学中最重要的书籍之一。
它的重要性不仅仅在于它用清晰的语言和简练的代码形容了 C 语言全貌,而且在于它为之后的计算机书籍——尤其是编程语言书籍建立了新的标杆。
C++ 程序设计原理与实际
作为 C ++ 的发明者,没有人能比 Bjarne Stroustrup 更了解 C ++。
Bjarne 在 Texas A&M 大学任教时应用 C ++ 为大学新生讲授编程,从而就有了 C++ 程序设计原理与实际这本书。
它面向编程初学者,既蕴含 C++ 教程,也蕴含大量程序设计准则。
C++
同样是 Bjarne Stroustrup 的作品,C++ 程序设计语言是 C++ 最权威且最全面 的书籍。第 4 版绝对于之前的版本进行了全面的更新,笼罩了第二新的 C ++ 11 规范,并砍掉了局部过期的内容。
Java
平心而论 Java 核心技术(即 Core Java)并不算是一本特地杰出的书籍:
示例代码不够谨严,充斥着很多与 C /C++ 的比拟,语言也不够简洁——问题在于 Java 并没有一本很杰出的入门书籍,与同类型的 Java 编程思维相比,Java 核心技术至多做到了与时俱进。
Effective Java
只管 Java 没有什么杰出的入门书籍,但这不代表 Java 没有杰出的必读书籍。Effective Java 蕴含大量的优良 Java 编程实际,并对泛型和并发这两个充斥陷阱的 Java 个性给出了充斥洞察力的倡议。
以至于 Java 之父 James Gosling 为这本书作序:“我很心愿 10 年前就领有这本书。可能有人认为我不须要任何 Java 方面的书籍,然而我须要这本书。”
C#
C# 的语言个性十分丰盛,很难用简短的篇幅概括这些个性。
精通 C# 之所以有近 1200 页的篇幅,是因为它岂但全面介绍了 C# 语言,而且还笼罩了 ADO.NET,WCF,WF,WPF,以及 ASP.NET 这些 .Net 框架。
CLRviaC#
CLRviaC# 是 C#/.Net 最重要的书籍,没有之一。
它全面介绍了.Net 的基石—— CLR 的运行原理,以及构建于 CLR 之上的 C# 类型零碎,运行时关系,泛型,以及线程 / 并行等高级内容。任何一个以 C# 为工作内容的程序员都应该浏览此书。
JavaScript
JavaScript DOM 编程艺术零碎的介绍了如何应用 JavaScript,HTML,以及 CSS 创立可用的 Web 页面,是一本前端入门佳作。
JavaScript 语言
JavaScript 语言蕴含大量的陷阱和误区,但它却又有一些相当不错的个性,这也是为什么 Douglas Crockford 称 JavaScript 为 世界上最被误会的语言,并编写了 JavaScript 语言精粹 一书来帮忙前端开发者绕开 JavaScript 中的陷阱。
和同类书籍不同,JavaScript 语言精粹用精炼的语言解说了 JavaScript 语言中好的那局部(例如闭包,函数是头等对象,以及对象字面量)。
Python
Python 的入门书籍很多,而且据说品质大多不错,而 Python 这本入门读物——简洁,全面,代码品质很不错,而且有几个很乏味的课后作业,能够疾速上手。
Python 参考手册
权威且实用 Python 书籍,笼罩 Python 2 和 Python 3。只管它名为参考手册,但 Python 参考手册 在 Python 语法和规范库根底之上对其实现机制也给出了深刻的解说,不容错过。
3. 编程语言实践
编程语言实现模式
大多数程序员并不需要从头编写一个编译器或解释器,因而龙书(编译原理)就显得过于重量级;然而少数程序员还是须要解析文本,解决配置文件,或者写一个小语言,编程语言实现模式很好的满足了这个需要。
它把罕用的文本解析 / 代码生成办法组织成一个个模式,并为每个模式给出了实例和利用场景。这本书既会进步你的入手能力,也会加深你对编程语言的了解。
Python 发明者 Guido van Rossum 甚至为这本书给出了_“Throw away your compiler theory book!”_ 这样的超高评估。
程序设计语言——实际之路
程序员每天都要和编程语言打交道,然而思考编程语言为什么会被设计成这个样子的程序员并不多,程序设计语言—实际之路这本书完满的答复了这个问题。
4. 程序设计
程序设计办法
古代编程语言的语法大多很繁冗,初学者应用这些语言学习编程会导致花大量的工夫在编程语言语法(诸如指针,援用和类型定义)而不是程序设计办法(诸如数据抽象和过程形象)之上。
程序设计办法解决了这个问题——它专一于程序设计办法,使得读者无需把大量工夫花在编程语言上。
计算机程序的结构与解释
计算机程序的结构与解释这本书和程序设计办法有很多共同点——都应用 Scheme 作为教学语言;都专一于程序设计办法而非编程语言自身;都领有相当杰出的课后题。
5\. 算法与数据结构
算法
算法这本书的应用更为容易的 Java 语言作为教学语言;笼罩所有罕用的数据结构和算法,并均给出其残缺实现;蕴含大量的图示用于可视化算法,这也是被称为最好的算法入门书籍的起因。
编程珠玑(第 2 版)
编程珠玑(第 2 版)是一本少见的实践型算法书籍——它并非一一介绍数据结构 / 算法的教材,而是实践性极强的算法利用手册。
作者(Jon Bentley)从他多年的理论教训精选出一些乏味而又实用的问题,而后展现了他解决这些问题的过程(剖析问题,抉择适合的算法,解决问题,以及验证答案)。任何程序员都能够从中获益。
6\. 程序调试
调试九法
调试九法这本书的作者是一个具备丰盛实战经验的硬件工程师,他把他多年的调试经验总结成九条调试法令,并对每一条法令都给对应的理论案例。
任何程序员都应通过浏览这本书改善调试效率,即使是非程序员,也能够从这本书中学到零碎解决问题的办法。
软件开发
1\. 编程实际
程序设计实际
Brian Kernighan 是这个星球上最好的计算机书籍作者:从上古期间的 Software Tools,到晚期的 Unix 编程环境 和 C 程序设计语言,再到这本程序设计实际,每本书都是必读之作。
只管程序设计实际只有短短 200 余页,但它应用精炼的代码和简要的准则笼罩了程序设计的所有要害概念(包含编程格调,算法与数据结构,API 设计,调试,测试,优化,移植,以及畛域特定语言等概念)。
代码大全
无论在哪个版本的程序员必读书单,代码大全都会高居首位。
和其它程序设计书籍不同,代码大全这本书用艰深清晰的语言笼罩了软件构建(Software Construction)中各个档次上 所有 的重要概念。
2\. 面向对象程序设计
Head First
无论是在 Amazon 还是在 Google 上搜寻设计模式相干书籍,Head First 设计模式都会排在首位——它应用有趣的语言和滑稽的图示讲述了观察者、装璜者,形象工厂,和单例等要害设计模式,使得初学者能够迅速的了解并把握设计模式。
设计模式
设计模式作为设计模式畛域的开山之作,Erich Gamma,Richard Helm,Ralph Johnson 等四位作者将各个领域面向对象程序开发的经验总结成三大类 23 种模式。
并给出了每个模式的应用场景,变体,有余,以及如何克服这些有余。
须要留神:设计模式不适宜初学者浏览——它更像是一篇博士论文而非技术书籍,加上它的范例都具备很强的畛域背景(诸如 GUI 窗口零碎和富文本编辑器),不足理论教训的程序员很难了解这本书。
3\. 重构
重构
任何产品代码都不是欲速不达,而是在重复一直的批改中进化而来。重构这本书正是这样一本介绍如何改良代码的书籍——如何在放弃代码行为的根底上,晋升代码的品质(这也是重构的定义)。
批改代码的艺术
这里再反复一遍重构的定义——在放弃代码行为的根底上,晋升代码的品质。 重构 专一于第二步,即如何晋升代码的品质,而批改代码的艺术专一于第一步,即如何放弃代码的行为。
4\. 软件测试
How to Break Software
对于软件测试的书籍很多,但很少有一本测试书籍能像 How to Break Software 这般既乏味又实用。
How to Break Software 这本书十分理论——它从程序员的心理登程,剖析软件谬误 /Bug 最可能产生的门路,而后针对这些门路进行残暴的测试,以保障软件品质。
留神:如果你是一个测试工程师,那么在浏览这本书前请三思——因为浏览它之后你会让你身边的程序员苦不堪言,甚至连掐死你的心都有。
xUnit Test Patterns
How to Break Software 重视黑盒测试,而这本 xUnit Test Patterns 则重视白盒测试。
正如书名所示,xUnit Test Patterns 笼罩了单元测试的每个方面:从如何编写良好的单元测试,到如何设计可测试(Testable)的软件,再到如何重构测试——能够把它看作为单元测试的百科全书。
5\. 项目管理
极客与团队
极客与团队是一本写给程序员的如何在团队中工作的绝好书籍,它围绕着 HRT 三大准则(Humility 谦虚,Respect 尊重,和 Trust 信赖),零碎的介绍了如何融入团队,如何打造优良的团队,如何领导团队,以及如何应答团队中的害群之马(Poisonous People)。
人月神话
只管人月神话成书于 40 年前,但它仍是软件项目管理 最重要的书籍。人月神话源自作者 Fred Brooks 领导并实现 System/360 和 OS/360 这两个即是放到当初也是巨型软件我的项目的里程碑我的项目的经验总结。
6\. 业余开发
程序员修炼之道
这本书并不局限于特定的编程语言或框架,而是提出了一套切实可行的实效(Pragmatic)开发哲学,并通过程序设计,测试,编程工具,以及项目管理等方面的实例展现了如何利用这套开发哲学,从而使得程序员更加高效业余。
程序员职业素养
程序员修炼之道 指出了如何成为业余程序员,这本程 序员职业素养 则指出了业余程序员应该是什么样子——
承担责任;晓得本人在做什么;晓得何时说不 / 何时说是;在正确的工夫编写正确的代码;懂得自我工夫治理和工期预估;晓得如何应答压力。
如果想成为业余程序员(Professional Developer)(而不是码农(Code Monkey),这本书会为小伙伴指明后退的方向。
7\. 巨匠之言
奇思妙想
奇思妙想:15 位计算机蠢才及其重大发现。
奇思妙想 把计算机科学分为四大畛域:编程语言;算法;架构;人工智能。并选取了每个畛域下最具代表性的计算机科学家进行访谈。
因为这些计算机科学家都是其所在畛域的开拓者,因而他们能给出常人无奈给出的粗浅见解。
编程人生
同样是访谈录,同样访谈 15 集体,编程人生 把重点放在程序员(Coders at work)上。
它从各个领域选取了 15 位顶尖的程序员,这些程序员既包含 Ken Thompson 和 Jamie Zawinski 这些老牌 Unix 黑客,也包含 Brad Fitzpatrick 这样的 80 后新生代,还包含 Frances Allen 和 Donald Knuth 这样的计算机科学家。
8\. 界面设计
写给大家看的设计书
书如其名,写给大家看的设计书 是一本面向初学者的疾速设计入门。
它笼罩了版式,色调,和字体这三个设计中的要害元素,并创造性的为版式设计总结出 CRAP 四大准则(Contrast 比照,Repetition 反复,Alignment 对齐,Proximity 密切)。
认知与设计
写给大家看的设计书 强调实际,即如何做出好的设计;认知与设计:了解 UI 设计准则 强调实践,即为什么咱们会承受这样的设计而恶感那样的设计。
9\. 交互设计
通用设计法令
书如其名,通用设计法令 给出了重要的 125 个设计准则,并用简练的语言和范例展现了这些准则的理论利用。每个准则都有对应的参考文献,以便读者进一步学习。
交互设计精华
交互设计精华 这本书是交互设计畛域的圣经级著述。
交互设计专家(以及 VB 之父)Alan Cooper 在这本书中具体介绍了交互设计的准则,流程,以及办法,而后通过各种范例(次要来自桌面零碎)展现了如何利用这些准则。
个人成长
1\. 职业规划
软件开发者路线图
软件开发者路线图是一本优良且实用的程序员职业规划手册。这本书由若干个模式组成,每个模式都对应于程序员职业生涯中的特定阶段。
通过这本书,读者能够很不便的找到本人目前所处的模式(阶段),应该做什么,指标是什么,以及下一个模式(阶段)会是什么。
2\. 思维形式
程序员的思维修炼
作为程序员,咱们须要一直地学习——既要学习新技术,也要学习如何解决各种畛域的问题。
为了晋升学习效率,咱们须要学习如何学习。程序员的思维修炼正是这样一本讲如何学习的书,它汇合了认知科学,神经学,以及行为实践的最新研究成果,并零碎的介绍了大脑的工作机制。
为什么同样资质的人,大多数人会碌碌无为,而只有极少数能做到登峰造极?如何在畛域内做到顶尖?如何克服通往顶尖之路上的重重险阻?
浏览这本书不会让你立即本性难移,但它会指引你走向正确的路线——通往登峰造极之路。
3\. 求职面试
金领简历
知己知彼,百战不殆。
金领简历:敲开苹果微软谷歌的大门是程序员求职的必读书籍,它笼罩了程序员求职的方方面面。
程序员面试金典
同样是来自金领简历作者的作品,程序员面试金典(第 5 版)专一于技术面试题,它既蕴含了 IT 企业(诸如微软,Google,和苹果)的面试流程以及如何筹备技术面试,也蕴含了大量(超过 200 道)常见技术面试题题目以及解题思路。
4\. 英语写作
词汇量决定浏览能力,语法决定写作能力。
计算机专业词汇并不多,但精确性十分重要,因而每个程序员都应具备良好的英语语法,但程序员并不需要过于业余的英语语法——把握罕用语法并把它用对就能够。
既是最滞销的英语写作书籍,也是计算机书籍中援用最多的非计算机书籍。
格调的因素用极其简练的语言讲述了如何进行 庄重 , 准确 , 分明 的英语写作。
从这本书中,不仅能够学到英语写作,更能够学到一种谨严至简的处事态度,而这正是业余开发所必须的。
明天的分享就到这里啦,是不是超全!
以上书单笼罩了软件开发各个要害畛域的入门书籍和必读书籍,它能够满足绝大多数程序员的需要,无论小伙伴是初学者,还是进阶者,都能够从中获益。
小伙伴都读过哪些呢?
*— 【THE END】—*
本公众号全副博文已整顿成一个目录,请在公众号里回复「m」获取!
3T 技术资源大放送!包含但不限于:Java、C/C++,Linux,Python,大数据,人工智能等等。在公众号内回复「1024」,即可收费获取!!