新手程序员成长之路的五本必读书籍(附资源下载)

640?wx_fmt=jpeg

全文共3351字,预计学习时长7分钟


640?wx_fmt=png
图片来自Pixabay,IvanPais

书籍可以清晰而有条理地陈诉观点,纸张上的笔墨也会给人一种不慌不忙的感觉。不过,科技类书籍存在一些严重的问题:它们几乎很快就过时了。由于缺乏交互性,此类书籍无法实时展示其概念(或让读者玩味这些概念)。它们的带宽相对较低——例如,需要将长代码示例分解为很小的块,而阅读这些书便成了件苦差事。

部分科技书籍多年来不断应对挑战,保持实用性。这些书籍不再传授最新编程框架的技术细节,而是阐明软件开发理念,传授最佳编程技术与设计技术,向你介绍软件行业的工作感受,告诉你成为一名程序员意味着什么。本文将列举五本相关书籍供你学习参考。

公众号后台回复“20191005”即可获得电子版图书下载链接。

640?wx_fmt=jpeg

1. 《程序员修炼之道》(The Pragmatic Programmer)

第一版发行后,一本与编程有关的书籍可以在20年后继续保持实用性吗?可以,如果这本书具有代码编写技术的永恒智慧的话。

640?wx_fmt=png

《程序员修炼之道》能启发程序员,更为深入地思考如何应对挑战、与其他人合作以及成为效率更高的程序员。

书中解释了如何对抗软件衰减——使每个大项目中的代码逐渐陷入混乱的强大力量。该书简单介绍了单元测试和重构,并对调试(不要惊慌!)做出合理建议,可有效解决问题,而不会伤害任何程序员自尊。《程序员修炼之道》可帮助你学习一些很酷的程序员术语,比如“正交性”。

该书大约有300页,看起来似乎并不长,但内容紧凑。幸运的是,你无需从头读到尾。每次打开书,浅尝一下,便可能会得到一些实用的建议。

总结:除了《程序员修炼之道》之外,还有一小部分关于代码的经典书籍每个人都喜欢推荐(或至少在桌上摆放着)。其中一本是比尔盖茨最喜欢的睡前读本《代码大全》。同《程序员修炼之道》一样,《代码大全》提供了宝贵建议,但篇幅更长,内容有点枯燥,读起来更像是一本教科书。《代码整洁之道》也是一本质量较高的书,书中部分内容与其他书有所重合,虽然初读时会感受到时间的痕迹,以及其对Java的密切关注,但绝对值得一读。

2. 《编码的奥秘》(Code: The Hidden Language of Computer Hardware and Software)

如果你写了一本让程序员和对编程好奇的外行人同样感兴趣的书会怎么样?《编码的奥秘》就是这样一本书 ——对计算机创造奇迹的方式展开探索。

640?wx_fmt=png

没有亲自读过,就很难理解《编码的奥秘》这本书。我们都读过有关计算机如何运作的书籍,通常伴随一些图表和一行行1和0在内的代码,但这本书并非如此。《编码的奥秘》深入研究计算,从莫尔斯代码开始,最后到构成CPU原理图。该书读起来像一本小说——虽然旁白非常详细。

《编码的奥秘》的主题为在电子产品中进行信息编码的方式。很多时候,该书险些成为多余但有趣的历史教材。但拉开帷幕后,你会突然发现该书与编码息息相关,在阅读过程中一直都在学习现代计算机。《编码的奥秘》的作者是编码界的传奇人物Charles Petzold,也是向倍感沮丧的程序员解释Windows API的首批开拓者之一。(“在Petzold中查找”在当时成为口头禅。)几十年后,他对WPF中的3D编程展开了相似的研究。WPF颇具吸引力,但几乎每个人都忽略了其棘手程度。

底线是什么?如果你对电子产品内部如何运行,以及代码为何这样编写颇为好奇,那么《编码的奥秘》这本书就可以帮你解开谜团。

3. 《点石成金》(Don’t Make Me Think)

这本书讲述了计算机编程的真相。无论是否愿意,每个程序员或早或晚都会设计或运行用户界面。虽然程序员也是用户,即便创建一个有逻辑、可用的界面是一项简单任务,但程序员们的首次尝试可能并不尽如人意。

设计问题就像冰山一样——从顶上看起来很小,但底部出人意料地巨大与危险。许多程序员讨厌设计,因为他们不能使用自身独特的技能,一旦决策失误,呈现出的结果就会令人不适。这就是《点石成金》成为广受欢迎的指南的原因。

640?wx_fmt=png

《点石成金》一书对优秀设计展开探索。书中多是网站示例,但其建议适用于任何类型的软件——或人类制造的任何类型的产品。《点石成金》的真正诀窍在于激活你已有的、内心深处的那些知识,并将其付诸实践。学着像可用性方面的专家一样思考,是一件很有趣的事。事实上,超级有趣。而《点石成金》这本书是其中最为轻松、有趣的一本。

4. 《编程人生》(Coders At Work)

《编程人生》旨在传达的观点就是:谈论代码很重要,与程序员交谈也很重要。该书记录了对15名认真出色的程序员展开访谈的内容。

