JavaRush /Java 博客 /Random-ZH /适合初学者的 10 本编程书籍
Max Stern
第 35 级
Нижний Новгород

适合初学者的 10 本编程书籍

已在 Random-ZH 群组中发布
我有一位同事为未来的 Java 开发者进行了大量的技术面试。我曾经问他,在语言能力大致相当的人中进行选择时,是什么影响了雇用没有实际经验的申请人的决定。考虑到市场情况,我想这个问题与你们很多人都息息相关。 适合初学者的 10 本编程书籍 - 1“对技术的热情、选择解决问题的最佳方案的能力、一般的 IT 知识、对工作中等待着他的事情的理解”——这就是他的回答。我曾经在一篇文章中介绍过帮助我学习Java的初学者编程书籍。在本文中,我将重点关注能够帮助新手程序员获得 IT 知识、了解未来工作并简化选择最佳解决方案任务的出版物。也就是说,找到一份工作并从一开始就尽可能地表现出色。我根据自己的喜好编制了这个列表,因此可能有些主观。既有适合学生的经典编程教材,也有适合各代程序员的参考书。

改进代码和生产力

仅仅编写代码是不够的。重要的是要写好它,能够改进它,并且了解它的总体开发方式。以下针对初级程序员和其他人的书籍已经帮助不止一代专家应对软件开发的困难技术过程。

实用主义程序员。从行家到大师(安德鲁·亨特、大卫·托马斯)

原标题:《从熟练工到大师的程序化程序员》作者:安德鲁·亨特 (Andrew Hunt) 和大卫·托马斯 (David Thomas) 适合初学者的 10 本编程书籍 - 2如果您还没有读过这本书,那么您很可能在论坛和专业资源上多次看到过这本书的引用。本书中实用主义程序员的形象是如此清晰和理想化,以至于……人们可以称他为浪漫主义者,无论这听起来多么自相矛盾。尽管如此,尽管本书年代久远,但书中的建议仍然实用且相关。我不知道在编程书籍的世界里该把《实用主义程序员》比作什么。这个世界上最接近的类似物是《旧约》或一些超酷的食谱。在“语用学”中,一切都非常具体,并且最大限度地适用于实践。有时它会达到平庸的程度(例如,关于有效沟通的部分包含商务礼仪的基本规则),但有时书中的建议是不可替代的,特别是如果新手开发人员没有耐心和细心的导师。这些是关于代码可重复性、原型设计、估算的技巧。或者提醒我们不可能创建完美的程序。还有一些有用的技术点,例如,与调试代码、单元测试或算法的速度有关……简而言之,您需要为程序员的职业生涯做好准备。

重构改进现有代码(Martin Fowler)

原标题:《重构:改进现有代码的设计》,马丁·福勒 (Martin Fowler) 与肯特·贝克 (Kent Beck) 合着 适合初学者的 10 本编程书籍 - 3如果你让某人列出有史以来最好的职业建设编程书籍,肯定有人会提到《重构》。有人可能会说这本书已经过时了,但在某些方面他们是对的。它是在重构还不是普遍规则的时代写成的,其中的一些真理对于今天有抱负的程序员来说是显而易见的。尽管如此,书中对重构技术的描述非常详细(在某些地方,我什至会说,很冗长),每个初学者都会在其中找到有用的东西。几年前,这本书的更新版本问世并添加了新技术,这很棒。此外,本书中的示例是用 Java 编写的。我可以提到的唯一缺点是冗长。尽管如此,我还是推荐这本书。

干净的代码(罗伯特·马丁)

原标题《Clean Code: A Handbook of Agile Software Craftsmanship》作者:Robert C. Martin 适合初学者的 10 本编程书籍 - 4这本书虽然比上一本更新,但也成为了编程书籍的经典。罗伯特·马丁有时在全球编程社区中被称为“鲍勃叔叔”,他是敏捷宣言以及一些现代“纯”编程原则(例如 SOLID)的作者之一。这本书的主要主题之一可以被认为是......同理心或只是对每个必须使用你的代码的人(包括将来的你自己)抱有良好的态度。大多数“干净代码”规则都是基于这个简单的原则和常识。大多数规则和建议看起来都非常正确,是那种直观地在你脑海中盘旋的类型,但要清晰地表述它们并不容易。然而,有人可以反驳作者的一些想法:他有时非常明确。例如,他写道,好的代码不需要注释。尽管如此,这本书还是必读的。

