(给机器学习算法与Python学习加星标,提升AI技能)

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

下载方式

后台回复关键词

20200518

即可获得电子版图书下载链接

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

总结:

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

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

下载方式

后台回复关键词

20200518

即可获得电子版图书下载链接

推荐阅读
太牛逼了!一位中国博士把整个CNN都给可视化了,每个细节看的清清楚楚!放弃Excel,拥抱Python!神级编辑器统一表格与Python【效率】一个堪称神器的命令行工具,GitHub标星7.5K!15 个边玩游戏边学编程的网站Python 中 3 个不可思议的返回

下载 | 5 本程序员成长必读书籍相关推荐

  1. 程序员一生必读的书籍

    程序员一生必读的书籍 软件业的特点是变化.若要提高软件开发的技能,就必须跟上技术发展的步伐.埋首醉心于项目开发与实战,固然能够锤炼自己的开发技巧,却难免受限于经验与学识.世界上并不存在速成的终南捷径, ...

  2. 程序员成长系列--应该读的通用技术书籍列表

    曾经看过一篇文章,说程序员分为5种境界,比诗人还多2重境界. 第一重,芳辰追逸趣,禁苑信多奇.在这个阶段,我们大多是还没有入门 第二重,壮志饥餐胡虏肉,笑谈渴饮匈奴血.在这个阶段,其实我们已经入门 第 ...

  3. 典型的 C++ 程序员成长经历

    From:http://blog.csdn.net/breakerzy/article/details/7399872 一个典型的 C++ 程序员成长经历: 1.  完整的学一遍 C++ 所有语言特性 ...

  4. 关于下载《Java程序员,上班那点事儿》的电子版

    关于下载<Java程序员,上班那点事儿>的电子版 关于网上目前的电子版: 电子版只有四章内容,是本书不完整内容! 目前本书没有完整版的电子版:请喜欢本书的网友不必苦苦搜索了,目前本书在网上 ...

  5. 程序员成长之旅——同步IO和异步IO(五种IO模型)

    程序员成长之旅--同步IO和异步IO(五种IO模型) 同步和异步 同步 异步 消息通知 场景比喻 阻塞和非阻塞 阻塞 非阻塞 事例 同步IO 阻塞IO 非阻塞IO 信号驱动IO 多路转接IO 异步IO ...

  6. 程序员成长之路(四)之有用的网址

    2019独角兽企业重金招聘Python工程师标准>>> 通过Java来测试JSON和Protocol Buffer的传输文件大小 http://www.jb51.net/articl ...

  7. java程序员必看书籍

    学习Java最痛苦的事情莫过于对未来职业方向的选择.尤其是选择开发Java Application还是Java Web方向,在你先定好大类后还有数不尽的小类教你无从学起. 因此,作为初学者的你必须看完 ...

  8. 6本适合初级到高级HTML5程序员阅读的书籍推荐,读完事半功倍

    随着移动互联网的日益兴起,IT行业对于前端的需求也在不断的提高,那么从前端小白修炼成为HTML5前端大神的这个过程之中,一些必备的枕边书也是必不可少的. 俗话说书籍是人类进步的阶梯,对HTML5程序员 ...

  9. 程序员入门必读 的十大编程语言你了解吗

    计算机的发展,促使了一个新的职业的出现,程序员是近些年出现的并且得到了广泛关注的一个职业,相信这也是很多莘莘学子的职业梦想.但程序员也有很多种,并不是一个程序员能够精通所有的编程语言.所谓术业有专攻, ...

最新文章

  1. python官网 中文版 新闻-小伙Python爬虫并自制新闻网站,太好玩了
  2. django Cookie,Session和自定义分页
  3. 未来的数据中心(三)
  4. PowerDesigner 手记
  5. Android MVP模式简单易懂的介绍方式 (一)
  6. 【电商系统】—项目梳理(一)
  7. 史上最强最贵 Mac Pro 诞生,iPadOS 和 iOS 分家!WWDC19 全面总结
  8. 从零开始学习ASP.NET MVC1.O (第一章)
  9. python教程简书_python基础教程
  10. zoj3829 Known Notation --- 2014 ACM-ICPC Asia Mudanjiang Regional Contest
  11. 投资为什么很难进步——越不懂 越自信︱投资道
  12. 孔浩javacript基础笔记一
  13. Visual Studio 开发者命令行找不到 ildasm命令及无法创建 CLR 项目的解决方法
  14. [渝粤题库]西北工业大学离散数学
  15. Bug.Bounty.Bootcamp:(2)值得看的一本书
  16. c语言vc是什么意思,这个VC语句是什么意思
  17. 程序员基础的硬件知识(cpu、主板、显卡、内存条等)
  18. JS逆向 --- 易盾有感滑块
  19. 用CPU-Z查看内存插槽个数与频率
  20. HackTheBox - Brainfuck Write Up

热门文章

  1. 【小嘟陪你刷题04】Java实现水花仙数、九九乘法表、金字塔
  2. AI一周热闻:12306数据泄露,嫌疑人被捕;BERT提升文档检索性能至1.5-2倍
  3. Java(老白再次入门) - 语言基础
  4. android 小视频 应用,短视频应用专题 - 只给你好看的短视频合集 - Android 应用 - 【最美应用】...
  5. 软件开发向大数据开发过渡_如何将职业过渡到Web开发
  6. 什么是软件开发领域的 obsolete 或者 deprecated 含义
  7. 《PTA——拼题A》之第1012题
  8. 百度推广优化(百度推广优化技巧)
  9. win10性能选项让计算机,一招开启win10“最强”模式,让你的电脑性能急速飙升!...
  10. y410p linux 网卡,关于Y400、Y500、Y410P、Y510P无线网卡连接在Win8下经常受限的解决方法...