当前位置: 主页 > 建站知识 > 软件开发

软件开发参考文献-议论文写法的参考+文献

发布时间:2023-02-05 16:03   浏览次数:次   作者:佚名

本文将程序员需要掌握的关键知识归纳为三类19个关键概念,然后给出掌握每个关键概念所需的入门书籍和必读书籍,旨在成为最优秀、最全面的程序员。 该阅读清单可帮助 IT 专业人员实现自我提升。 在书单中,我将程序员应该掌握的关键概念分为三类:编程、软件开发和个人成长。 每个类别都包含几个关键概念。

编程

一、基础理论

文献参考格式_议论文写法的参考+文献_软件开发参考文献

编码

Coding:隐藏在计算机硬件和软件背后的语言,这本书不应该叫coding——应该叫《Petzold教你组装电脑》——作者Charles Petzold创造性地以coding为主题,从电报、手电筒到数字电路,然后利用数字电路中的逻辑门构造加法器和触发器,最后构造出完整的存储程序计算机。 不要被这些电路概念吓倒——编码通过大量生动的类比简化了这些概念,使其成为最令人兴奋和易于理解的计算机入门读物。

议论文写法的参考+文献_软件开发参考文献_文献参考格式

对计算机系统的深入理解

深入理解计算机系统(第2版) 本书全称:Computer Systems: A Programmer's Perspective,故又称CSAPP。

深入理解计算机系统是我读过的最好的计算机系统入门著作。 它创造性地汇集了计算机基础学科中操作系统、计算机部件、数字电路、编译原理等核心概念。 从而涵盖了指令集体系结构、汇编语言、代码优化、计算机存储体系结构、链接、加载、进程和虚拟内存等程序员需要了解的计算机系统关键知识。 如果你想打下扎实的计算机基础,又不想把操作系统计算机结构汇编原理的书都看一遍,阅读和理解计算机系统是最有效的方法。

2. 编程语言

编程语言是程序员必不可少的日常工具。 工欲善其事,必先利其器。 我在这里给出六种常用编程语言的书单:C、C++、Java、C#、JavaScript和Python。 我对Objective-C和PHP不熟悉,所以不在其中。

需要注意的是,我这里给出的是programming language编程语言书,不是programming platform编程平台书。 以Java为例,Effective Java属于编程语言书籍,而Android Programming Authoritative Guide属于编程平台书籍。

文献参考格式_议论文写法的参考+文献_软件开发参考文献

C

对于C语言初学者来说,最难的概念不仅仅是指针和数组,还有指向数组的指针和指向指针的指针。 C和指针用了大量的篇幅和插图将这些难懂但重要的概念解释清楚,这也是我推荐它作为C语言入门书籍的原因。

软件开发参考文献_议论文写法的参考+文献_文献参考格式

C程序设计语言

尽管《The C Programming Language》这本书已有二十多年的历史,但它仍然是 C — 并且是计算机科学中最重要的书籍之一,这不仅仅是因为它的语言清晰简洁。 代码描述了C语言的全貌,也因为它为后来的计算机书籍——尤其是编程语言书籍树立了新的标杆。

文献参考格式_软件开发参考文献_议论文写法的参考+文献

C++ 编程原理与实践

作为 C++ 的发明者,没有人比 Bjarne Stroustrup 更了解 C++。 Bjarne 在 Texas A&M 大学任教时使用 C++ 向大学新生教授编程,因此他创作了《C++ Programming Principles and Practice》一书——它面向编程初学者,包含 C++ 教程和大量编程原理。 它不仅是我读过的最好的C++入门书籍,也是我读过的最好的编程入门书籍。

更有趣的是,C++ Programming Principles and Practice 直到读到一半才出现指针。 我想这可能是因为 Bjarne 想证明你不用学 C 也能学好 C++。

议论文写法的参考+文献_文献参考格式_软件开发参考文献

C++

同样由 ​​Bjarne Stroustrup 撰写的 The C++ Programming Language 是关于 C++ 的最权威和最全面的书籍。 第四版相对于前几版进行了全面更新,涵盖了第二个最新的C++11标准,并删除了一些过时的内容。

议论文写法的参考+文献_文献参考格式_软件开发参考文献

爪哇

平心而论,Java 核心技术(即 Core Java)并不是一本特别好的书:示例代码不够严谨,充满了与 C/C++ 的对比,语言不够简洁——问题是 Java 不有一本很好的入门书籍,相比同类型的Java编程思想,Java核心技术至少做到废话少,与时俱进(Java编程思想还是Java 6之前的),侏儒中的一般,Java核心技术还不错。

文献参考格式_软件开发参考文献_议论文写法的参考+文献

有效的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等框架。 您可以将本书视为两本书——一本 500 多页的 C# 语言教程和一本 600 多页的 .Net 平台框架快速入门手册。

尽管标题是“精通”,但Mastering C#实际上是一本面向初学者的C#书籍,你甚至不需要太多的编程知识就可以阅读它。

文献参考格式_议论文写法的参考+文献_软件开发参考文献

通过 C# 的 CLR

CLRviaC#是关于C#/.Net最重要的一本书,没有之一。 全面介绍了.Net的基石——CLR的运行原理,以及建立在CLR之上的C#类型系统、运行时关系、泛型、线程/并行等高级内容。 任何使用 C# 的程序员都应该阅读这本书。

软件开发参考文献_议论文写法的参考+文献_文献参考格式

JavaScript

虽然现在JavaScript可以从客户端到服务器无所不包,虽然JQuery等前端框架让一些人在不懂JavaScript的情况下也能编程,但我仍然认为从HTML DOM开始学习JavaScript是最合适的,因为这就是JavaScript专为。 原意。 JavaScript DOM 编程艺术系统介绍了如何使用 JavaScript、HTML 和 CSS 来创建可用的网页。 是一本很好的入门级前端书籍。

文献参考格式_软件开发参考文献_议论文写法的参考+文献

JavaScript 语言

JavaScript 语言包含了很多陷阱和陷阱,但它也有一些相当不错的特性,这就是为什么 Douglas Crockford 称 JavaScript 是世界上最容易被误解的语言,并写了一本书 JavaScript Language Essentials 来帮助前端开发者围绕打开JavaScript 中的陷阱。 与同类书籍不同,《JavaScript 语言精要》以简洁的语言解释了 JavaScript 语言好的部分(如闭包、函数作为一等对象和对象字面量),并建议读者不要使用其他不好的部分(如混淆)类型转换、默认的全局命名空间和奇怪的相等说明符),毕竟,用不好的特性编写的程序通常很糟糕。

软件开发参考文献_文献参考格式_议论文写法的参考+文献

Python

Python入门书籍很多,据说大部分质量都不错。 之所以推荐Python Basic Tutorial,是因为它是我的Python入门书——简洁、全面、代码质量非常好,还有几个非常有趣的课后作业。 让我可以快速上手。

对了,别拿Python学习手册当Python入门——废话太多,你能想象用15页来解释if语句吗? 虽然 O'Reilly 出了很多经典的编程书籍,但这本 Python 学习手册绝对不是其中之一。

软件开发参考文献_议论文写法的参考+文献_文献参考格式

Python 参考手册

权威实用的Python书籍,涵盖Python 2和Python 3。虽然称为参考手册,但Python参考手册也基于Python语法和标准库对其实现机制进行了深入的讲解软件开发参考文献,不容错过.

编程语言理论

议论文写法的参考+文献_软件开发参考文献_文献参考格式

编程语言实现模式

大多数程序员不需要从头开始编写编译器或解释器,所以龙书(编译原理)太重量级了; 但是,大多数程序员仍然需要解析文本,处理配置文件,或者编写一门小语言,编程语言的实现模式很好地满足了这种需求。 它将常用的文本解析/代码生成方法组织成模式,并给出了每种模式的示例和应用场景。 本书不仅会提高你的动手能力,还会加深你对编程语言的理解。 Python的发明者Guido van Rossum甚至给予本书超高评价“扔掉你的编译理论书!”