640?wx_fmt=png

大多数在职程序员可以分享一些有用的建议。但是《编程人生》能让你与JavaScript的创造者Brendan Eich、Unix的设计师Ken Thompson这样杰出的程序员交流,就像你正在与这个星球上最成功的一些程序员展开非正式的对话。你将发现他们如何应对挑战、解决问题、编写代码以及对未来展开预测。

看看他们会在哪些方面产生分歧——有时颇具戏剧性,也很有趣。例如,Dan Ingalls谈到当他在面对新挑战时如何立即开始编码,而Joshua Block则在编写单行代码前仔细绘制API。Donald Knuth更是厉害,他描述了自己在使用计算机前是如何用铅笔写出完整的排版系统TeX。

《编程人生》每一章都以访谈形式撰写,感觉更像是一系列杂志文章,而非一本关于编程理论的重要书籍。但是,花在这些程序员身上的时间越多,就越能了解在众多不同领域工作的程序员的感受。

5. 《现实世界漏洞追踪》(Real-World Bug Hunting)

不对安全性的某些方面进行深入研究,就无法列出完整的编程书籍清单。这一方面包含很多好的主题。每个程序员都可从中受益,学习加密基础、黑客入侵网络的方式以及有助于代码防御攻击的最佳实践。但如果想要覆盖很多内容,而不用陷入过多理论,那么《现实世界漏洞追踪》就是一个不错的选择。

640?wx_fmt=png

《现实世界漏洞追踪》一书真实描述了坏人攻击程序的最常见方式。阅读后,您会发现验证效果不佳的输入可以摧毁数据库或破坏网站,恶意网站会传染健康网站,黑客能够使用泄漏内存控制计算机。有些读者可能觉得这些场景的技术性太强,但这些都是黑客攻击的事实——现实世界是最好的老师。

总结:

每个程序员都应该至少学些密码学——有关安全通信、身份验证的科学。关于这个主题的书籍有很多,有些历史悠久,有些是充满数学元素的教科书,令人生畏。学习初期,要轻松一点,建议阅读带插图的《密码学漫画教程》。更经典的方法是阅读由至少三位以上世界领先的密码学家撰写的、具有开创性的《密码学设计》。如果想休息一下,真心推荐《杜鹃蛋》一书,书中讲述了天文学书呆子(偶然间成为计算机专家)Clifford Stoll和他在伯克利实验室检测到的一名俄罗斯黑客的故事,读起来令人欲罢不能。这本书也是最适合夏季带去海滩阅读的。

作为一名程序员,总会觉得自己离身后即将到来的变革与新技术海啸仅有半步之遥。但每隔一段时间暂停一下,从不断追赶新框架、新语言中休息片刻也很重要。阅读任意一本上述书籍,将收获与软件开发技术和职业相关的更为开阔的视角,进而提升编写代码的能力。

640?wx_fmt=jpeg

推荐阅读专题

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=jpeg

留言 点赞 发个朋友圈

我们一起分享AI学习与发展的干货

编译组:梁晶晶、杨敏迎
相关链接:
https://medium.com/young-coder/five-books-that-can-help-you-become-a-better-programmer-38be6cbd7b43

如需转载,请后台留言,遵守转载规范

推荐文章阅读

ACL2018论文集50篇解读

EMNLP2017论文集28篇论文解读

2018年AI三大顶会中国学术成果全链接

ACL2017 论文集:34篇解读干货全在这里

10篇AAAI2017经典论文回顾

长按识别二维码可添加关注

读芯君爱你

640?wx_fmt=gif

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/49245.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

程序员必读的十四本经典书籍

1、《代码大全》 史蒂夫迈克康奈尔 “优秀的编程实践的百科全书,《代码大全》注重个人技术,其中所有东西加起来, 就是我们本能所说的“编写整洁的代码”。这本书有50页在谈论代码布局。” —— Joel Spolsky Steve McConnell的原作《代码大全…

五本计算机必读书籍总结

一、计算机组成原理 思维导图: 1、计算机系统概述 主要讲授信息的数字化表示、存储程序与冯诺依曼体制;计算机的诞生和发展;计算机系统的层次结构和硬件系统组织;计算机的主要性能指标。 2、数据的表示、运算与校验 主要讲授数值…

程序员必读书籍及导读指南

