StackOverflow 创始人:程序员必读的15本经典书籍
Posted 一去丶二三里
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了StackOverflow 创始人:程序员必读的15本经典书籍相关的知识,希望对你有一定的参考价值。
星标/置顶 公众号👇,硬核文章第一时间送达!
链接 | https://blog.codinghorror.com/recommended-reading-for-developers/
这份读书清单已经很久没更新了,至于为什么阅读列表为何很少更新?Stack overflow 创始人Jeff Atwood表示这10年里,计算机发展迅猛,带来的变化也是翻天覆地,但人却没有改变。
为了开发出更好的软件,你需要了解人们的工作方式,这也正是他推荐的书籍时所注重的地方。以下就是Jeff Atwood就是推荐的书单内容:
1、《代码大全2》
出自Steve McConnell之手的《代码大全2》就像在为为软件开发人员诉说编程的乐趣。能读的下去这本书的人,证明他喜欢目前的工作,对待工作认真负责,并且想不断提升自己。在书中Steve指出,普通程序员每年阅读的技术书不到一本。选择阅读这本书,就已经证明你与90%的程序员不一样了。
我非常喜欢这本书,以至于这个网站的标题(Coding horror)就是从这本书中衍生出来的 - 书中的编程反例都标有“Coding horror”图标。没有什么比Coding horror更有趣了 - 直到有一天你自己也碰上了,然后你就会觉得突然间不再那么有趣了。使这本书成为您阅读的第一本书,而且这本书绝对值得让你推荐给身边的任何一个同事。
2、《人月神话》
这本书可以说是我们这个领域唯一的经典书籍了,假如你还没读过它,那真是太可惜了
我敢说任何一个拿起这本书的程序员都没有发现关于那个早就不使用操作系统的故事以及它的开发团队之间惊人的相关性。这本已经出版25年的书大胆地说明了一个观点:电脑可能会改变,但人却不会改变。
阅读这本经典作品肯定比你沉迷于最新的千页技术书籍更有价值。
3、《点石成金 : 访客至上的网页设计秘笈》
关于我所阅读的关于可用性中最好的一本书。书名说“网页的可用性”,但不要被它的字面意思所误导了。Steve Krug在书中涵盖了所有重要的可用性概念,而“网页的可用性”只是其中的一部分。书中的内容也十分有趣,如果只想阅读一本有关可用性的书籍,那么选择它准没错了。它里面包含了很多重要的知识点,并以简洁,通俗易懂的文字呈现。适用于任何读者:技术,非技术,用户,开发人员,经理等。
呃。。。是不是发现自己从来没有开过这样的会议。顺便提一下,解决这个问题的办法是进行一次快速的可用性测试。请想象一下:根据实际数据来得出事实依据,而不是基于一场为了辩论来让其他人认同你。这难道革命性转变么?
4、《快速软件开发》
这本书的全称是:《快速软件开发:掌控软件开发进度》,这个标题啰嗦而且含糊不清,更重要的是还用词不当。
《快速软件开发》并非是一本关于快速开发的书。书中围绕软件开发失败这一现实问题展开。绝大多数的软件开发项目都会失败:有时是没能按时上线,有时是开发出来的项目不合格,甚至有些时候都没办法完成。丝毫不用怀疑,事实就是如此。说难听了就是:除非你的团队非常厉害,能够避免失败,否则根本不用提成功了。虽然这听起来可能会令人沮丧——好吧,这确实令人沮丧——但你仍然会想要去读一读这本书。
为什么呢?因为只要你不重复犯曾经犯过的错,不走别人走过的弯路,你就已经成功一半了,本书提供的示例就是为了表明,犯错并非坏事,只要犯的这些错都是之前没有出现过的,如果你犯了同样的老错误,那么,表明你在一开始就已经失败了,所以,从现在开始去发现那些你可能正在犯的错误吧
对我们这一行来讲,唯一不变的就是一直在变。所以接受这种变化并尝试不同的“快速”开发技术是很自然的一件事。但是这句话反过来说就不对了。我们不能认为自1970年以来,所有旧的软件开发课程与我们今天的技术相比已经是过时了的或是没用的了。老生常谈的一件事是:计算机不断改变;人却没有。McConnell 曾说过:“粉刷之前请先阅读油漆桶上的说明文字。”意思就是在你准备开始做一件事之前,至少要对于哪些可行哪些不可行有个认识。虽然这听上去并没有什么不妥,但是当你读了这本书之后,你才会意识到,我们很少会真正去这么做。
5、《人件》
如果你曾经看过全明星运动队,因为教练原因导致表现不佳的话,那么你会很喜欢这本书。当团队中人都不能相互交谈,或者在某件事情达成一致时,无论你得到多少“编程之星”都于事无补。而且,无论多聪明的开发者,都不能在被干扰的情况下依然高校的工作,开发人员本身并不知道他们的社交技能,但颇为讽刺的是:项目的成功与否正取决于此。如果你想真的在实践中成为“团队领导者”而不止是名义上的,那么,你需要拿起这本书。
虽然《人件》有许多完美的观点,但里面描绘的这种雇员管理对大多数公司来说都是纯粹的幻想。但至少你可以你的工作环境或你的团队在什么时候出现了问题 - 更重要的是,你知道该如何做。
6、《设计心理学》
开发软件可能是一件令人极度沮丧的事,因为很多的软件都可能会出错。我们所做的很多事情都是防御性的,比如试图预测会出现哪些问题。这是十分费脑的,而且最终还可能表明是错误的。我有时会和非技术人员这样解释:就好比制造一个带有一千个移动部件的手表,所有这些部件都有可能在无意中就坏掉了。这真是个悲伤的故事。
软件开发肯定是困难的,但设计也很困难。设计的微妙之处在于它可以延伸到你能接触到的每一个事物,无论是一些最新最热门的SQL引擎,还是一只普通的鞋子。这本书都会让你对“恶魔藏在细节里”这句话有一个新的认识。如果设计软件并不是我们认为的那么简单的时候,那么也许是时候该让自己休息一下了。
7、《About Face:交互设计精髓》
Visual Basic的父亲 Alan Cooper 是可用性领域的教父。我已经拥有这本书的多个版本(这是第四版),这本书越修订越好,并且有越来越多的合作者像本书融入了不同的观点,这是十分罕见的
《About Face》有很多适用于移动端和Web应用的通用指南。在用于说明的GUI问题中 - 以旧的Windows 95用户界面的例子 - 将该系统已经改进的地方(在进行对话框选择前使用视觉样例进行展示)和还没有改进的部分(使用愚蠢的模态框来停止正在运行的进程)进行对比是很有趣的一件事。
这是一本非常有用的书。我已经将本书作为我所从事项目的指南。
8、《编程珠玑》
推荐《编程珠玑》这本书我有点犹豫,因为它涵盖了很多底层的编码技术,但本书中嵌入了足够的软件开发的“珠玑”,使它值得任何开发人员花时间去阅读。任何包含此图的书
..的确是物有所值。利用TRS-80与DEC Alpha来说明48n与n 3算法的区别,所以真的没有比这个更合适的了。能和大神级别的程序员共事一年固然美好,如果不行读《编程珠玑》也是不错的选择。这本书将很多高级工程师的智慧提炼成简洁的语言和易懂的文字。
说实在的:有些章节可以把它被忽略。例如,我无法理解本书的第11,13和14章中居然在介绍如何实现排序,堆或哈希算法。但是,对于每一本教科书繁琐的练习,都有真实可行的建议。你只需浏览本书,忽略代码部分。但第8章“粗略估算”是至关重要的,可能是我看到过的最佳评估方法。这张还解释了一些经常出现的面试问题。
你可以现在网上阅读这本书的一些样章。我最近使用了书中“粗略估算”这一章节的内容来说明马尔可夫链生成人造数据以填充空数据库
9、《程序员修炼之道》
本书时常会让我想起《编程珠玑》,但相比这本书还更好一点,因为它不太关注代码。作者把在现实工作中发现所有实用方法归结为一本书。并非所有的这些方法都是与技术上的编程相关。例如,问自己“我为什么要这样做?这样做值得吗?” 跳出固有思维方式; 并把这种思想融入到你的日常工作中。这就是《程序员修炼之道》为什么会成为如此出色的书的原因。
如果您想了解更多有关该书的内容,我创建了一个html版本的插页参考卡片,可以很好地概览这本书的内容。
10、《Web 可用性设计》
Jakob Neilsen 以其创建的可用性网站而闻名,1989年,当时他的第一本书出版,这时就已是一名可用性专家了。《Web 可用性设计》显然是一个专注于Web可用性入门的书,所以它与面向GUI的Cooper书籍有点不同。
11、《定量信息的视觉显示》
12、《视觉解释:图像和数量,证据与线索》
13、《想象信息》
14、《美丽的证据》
信息很美。设计良好的GUI也是如此。除非你是完美主义者(或者是受虐狂,我想),否则你不需要拥有系列中全套的四本书,但前两个是必不可少的。
Chris Sells于2004年6月出席的Tufte研讨会后,对Tufte书籍有了一些有趣的见解。
15、《正则表达式经典实例》
众所周知,UNIX十分复杂而且难以理解。正则表达式也是如此。
我可能是“Keep It Simple Stupid”原则的忠实遵循者,但我正在为正则表达式做一个特例。若能正确书写正则表达式,那么她们会为你在字符串处理上节省大量时间,我从来没有遇到一个正则表达式不能派上用场的项目。
一旦深入了解正则表达式,你可能会因为拥有惊人的力量和潜力而沉迷于此,这也就是Perl的由来。请记住,绝对权力会导致绝对的腐败。但它也是绝对的好用。
往期推荐
关注公众号「高效程序员」👇,一起优秀!
回复 “入群” 进技术交流群,回复 “1024” 获取海量学习资源。
以上是关于StackOverflow 创始人:程序员必读的15本经典书籍的主要内容,如果未能解决你的问题,请参考以下文章