议论文写法的参考+文献_文献参考格式_软件开发参考文献

编程语言——修行之路

程序员每天都要和编程语言打交道,但是很少有程序员去思考为什么编程语言是这样设计的。 Programming Language - The Road to Practice 这本书完美地回答了这个问题。

本书从编程语言的解析和运行入手,系统地介绍了命名空间、作用域、控制流、数据类型和方法(控制抽象)等编程语言的核心概念,然后展示了这些概念是如何应用到编程中的具有不同编程范式的语言,例如过程语言、面向对象语言、函数式语言、脚本、逻辑编程语言和并发编程语言。 本书可能会极大地开阔你的视野——无论你使用何种编程语言,你都会从本书中获益良多。 读懂这本书胜过学习十种新的编程语言。

4.编程

议论文写法的参考+文献_软件开发参考文献_文献参考格式

编程方法

现代编程语言的语法大多很复杂,使用这些语言学习编程的初学者会花费大量时间在编程语言语法(如指针、引用和类型定义)上,而不是编程方法(如作为数据抽象和过程抽象)。 编程方法解决了这个问题——它着重于编程方法,使读者无需花费大量时间在编程语言上。 本书还有配套的教学和开发环境DrScheme,会根据读者的水平改变编程语言的深度,让读者始终专注于编程方法。

我个人很纳闷,为什么这么一本编程法大作绝版了,而像谭浩强的C语言这样的垃圾却大行其道——还好编程法第二版已经在网上免费发布了。

文献参考格式_软件开发参考文献_议论文写法的参考+文献

计算机程序的构造和解释

《计算机程序的结构与解释》是另一本被国内大学忽视的教材(至少我本科的时候很少有人知道这本书)。 本书与编程方法有很多共同点——均以Scheme为教学语言; 他们都关注编程方法而不是编程语言本身; 他们都有很好的课后问题。 与编程方法相比,《计算机程序的构建与解释》更深入到编程的本质(过程抽象、数据抽象和元语言抽象),以至于谷歌技术总监Peter Norvig给了本书超高的评价。

5. 算法与数据结构

议论文写法的参考+文献_文献参考格式_软件开发参考文献

算法

算法本书使用比较简单的Java语言作为教学语言; 涵盖了所有常用的数据结构和算法,并给出了它们的完整实现; 包含大量可视化算法的图表——事实上,这是我的学位。 这是有史以来插图最生动的书,这就是为什么它被称为最好的算法入门书。

议论文写法的参考+文献_文献参考格式_软件开发参考文献

Programming Pearls(第二版)是一本不可多得的实用算法书——它不是一本一一介绍数据结构/算法的教科书,而是一本非常实用的算法应用手册。 作者(Jon Bentley)从自己多年的实践经验中选取了一些有趣且实用的问题,然后展示了自己解决这些问题的过程(分析问题、选择合适的算法、求解问题、验证答案)。 任何程序员都可以从中受益。

6.程序调试

文献参考格式_议论文写法的参考+文献_软件开发参考文献

调试九种方法

一个让非程序员感到意外的事实是,程序员大部分时间都花在调试而不是编写程序上,以至于鲍勃大叔把调试时间与工作时间的比值作为衡量一个程序员开发能力的指标。 调试九法——如何排除软硬件故障,是调试领域的入门著作,也是必读的经典之作。 《调试九大法》一书的作者是一位具有丰富实践经验的硬件工程师。 他将自己多年的调试经验总结为九条调试法则,并针对每条法则给出了相应的实际案例。 任何程序员都应该通过阅读本书来提高调试效率。 即使是非程序员也能从本书中学到系统的解题方法。

软件开发

1.编程实践

文献参考格式_软件开发参考文献_议论文写法的参考+文献

编程实践

Brian Kernighan 是这个星球上最好的计算机书籍的作者:从古代的软件工具,到早期的 Unix 编程环境和 C 编程语言,再到这种编程实践,每一本书都是必读的。

编程实践虽然只有短短的200页,但用精炼的代码和简洁的原则涵盖了编程的所有关键概念(包括编程风格、算法和数据结构、API设计、调试、测试、优化、移植等概念)作为领域特定语言)。 如果你想快速掌握良好的编程习惯,或者觉得 900 页的代码百科全书过于沉重,那么编程练习是你最好的选择。 第一次看这本书,就被它简洁的语言和优雅的代码所吸引,以至于读研的时候买了三本编程练习书——学校实验室一本,宿舍一本,宿舍一本. 随身携带一本阅读。 我想我至少读了十遍——每次都有新的东西。

软件开发参考文献_议论文写法的参考+文献_文献参考格式

代码百科全书

无论是哪个版本的程序员必读清单,代码百科全书都会排在最前面。 与其他编程书籍不同,代码百科全书以通俗易懂的语言涵盖了软件构建各个层次的所有重要概念——从变量命名到类型设计,从控制循环到代码结构,从测试和调试到构建和集成,代码百科全书包罗万象。 您可以将本书视为程序员的一站式(Once and for all)阅读手册。

更难能可贵的是,Code Encyclopedia在每一章的最后都给出了一份很有价值的参考书目(参考我之前关于如何看书的文章)。 如果您是初出茅庐的程序员,Code Encyclopedia 是一个很好的阅读起点。

2.面向对象编程

文献参考格式_软件开发参考文献_议论文写法的参考+文献

先入为主

无论你在 Amazon 还是 Google 上搜索设计模式相关的书籍,Head First 设计模式都会排在榜首——它用诙谐的语言和诙谐的插图讲述了观察者、装饰者、抽象工厂和单例。 设计模式,让初学者快速理解和掌握设计模式。 Head First设计模式在亚马逊上好评如潮,就连设计模式原书的作者Erich Gamma也给予了很高的评价。

需要注意的是,Head First Design Patterns 是一本非常好的设计模式入门书,但不要将这本书作为学习设计模式的唯一书籍——是的,Head First Design Patterns 有有趣的语言和诙谐的例子,但它缺乏既没有实际的工程实例,也没有设计模式的应用/应用场景。 我个人的建议是读完这本书后立即阅读《四人帮》设计模式或鲍勃大叔的敏捷软件开发,以了解设计模式在实践中的应用。

议论文写法的参考+文献_软件开发参考文献_文献参考格式

设计模式

设计模式作为设计模式领域的开山之作,Erich Gamma、Richard Helm、Ralph Johnson等四位作者将各领域面向对象程序开发的经验总结为三大类23种模式,并给出了使用每个模式的场景、变体、缺陷以及如何克服它们。 本书严谨紧凑(四位作者均为博士),代码来源于实际项目。 是设计模式领域的必读之作。

提醒一句:Design Patterns 不适合初学者——它更像是一篇博士论文而不是一本技术书籍,再加上它的示例具有很强的领域背景(例如 GUI 窗口系统和富文本编辑器),缺乏实践经验的程序员将会有很难理解这本书。

3.重构

软件开发参考文献_文献参考格式_议论文写法的参考+文献

重构

任何产品代码都不是一蹴而就的,而是通过反复修改演化而来的。 这本关于重构的书就是这样一本介绍如何改进代码的书——如何在保持代码行为的基础上提高代码的质量(这也是重构的定义)。

我见过很多程序员经常声称他们在重构代码,但实际上他们只做了第二步(提高代码质量),而没有保证第一步(保持代码行为),所以他们的 -称为重构 通常它适得其反 - 破坏现有代码或引入新错误。 这就是为什么我推荐这本关于重构的书——它不仅介绍了坏代码(Bad smell)的特征和改进代码的方法,还给出了重构的完整过程——1. 编写单元测试以保持(Preserve)程序行为; 2.重构代码; 3. 确保单元测试通过。 重构还引入了一组重构术语(例如封装字段、内联方法和上移字段)以方便程序员之间的交流。 只有理解了这三个方面,才能理解重构。

文献参考格式_软件开发参考文献_议论文写法的参考+文献

修改代码的艺术

这里重复重构的定义——在保持代码行为的同时提高代码质量。 重构关注第二步,如何提高代码的质量,而修改代码的艺术关注第一步,如何维护代码的行为。

提高代码质量并不难,但维护代码行为要困难得多,尤其是没有测试的遗留代码(Legacy Code)——需要先引入测试,但遗留代码往往可测试性(Testability)很差,然后您需要使代码可测试。 修改代码的艺术包含了大量使代码可测试(Testable)的实用建议,从而使重构成为可能,提高代码质量成为可能。

4.软件测试

文献参考格式_议论文写法的参考+文献_软件开发参考文献

如何破解软件

关于软件测试的书籍很多,但像《How to Break Software》这样有趣和实用的测试书籍却寥寥无几。 不同于传统的软件测试书籍(往往满是空话,无法直接应用),《How to Break Software》这本书非常实用——它从程序员的角度分析了软件错误/Bug最可能出现的路径,然后针对这些路径进行残酷的测试以确保软件质量。

第一次看这本书的时候,我大呼作者太“狠”——连这些刁钻诡异的考题都能想到。 但这种毫不留情的测试风格,恰恰是每一个职业程序员都应该具备的心态。

注意:如果你是一名测试工程师,请在阅读本书之前三思——因为阅读之后,你会让身边的程序员苦不堪言,甚至扼杀你的心。

软件开发参考文献_议论文写法的参考+文献_文献参考格式

xUnit 测试模式

How to Break Software 侧重于黑盒测试,而本 xUnit 测试模式侧重于白盒测试。 正如标题所暗示的那样,xUnit 测试模式涵盖了单元测试的各个方面:从如何编写好的单元测试,到如何设计可测试的软件,再到如何重构测试——可以将其视为单元测试的百科全书。

5.项目管理

软件开发参考文献_议论文写法的参考+文献_文献参考格式

极客和团队

很多程序员都向往成为独行侠一样的“编程英雄”,但优秀的软件不是一个人成就的,而是一个团队成就的。

Geeks and Teams 是一本为程序员编写的关于如何在团队中工作的优秀书籍。 围绕HRT的三大原则(Humility、Respect、Trust),系统地介绍了如何融入团队。 如何建立伟大的团队,如何领导他们,以及如何与有毒的人打交道。 这本书太实用了,Python之父Guido van Rossum称赞这本书“讲述了我一直在做但无法总结的事情”。

议论文写法的参考+文献_文献参考格式_软件开发参考文献

神话中的人月亮

尽管《人月神话》写于 40 年前,但它仍然是软件项目管理方面最重要的书籍。 Mythical Man-Month 来自作者 Fred Brooks 领导和完成 System/360 和 OS/360 的经验,这两个里程碑项目现在是巨大的软件项目。 它涵盖了软件项目各个方面的关键概念:从进度管理(布鲁克斯定律)到团队建设(手术团队),从程序设计(编程的本质是使用正确的数据结构)到架构设计(概念integrity),从原型制作(Plan to Throw one away)到团队沟通(正式文件+会议)。 令人惊奇的是,即使在 40 年后,Mythical Man-Month 书中的关键概念(包括焦油坑、布鲁克斯定律、概念完整性、手术团队、第二版效应等)仍然适用,而软件开发的核心复杂性仍然存在没有解决(没有灵丹妙药)。

6. 职业发展

软件开发参考文献_议论文写法的参考+文献_文献参考格式

程序员之道

不要被粗俗的翻译所迷惑。 《程序员修炼之道》是一本非常有价值的程序员成长手册。

本书不局限于特定的编程语言或框架,而是提出了一套实用有效(Pragmatic)的开发哲学,展示了如何通过编程、测试、编程工具和项目管理来实现编程。 应用这种开发理念可以使程序员更加高效和专业。 有人把这本书称为迷你版的代码百科全书——代码百科全书给出了很多优秀的编程实践,有偏的技巧; 程序员实践的方式给出了编程实践背后的思想,着眼于道。

文献参考格式_议论文写法的参考+文献_软件开发参考文献

程序员职业素养

程序员修行的方式点明了如何成为一个专业的程序员,这个程序员的敬业精神点明了一个专业程序员应该是什么样子——承担责任; 知道自己在做什么; 知道什么时候说不/什么时候说是; 在正确的时间编写正确的代码; 了解自我时间管理和持续时间估算; 知道如何应对压力。 如果你想成为一名专业开发人员(而不是代码猴子),本书将为你指明前进的方向。

七、师父的话

软件开发参考文献_议论文写法的参考+文献_文献参考格式

异想天开

Brilliant Ideas: 15 Computer Geniuses and Their Big Discoveries 是一本富有洞察力的技术访谈书——书中采访的 15 位计算机科学家中有 12 位最终成为 12 位图灵奖获得者——到知道图灵奖自从1966年,获奖者只有60多人。

Whimsy 将计算机科学分为四大领域:编程语言; 算法; 建筑学; 和人工智能。 并选出每个领域最具代表性的计算机科学家进行面试。 因为这些计算机科学家是各自领域的开拓者,所以他们可以提供普通人无法提供的见解。 通过本书,你可以了解前三十年计算机科学的发展——计算机科学家做了什么,计算机能做什么/不能做什么。 以免把时间浪费在前人已经解决的问题上(或者根本解决不了的问题)。

文献参考格式_软件开发参考文献_议论文写法的参考+文献

编程生活

也是采访记录,采访了15个人。 Programming Life 专注于程序员(Coders at work)。 它从各个领域选出了 15 位顶级程序员,其中包括 Ken Thompson 和 Jamie Zawinski 等资深 Unix 黑客,Brad Fitzpatrick 等 1980 年代出生的新一代软件开发参考文献,以及 Frances Allen 和 Donald Knuth 等计算机科学家。 这种多样性(Diversity)让编程生活既严谨又有趣,无论你是什么类型的程序员,都可以从中受益匪浅。

8.界面设计

文献参考格式_软件开发参考文献_议论文写法的参考+文献

适合所有人的设计书籍

顾名思义,Design Book for Everyone 是一本面向初学者的设计快速入门书。 它涵盖了排版、颜色、字体三个关键设计元素,并创造性地总结了排版设计的CRAP(Contrast contrast, Repetition repetition, Alignment alignment, Proximity intimacy)四大原则。 全书用丰富生动的例子告诉读者什么是好的设计,什么是坏的设计,即使是对设计一窍不通的人也能从本书中快速上手。

软件开发参考文献_议论文写法的参考+文献_文献参考格式

认知与设计

给大家写的设计书强调实践,即如何做出好的设计; 认知与设计:理解UI设计原则强调理论,即为什么我们接受这样的设计,不喜欢那种设计。 如果你想了解设计背后的心理学,又不想读很多心理学书籍,那么认知和设计是你的首选。

9.交互设计

文献参考格式_软件开发参考文献_议论文写法的参考+文献

通用设计原则

顾名思义,《通用设计原则》给出了125条重要的设计原则,并以简洁的语言和实例展示了这些原则的实际应用。 每个原理都有相应的参考,方便读者进一步学习。 之所以推荐这本书是因为: 1. 程序员需要对设计有全面的了解; 2、程序员不需要知道这些设计原则是怎么来的,只需要知道如何使用它们。 这本书很好地满足了这两个要求。

软件开发参考文献_文献参考格式_议论文写法的参考+文献

交互设计的本质

The Essence of Interaction Design 本书是交互设计领域的经典之作。 交互设计专家(VB之父)Alan Cooper在本书中详细介绍了交互设计的原则、过程和方法,然后通过各种示例(主要来自桌面系统)展示了如何应用这些原则。

值得注意的是,本书已经出版了第四版,在第三版的基础上增加了移动设计和网页设计。