最近在网上看了一个非常好的帖子《程序员一生必读的书》(我的腾讯微博上有分享该贴子链接,有兴趣就点击进去看看吧),该贴的第一个张图片是一个雷达图, 这张图是由ThoughtWorks(全球软件设计与定制领域的领袖…

强烈推荐10本程序员必读的书

经常有读者私下问我,能否推荐几本书,以便空闲的时间读一读。于是我跑去自己的书架上筛选了 10 本我最喜欢的书,你可以挑选感兴趣的来读一读。 01、《代码整洁之道》 我可以这么肯定地说:《代码整洁之道》值得所有的程序员读一读…

open AI API使用经验

open AI API 文章目录 open AI API引言概念TokenspromptsModels 使用流程1.登录open AI 账号获得API keys2.接入环境3.API用例(1)Completion(2)ChatCompletion(3)Images(4)Edit 引言…

卖AI数字人代理是小风口吗?

我是卢松松,点点上面的头像,欢迎关注我哦! 2023年第一个小风口是:以ChatGPT为代表的人工智能AI。第二个创业小风口则是:数字人直播带货。注意我说的是数字人代理。今天的卢松松的文章就扯一扯数字人直播。 最近龚文…

马车拉的再好,也该摸摸方向盘了!近500家美国企业用ChatGPT取代员工

Datawhale分享 最新:GPT影响,来源:量子位 自从ChatGPT掀起浪潮,不少人都在担心AI快要抢人类饭碗了。 据就业服务平台Resume Builder调查统计,在1000多家受访美国企业中,用ChatGPT取代部分员工的&#xff0…

机场云商sign解析

这里直接进入算法查找主题,至于如何逆向小程序可以在GitHub上搜索wxunpack得知。 这里我就不重复展示抓包过程,抓包里面我们看到header里有nonceStr、sign 通过关键字直接搜索小程序源码得到关键部分: if ("POST" t) y.sign r(d,…

chatgpt赋能python:Python屏蔽一行代码的方法详解

Python屏蔽一行代码的方法详解 Python作为一种高级编程语言,在开发过程中经常需要注释掉一行或多行代码,以便调试或跳过特定的代码段。本文将介绍Python屏蔽一行代码的方法。 方法一:用#将代码注释掉 在Python中,用#可以快速注…

网页源代码检查时隐藏 WebSocket 的后端地址

背景 近期在自研如何通过 OpenAI 实现 与ChatGPT 官网一样的聊天对话效果。 用到了 html5websocketpython 三项技术 , 于是用一天时间自学了一下这方面技术。 当实现了功能之后,就得考虑安全问题: 在用 html5 实现与 websocket 通讯时,如何保…

你是不是在担心,ChatGPT写出的文字被其它AI识别?

文 / 高扬(微信公众号:量子论) 最近不少人问我一个道听途说的事情:听说已经有AI工具能够识别是不是ChatGPT写的文字了? 看来必要写篇文章,通过摆事实,为大家压压惊。 在赌场里,能抓老千的人一定…

uniapp判断是否登录跳转处理

问题 uniapp中,我们的页面是在pages.json里面配置的,第一个页面是我们的启动页, 假设我们第一个启动页设置成登录页,那我们每次是不是每次检测token,都会监测登录页,然后才会跳转至想要的页面 假设我们第一…

Qt中登录界面跳转到主界面的两种方法

Qt中登录界面跳转到主界面的两种方法 1 登录界面跳转2 跳转的两种方式2.1 利用QDialog::Accepted2.2 利用QObject::connect( ) 1 登录界面跳转 登录界面跳转,应该是项目的常见需求了。 输入账号、密码后,点击登录按钮跳转。 2 跳转的两种方式 这里博…

登录页面跳转

登录页面跳转 开发工具与关键技术:VS、MVC作者:黎官凤撰写时间:2019/05/10在做项目的时候有很多的项目都是需要实现登录的,在登录页面上填写完整各种登录信息然后点击登录按钮跳转到主页面从而实现到你登录进去要实现的功能。就像…

AndroidStudio创建手机登录注册跳转界面

一、新建一个空的LoginActivity 二、在activity.login.xml中进行布局设计 (一)那么如何打开呢这个.xml文件呢? 新建activity后里面会有初始代码,按住Ctrl键点击activity.login就可以进入xml文件了。 (二)…

如何用Android Studio实现登录跳转

前言 这个项目是我很早的时候写的,现在将其发上来供大家参考。可能存在一些不规范的问题,如有不对,欢迎批评指正。首先需要安装配置好Java开发环境,并选择任意一款Android开发工具进行编程,推荐下载安装Android Studi…

关于swagger突然跳转登录页面

今天建了一个初始项目,引入swagger之后,启动调用,却总跳转到一个登录页面,手足无措 最后原因是导入了security的包,导致权限安全拦截 注释后运行成功,如果没有成功看一下dependencies 里面是否还存在secur…

Android--使用显式Intent,实现从登录界面到注册界面的跳转

//Activity_abaka.xml --------------注册界面<?xml version"1.0" encoding"utf-8"?><RelativeLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:app"http://schemas.android.com/apk/res-auto"xml…

HTML实现登录后跳转到指定页面,不回退

最近开发页面&#xff0c;需要实现登录功能&#xff0c;成功后跳转到指定页面&#xff0c;之前尝试了好几种页面被跳转方法&#xff0c;但是都失败了&#xff0c;好在最终成功跳转&#xff0c;且浏览器不会后退&#xff0c;所以来记录一下&#xff1a; 最开始我使用的是window.…

登录页面,登录后跳转不成功

一、登录后跳转不成功&#xff0c;原因未知 二、分析①&#xff1a;404错误&#xff1a;用户操作资源不存在 分析②&#xff1a; action跳转地址为&#xff1a;http:/localhost:80/day0901/login 网页中登录后实际跳转地址为&#xff1a;http://localhost:8005/localho…