有效地处理遗留代码(Michael Feathers)

原标题《有效地使用遗留代码》作者:Michael Feathers 适合初学者的 10 本编程书籍 - 5Life 并没有让你为此做好准备...不,真的:如果你刚刚学习,你无法想象使用遗留代码库是多么痛苦,这可能是比尔·盖茨的祖父写的。这些代码的编写方式通常与您习惯的代码完全不同,而且文档记录也很差,有时您想找到它的作者……唉:大型项目中的 Java 程序员的生活常常与遗留支持相关。这本书可以帮助您了解处理古代代码的技术方面,但它也可以帮助您接受自己的命运。是的,我是认真的。如果您坚定地将目光投向拥有大型项目的外包公司或产品公司,那么本书将对您很有用。

头先。设计模式(Eric Freeman、Bert Bates、Kathy Sierra、Elizabeth Robson)

原标题《Head First Design Patterns: A Brain-Friendly Guide》作者:Eric Freeman、Bert Bates、Kathy Sierra、Elisabeth Robson 适合初学者的 10 本编程书籍 - 6设计模式是那些良好形式的逻辑规则,如果您不长期研究它们,您就会想到这些规则(或不是……),如果你尽早开始研究它们,它实际上会变成新手程序员的超能力。是的,一开始尝试一个相对复杂的个人项目并尝试自己将其分解为子任务是有用的......并最终找到相同的模式。然而,工作的时候,总是没有足够的时间进行实验。当我得到实习机会时,我对模式知之甚少:在 JavaRush 学习时,我只是简单地跳过了所有这些工厂、单例、注入、依赖项,以为我会在需要的时候弄清楚它们。不过要很快搞清楚,那就是《Head First》这本书。“设计模式”帮助我解决了这个问题。它写起来很容易,充满插图和幽默……我认为“设计模式”这个主题的呈现非常重要:它可以以一种非常无聊的方式呈现,也可以像《Head First》那样呈现。对“干净代码”和/或“重构”的一个很好的补充!

计算机体系结构和通用计算机科学

对于未来的程序员来说,了解计算机体系结构、了解操作系统的结构以及数据库的结构有多重要?事实上,这些知识对你的工作没有用处。但他们一定会帮助您展示您对 IT 领域和 IT 知识的热情。最重要的是:如果您知道一切是如何运作的,它将帮助您更好地解决问题。信息100%。所以这里还有两本书可以帮助你。

代码(查尔斯·佩措尔德)

原标题《代码:计算机硬件和软件的隐藏语言》作者:Charles Petzold 适合初学者的 10 本编程书籍 - 7《代码》第一版早在 2000 年代初就已面世,但事实上它可能出现得更早或更晚 - 并且仍然具有相关性。事实上,在这本书中,计算机的操作是在非常非常低的水平上解释的,从那些零和一的工作原理开始,第一个技术示例是手电筒电路,它可以被认为是最简单的一个位计算机……不,你别以为书上的一切都很原始。事实上,恰恰相反……它本质上描述了计算机电路、命令、内存操作和操作系统。也许是读完之后我才明白了计算机是如何工作的。尽管处理器的架构和指令集发生了变化,内存带宽增加了,但本质上,计算机的工作原理是完全相同的。Java程序员需要这些知识吗?很少有人在工作中直接需要它们。但间接地,我经常在工作中得到帮助,因为我了解这一切实际上是如何运作的。

计算机科学导论(Glenn Brookshire、Dennis Brilov)

原标题《计算机科学:概述》作者是 Glen Brookshear 和 Dennis Brylow 适合初学者的 10 本编程书籍 - 8,这本书是我在大学时想到的,当时我正在学习计算机科学的基础知识。我只收到了第六版的翻译,目前是第13版。本书是美国和其他国家大学多年来教授的计算机科学基础课程。里面的材料涵盖面非常广:机器体系结构、数字系统、数据处理、操作系统、数据库构建原理、数据结构、文件结构等等。本书的所有部分并非都写得同样好。例如,我曾经对设计方法和数据库部分感到非常困惑,但数字系统、按位计算、PC体系结构和数据结构部分确实引起了我的共鸣。这本书最酷的地方是大量的按键练习。除了学生之外,这样一本书可能主要是没有受过技术教育的自学成才的人需要的,以填补空白并总体了解计算机科学。

算法和数据结构。又是一次攻击!

鉴于现代编程的高级程度,算法知识已经变得不那么重要了。现在使用所需的库就足够了,而不必绞尽脑汁思考如何最好地对数组进行排序。然而,你仍然需要在工作中绞尽脑汁,而且不止一次。还记得对新手程序员的要求中的“能够选择最佳解决方案的能力”吗?因此,无论别人怎么说,我认为良好的算法训练是寻找最佳解决方案的绝佳升级。因此,接下来的两本书就是关于他们的。关于算法。

我们正在改变算法。为程序员和好奇的 Aditya Bhargava 提供的图解指南

原标题: Grokking Algorithms:为程序员和其他好奇的人提供的图解指南 作者 Aditya Y. Bhargava 适合初学者的 10 本编程书籍 - 9作者本人在书的开头写道,他并没有立即想到算法,他试图写“Grokking Algorithms”,所以它会很容易阅读。它是为新手程序员设计的,即那些会写“hello,world”并且知道 int、string、loop、branch 和 array 是什么的人。嗯,它可以在屏幕上显示数组。所需的数学知识大约是中学6-7年级的水平,没有任何多余的装饰。这是本书的第一个重要优点。它并没有像许多有关该主题的出版物那样试图将读者想象成一名数学学生。也就是说,如果你害怕数学、算法,已经尝试学习后者但什么都不懂,那么这本书非常适合你在你自己眼中的康复。第二个积极的点是,这本书讨论了一些在实践中很可能有用的东西(理解这一点当然是正确的)。它首先解释了二分搜索和效率的本质 - 实际上是在手指上和许多图片上。第三,本书包含大量的问题和练习(代码示例是Python的,但这不是那么重要)。对于某些人来说可能是积极的,但对其他人来说可能是消极的:这本书并不假装是一本包罗万象的参考书。假设在普遍接受的研究算法中,只有两种——低效的插入算法和高效的快速排序算法。我不知道为什么作者不应该考虑其他算法,比如冒泡或合并。其实书上也提到过合并算法,但是很简单,没有分析,只是和快速排序对比。对于其他主题,一切都完全相同。有些基础知识已经涵盖得很好,但有时你确实想要更深入的延续,但根本没有。总之,这是一本非常基础的书,读完之后,您很可能会想要找到一本对所有内容都进行了更认真描述的书。比如下面这个。

Java 算法(Robert Sedgwick、Kevin Wayne)

原标题:《算法》作者:罗伯特·塞奇威克和凯文·韦恩 适合初学者的 10 本编程书籍 - 10事实上,这本书既令人着迷,又令人恐惧。至少它的页数和一定的学术性质会吓跑你。因此,如果你不倾向于它,学术界,或者对数学没有信心(高中,工程师高等数学的最简单元素),那么最好不要从这本书开始。那里没有那么多数学术语,但方法本身就预设了这样的思维。但在上一本书之后 - 为什么不呢?她会给你一个指导。第一章有些地方总结了Java的知识,定义了一些数据结构。有选择性地阅读比较好,但足够详细地研究第二章和第三章也无妨。其余的也充满了有关图形和字符串的有趣且详尽的信息。我想说,这样的事情对于塑造编程思维非常有帮助。关于演讲,感觉作者是一位老师,但习惯于与大多数有兴趣和有准备的人一起工作。所以要有耐心并阅读。还要解决问题,这里有很多问题。顺便说一下,在 Coursera 上,您可以找到由本书作者创建的算法课程。

了解你的框架

最后,还有一本书。再说一遍——有用。

春天在行动(克雷格·沃尔斯)

原标题:克雷格·沃尔斯(Craig Walls)的《春天在行动》 适合初学者的 10 本编程书籍 - 11一本非常著名的书,其封面同样著名,封面上有一个“穿裙子的男人”,但他实际上并没有穿裙子。坦率地说,仅从一本书中学习 Spring 是一项非常困难的任务,即使您尝试在实践中同时尝试所有内容。顺便说一下,读完这一章或那一章后,理解如何做到这一点可能非常困难。我在公司实习的时候就接触过这本书,这样用起来,很有帮助。而且,即使在今天,我已经成为一名程序员,我仍然不断地回归它。总之,你可以借助它的帮助对主要的Java框架有一个大概的了解。
评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION