创业者必读

Slicing Pie: Funding Your Company Without Funds31We80f2z1L._SX310_BO1,204,203,200_

You and a partner go into business together and split the equity 50/50. You do all the work and your partner slacks off. He owns half your business- now what?

Slicing Pie outlines a process for calculating exactly the right number of shares each founder or employee in an early stage company deserves.

You will learn:

  • How to value the time and resources an individual brings to the company relative to the contributions of others
  • The right way to value intangible things like ideas and relationships
  • What to do when a founder leaves your company
  • How to handle equity when you have to fire someone
  • Important issues to discuss with your lawyer
  • Much more

Research shows that dynamic equity split models, like the one outlined in Slicing Pie, is the best way to avoid conflicts as the company grows.

The new and improved Version 2.3 contains updated information about legal issues, idea valuation, retrofitting and much more!

The Founder’s Dilemmas: Anticipating and Avoiding the Pitfalls That Can Sink a Startup (The Kauffman Foundation Series on Innovation and  41qyfyCw3hL._SX329_BO1,204,203,200_Entrepreneurship)

Often downplayed in the excitement of starting up a new business venture is one of the most important decisions entrepreneurs will face: should they go it alone, or bring in cofounders, hires, and investors to help build the business? More than just financial rewards are at stake. Friendships and relationships can suffer. Bad decisions at the inception of a promising venture lay the foundations for its eventual ruin. The Founder’s Dilemmas is the first book to examine the early decisions by entrepreneurs that can make or break a startup and its team. Drawing on a decade of research, Noam Wasserman reveals the common pitfalls founders face and how to avoid them. He looks at whether it is a good idea to cofound with friends or relatives, how and when to split the equity within the founding team, and how to recognize when a successful founder-CEO should exit or be fired. Wasserman explains how to anticipate, avoid, or recover from disastrous mistakes that can splinter a founding team, strip founders of control, and leave founders without a financial payoff for their hard work and innovative ideas. He highlights the need at each step to strike a careful balance between controlling the startup and attracting the best resources to grow it, and demonstrates why the easy short-term choice is often the most perilous in the long term. The Founder’s Dilemmas draws on the inside stories of founders like Evan Williams of Twitter and Tim Westergren of Pandora, while mining quantitative data on almost ten thousand founders. People problems are the leading cause of failure in startups. This book offers solutions.

Venture Deals: Be Smarter Than Your Lawyer and Venture Capitalist51p0oeLn-PL._SX337_BO1,204,203,200_

As each new generation of entrepreneurs emerges, there is a renewed interest in how venture capital deals come together. Yet there is little reliable information focused on venture capital deals. Nobody understands this better than authors Brad Feld and Jason Mendelson. For more than twenty years, they’ve been involved in hundreds of venture capital financings, and now, with the Second Edition of Venture Deals, they continue to share their experiences in this field with you.

Engaging and informative, this reliable resource skillfully outlines the essential elements of the venture capital term sheet–from terms related to economics to terms related to control. It strives to give a balanced view of the particular terms along with the strategies to getting to a fair deal. In addition to examining the nuts and bolts of the term sheet, Venture Deals, Second Edition also introduces you to the various participants in the process and discusses how fundraising works.

  • Fully updated to reflect the intricacies of startups and entrepreneurship in today’s dynamic economic environment
  • Offers valuable insights into venture capital deal structure and strategies
  • Brings a level of transparency to a process that is rarely well understood

Whether you’re an experienced or aspiring entrepreneur, venture capitalist, or lawyer who partakes in these particular types of deals, you will benefit from the insights found throughout this new book.

数据狂人必备的10本全球畅销书

2016-05-13 丑灿 大数据技术

来自:化学数据联盟

对于一位数据科学的狂热粉丝而言,可供选择阅读的书籍内容很多,包括大数据、机器学习、数据科学以及数据挖掘等等。除了这些技术范围内的书籍之外,也有很多工具类和语言类的书籍,比如Hadoop、Spark、Python和R语言等。关于数据的书籍和专题时常更新,所以只有你掌握了最新的信息才可以让你掌握这个领域内最先进的技术和技能。幸运的是(或者也可以称之为不幸?)关于数据科学与技术领域的各种专题从来不会缺少响应的书籍,所以你大可放心随便选取。

和数据有关的数据有很多具体的类目,而且每种类目都有很多畅销书列表可供你参考。实际上我们最近为读者列举了很多书籍列表,比如关于数据挖掘、数据库与大数据、统计学、AI和机器学习以及神经网络。但是以上这些枚举的列表都是根据Amazon书籍畅销榜的比较狭隘的分类得出的推荐结论,而且没有这些书籍缺少编辑决定权或者没有考虑到内容是否可以免费获取以及是否有电子书的格式。

首先,让我们把一个问题弄清楚:本文的标题有些误导性。为数据狂人(或者专业人员)推荐的必备书籍列表中的内容比较泛泛,我们向读者推荐的这10种类别的书籍当中,每一种类别的书籍内容都是与付费资源和免费资源有关的畅销书籍。尽管我们的工作内容涉及到的数据通道数量有限,但是我们通常情况下会想主动去了解比现有数据通道更加庞大的数量,你的初衷可能是为了工作的实践操作也可能是出于兴趣的目的。

所以,一位Hadoop专业人士可能不会对深度学习进行更加专业水准的洞察,他们只不过是对某些专题感兴趣。这篇文章可以让读者巩固自己的兴趣,并为那些想拓宽个人知识层面的数据狂人提供具体的建议。

需要大家注意的是,这些数据类目所涉及的内容有所重叠,这种情况无法避免。通常情况下书籍内容所专注的领域决定了他属于哪个类目。

01.数据科学DISCOVERY

畅销付费书籍推荐:

Data Science for Business

《商业数据科学-关于数据挖掘和数据分析思维你需要知道的一切》

当你尝试学习新的领域的时候,最常见的难题就是找到一本内容深度正合适的书籍。读者要么因为内容过于简单或者内容过于说教的学术性质而对买到的书籍“始乱终弃”,尽管书籍内容具有权威性和综合性,但是最终还是被读者放置于书架之上与尘埃为伴。但是《商业数据科学》这本书却一针见血,恰到好处。

——来自Amazon用户m I的读后感


畅销免费书籍推荐:

The Art of Data Science

《数据科学的艺术之美》

这本书用通俗易懂的词汇向读者描述了分析数据的具体过程。本书的作者不仅在管理数据分析方面拥有丰富经验,并且还能够指导团队进行数据分析。这本书集成了他们所有关于数据分析经验的精华,并通过较强的可应用性向数据科学的专业人士和管理者介绍了他们的经验。

——来自官方网站的书评


02.大数据DISCOVERY

畅销付费书籍推荐:

《大数据:可扩展的实时数据系统的原则和最佳实践》

Big Data:Principles and Best Practices of Scalable Realtime Data Systems

我几乎很少能有幸遇见这样一本优质的书籍。这本书对于数据建模、数据分析、数据处理需求分析以及数据架构和储存实施问题(还同时稍带了传动的数据库概念的介绍)的重要性进行了详尽而周全的讨论。这本书向广大读者传递了新鲜的整体解决方案。

——来自Amazon用户Kirk D. Borne的读后感


畅销免费书籍:

《大数据即刻出发:2015版》

 Big Data Now: 2015 Edition

在O’Reilly发布一年一度的《大数据即刻出发》年度报告的四年时间内,大数据领域已经从呱呱坠地的婴儿成长为年轻气盛的青少年。数据已经成为一些行业的领军人,而在其他行里中数据已经成为创新的驱动力。那些使用数据极其分析来制定决策的公司正在突飞猛进的超越同行的竞争对手。

——来自官方网站的书评


03.Apache HadoopDISCOVERY

畅销付费书籍推荐:

《Hadoop:通用指南》

Hadoop: The Definitive Guide

我很欣赏的一点就是这本书对你所需要了解的Hadoop设计、执行以及日常运行以及与之相关的各种技术,不仅涵盖了高层次的概念并且对技术细节的解释也非常接地气。

——来自Amazon用户AI Gordon的读后感


畅销免费书籍推荐:

Hadoop Explained

Hadoop对于那些建造在数据基础上的世界而言是至关重要的一种技术工具。在这本书中你可以发现很多有用的指导性意见,你可以发现他处理大数据挑战的手段的发展和进步。

——来自官方网站的书评


04.Apache SparkDISCOVERY

畅销付费书籍推荐:

《学习Spark》

 Learning Spark

互联网上可以获取的信息非常棒,但是这本书把大部分这些信息整合到了一处。如果你想学着像一名Spark编程人员一样思考问题,而不是单纯的像程序员一样思考问题,那么从这本书开始,作为Spark用户的你,你的思维方式即将开始发生改变。

——来自Amazon用户BrianCastelli的读后感


畅销免费书籍推荐:

《掌握Apache Spark》

Mastering Apache Spark

这本书是我们收集关于使用Apache Spark的各种具体细节的最后一块终极瑰宝。

­——来自官方网站的书评


05.机器学习理论DISCOVERY

畅销付费书籍推荐:

《模式识别与机器学习》

Pattern Recognition and MachineLearning (Information Science and Statistics)

该书的作者为一名专家,因为它可以通过机器学习算法背后隐含的复杂数学体系向读者提供独一无二的见解和领悟。我本人已经从事神经元网络方面的工作很长时间了,并且发表过线性代数、概率和回归分析方面的论文,我发现这本书中的确可以为你找到更多的启发。

——来自Amazon用户Sidhant的读后感


畅销免费书籍推荐:

《统计学习基础》

Elements of Statistical Learning

好消息来了,这将是全世界你读到的一本最重要的书籍。这本书将每一件重要的内容绑定在一起。只在此书,别无它有。

——来自Amazon用户Enceladus Transit的读后感


06.实用机器学习技术DISCOVERY

畅销付费书籍推荐:

《Python机器学习技术》

Python MachineLearning

即使对于像我这样一个机器学习技术新手来说,这本书也相当了不起。在第一次读这本书的时候,我的第一感觉就是无论从广度还是从深度,这本书将理论和实践完整的融合到了一起。

——来自Amazon用户Brian M. Thomas的读后感


畅销免费书籍推荐:

《统计学习在R语言中的应用介绍》

An Introduction to StatisticalLearning with Applications in R

这本书介绍了统计学习的基本方法。这本书主要为非数学科学专业的本科生、研究生以及博士生准备。这本书还包含大量的R实验研究,并详细的解释如何执行各种方法。对于有实践需求的数据科学家而言,这本书的确很有价值。

——来自官网的书评


07.深度学习DISCOVERY

由于目前关于深度学习优质的付费书籍资源非常少,所以这里向大家推荐两本畅销的免费书籍:

畅销免费书籍推荐第一名:

《神经网络与深度学习》

Neural Networks and Deep Learning

这是一本在线免费书籍,这本书可以教会你:

  • 一个绚烂的受生物学启发得到的程序设计范例,可以让计算机从所观察到的数据进行相应内容的学习
  • 深度学习,神经网络中强大的学习技术

——来自官网的书评


畅销免费书籍推荐第二名:

《深度学习》

Deep Learning

这本由Ian Goodfellow,、Yoshua Bengio和Aaron Courville合著的书籍正在筹备阶段,有可能是未来最佳的关于深度学习的书籍。这本书的开发版每月都在更新,在最终出版的时候读者可以免费获取。


08.数据挖掘DISCOVERY

畅销付费书籍推荐:

《据挖掘:概念与技术,第三版(摩根考夫曼数据管理系统系列)》

Data Mining:Concepts and Techniques, Third Edition

数据挖掘是对这个领域的综合性概览,我认为这本书是数据挖掘专业毕业生的绝佳之选,或者也可以做为一本参考书来使用。该书以技术为焦点(比如如何分析数据,包括准备),而且这本书包括了该领域内涉及数据存储和预处理在内的所有主要专题。然而这本书真的是非常好的方法分类资源,在第二章你可以发现非常强大的聚合分析的方法。

——来自Amazon用户SusanKatz的读后感


畅销免费书籍这本书推荐:

《巨型数据库的挖掘》

Mining of Massive Datasets

这本书的设计是在没有正式先决条件的本科计算机科学水平基础上进行。为了满足读者的进一步学习,很多章节都从读者参考的方式进行补充。

——来自官网的书评


09.SQLDISCOVERY

畅销付费书籍推荐:

《SQL 第二版》

Learning SQL,Second Edition

如果你正在编写任何种类的数据库驱动代码并且你认为你不需要懂SQL,你需要读这本书。之后你会发现你需要懂得SQL并且这本书可以很好地辅导你。

——来自Amazon用户Jack D. Herrington的读后感


畅销免费书籍推荐:

《SQL的艰难学习之旅》

Learn SQL The Hard Way

这本书可以教会你80%你所需要使用的SQL语言,同时会将数据建模的理论混杂在其中进行讲解。如果你还在因为无法了解SQL而摸索如何建立网站。桌面系统或者移动应用的话,那么这本书就是为你准备的。这本对那些之前不懂数据库和编程,但是知道至少一种计算机编程语言的人有很大的帮助。

——来自官网的书评

10.数据科学统计学DISCOVERY

畅销付费书籍推荐:

《用白话文解释何为统计学,第三版》

Statistics inPlain English, Third Edition

作为一名数据分析师并且日常工作就是处理统计学数据,我很期待知道更多的算法和模型。尽管统计软件可以我们完成每件事,但是识别出软件咀嚼后得到的结果的确是这个工作最难以拿捏的部分。我主修生物技术专业并且对这些我生命中遇到的大部分的统计学像白痴一样。长话短说,我真的需要这本书帮助我理解更多的统计学概念。

——来自Amazon用户Shyam Goli的读后感


畅销免费书籍推荐:

《Think Stats:程序员需要的概率论统计学,第二版》

Think Stats:Probability and Statistics for Programmers, Second Edition

Think Stats强调了让你使用简单的技术进行数据和有趣问题答案的开发。这本书介绍了美国国家卫生研究院使用数据进行的案例的研究。

——来自官网的书评

程序员必读的书,StackOverflow 创始人推荐

伯乐在线/艾凌风

原载: http://blog.jobbole.com/100450/

Stack Overflow 创始人 Jeff Atwood 推荐给程序员的书。


本文最近一次更新是2015年3月份。 为什么我很少更新我的读书清单呢?因为虽然在这 10 年里,计算机一直在迅猛发展,但人始终却没有变。 为了开发出更好的软件,你需要理解人是如何工作的,这也是我推荐的这些书所关注的领域。

代码大全2

Steve McConnell所著的《代码大全2》 就像是为软件开发者所编写的《烹饪的乐趣》。能够去阅读这本书,说明你很享受自己的工作,并且在认真地对待自己的工作。同时,你还想要不断的进步。在《代 码大全》中Steve写到,普通程序员每年阅读的技术书籍不到一本。仅仅是阅读这本书的行为,就可能已经把你和你90%的程序员同事们区别开来了。

我非常喜欢这本书,以至于本站(coding horror)的名字也源于此书。书中列举的编程反例都被打上了”Coding Horror”的标签。没有什么比Coding Horror更有意思的了,直到你自己遇上一次。突然间一切都不那么有趣了。帮自己一个忙,把这本书作为你要研读的第一本书,并把它作为你推荐给同事的第一本书。

人月神话

这本书可能是我们这领域唯一的一本经典了。如果你还没读过,那就太不对了。

我敢说任何一个拿起这本书的程序员都没有发现关于那个早就不使用操作系统的故事以及它的开发团队之间惊人的相关性。这本二十五年前出版的老书大胆的阐明了一个观点:计算机也许会变,但人永远不会。

花时间去阅读这本经典书籍一定比你去阅读当今哪些几千页的大部头书籍更加有意义。

点石成金 : 访客至上的网页设计秘笈

在关于可用性的书籍中,这是我读过的最好的一本书。书名提到了“网页的可用性”,但是请不要被这一虚假的特指所迷惑。Steve Krug在书中提到了可用性这一概念所包含的全部重要内容,而且讲的很好,书也很有意思。如果你只想读一本关于可用性的书,那么读这本就可以了。这本书囊括了很多有用的信息,并且以简练的、平易近人的方式将这些信息呈现给你。这本书对于很多人都是适用的:技术人员、非技术人员、用户、开发者、经理等凡是你能说出名字的任何人。

呃。。。好吧。从来没有开过这样的会议。顺便提一下,解决这个问题的办法是进行一次快速的可用性测试。请想象这样的场景:基于实际数据来做决定而不是基于一场为了通过说服所有持有反对意见的人的辩论。真是革命性的转变啊!

快速软件开发

这本书的全称是:《快速软件开发:掌控软件开发进度》,这个标题不仅冗长还有些可笑,更不幸的是它用词不当。

快速软件开发》并不是一本关于快速开发的书。它讲述的是软件开发失败这一现实问题。大多数的软件开发项目都会失败:有时是没能按期交付,有时是开发出了不合格的产品,甚至有的时候都没有能够完成开发。这并不是什么论点,而是一个事实。一个令人不快的事实是:你的团队要足够的好,才能避免失败,更别说取得成功了。尽管这一切听起来可能会令人沮丧——好吧,这确实令人沮丧——但你仍然会想要去读一读这本书。

为什么呢?因为你曾经犯过的错误,或者其他人犯过的错误,如果能够避免再犯,就已经成功了一半*了。这本书传达了一个真谛:犯错是有益的——只要这些错误是一些未曾犯过的错误。如果你犯了一些经典的老错误,那么你在没有开始前就已经失败了。同时,你可能并没有意识到,你现在就在犯着类似的错误。

对我们这一行来讲,唯一不变的就是变化。所以拥抱变化和采取不同的“快速”开发技术是很自然的一件事。但是这句话反过来说就不对了。我们不能认为自 1970年以来,所有的旧式软件开发课程同今天的技术相比已经是废弃的或是没用的了。老生常谈的一件事是:计算机改变了很多;人却没有。在你准备开始前, 至少对于哪些可行哪些不可行有个认识。用 McConnell 的话说就是:“粉刷之前请先阅读油漆桶上的说明文字。” 诚然,这听上去已经足够直白了,但是直到你读了这本书,你才意识到,我们很少会真正去这么做。

  • 根据书的内容,严格来讲,有四分之一的内容。但是我觉得要比这多得多。

人件

如果你曾经看到过一个全明星球队,因为教练水平不高而战绩不佳,那你肯定会喜欢这本书。如果团队成员不能相互沟通或是认同一件事,那么你的团队中不 论有多少“编程之星”都没用。如果一个开发者经常被一些琐事打断,即使他是个天才,也不能够高效的工作。开发者并不清楚他们自己的社交技能,但是,讽刺的 是:这可能是你项目成功的关键因素。如果你希望成为一个真正的“团队领袖”,而不是徒有其名,你需要看看这本书。

尽管《人件》中有很多不错的、完全正确的观点,但是书中描绘的这种雇员管理对于大多数公司来讲纯粹是幻想。但是至少你可以在你的工作环境,或是你的团队出现问题的时候有所察觉——最重要的是,你可以知道怎么做。

设计心理学

软件开发有时候是一件极度令人沮丧的事情,因为很多事情都会做错。我们做的很多事情都是防御性的:尝试在情况变坏之前做出预测。这令人十分伤神,并 且最终可能会被证明是错的。我经常根非技术人员这样去解释这个问题:就好像去造一块有上千个运动部件的手表,其中每个部件都会动不动就随机坏掉。棒极了!

软件开发是很困难的,这点没错,但是做一个门也很困难。设计的微妙之处存在于我们接触到的每个事物,不论是最新的 SQL 引擎还是一双普通的鞋。这本书会让你对“恶魔藏在细节里”这句话产生新的认识。如果设计一个门并不是我们想象的那样是一件很简单的事的话,也许是时候因为 意识到我们也无法设计出完美的软件而给自己放个假了。

About Face:交互设计精髓

Alan Cooper 是 Visual Basic语言之父,可用性领域的教父级人物。我拥有这本书的多个版本(现在是第四版),这本书是少数越修订越好的书,越来越多的合作者向本书加入了不同的观点。

《About Face》一书中包含了关于移动应用和 web 应用的通用实用指导。 以老掉牙的 Windows 95 人机界面作为例子来进行阐释,将该系统已经改进的地方(在进行对话框选择前使用视觉样例进行展示)和还没有改进的部分(使用愚蠢的模态框来停止正在运行的 进程)进行对比是很有趣的一件事。

这是一本非常有用的书;我在我自己的项目中用到了书中提到了全部的指导。

交互设计之路:让高科技产品回归人性

正是这本书向世人介绍了角色模型的概念:不要把用户想象为一群抽象的、难以描述的、无定形的人。角色模型指导我 们和特定的用户进行交谈,这些用户有名字,有个性,有需求也有目标。我们的用户是否需要打印预览功能?谁知道?但是,如果对于客户经理 Gerry Manheim 来说,打印每周花销报表是他的工作,那你最好提供打印预览功能给他。这里边没有什么神奇的东西;一如既往的是,一切都归结于你的用户是谁,他们究竟要做什 么——角色模型是解决这一问题的好办法。

程序员认为自己在设计产品可用性时能够代表“普通”用户作出某些决定,但是在现实世界中,他们完全不能代表用户。程序员是一群怪人,充其量能算是是 一种极端的用户——就好比“逻辑人(Homo Logicus)” vs. “现代智人(Homo Sapiens)”。除非你碰巧开发的是一款编译器,因为编译器的用户也是程序员。

这本书有一个隐含的观点,有的时候,无论你的设计有多好,就像由 Alan 担任顾问并在此书中用作案例的这两款软件:扫描仪软件以及网页开发软件,在市场上都没有能够取得成功,但这和软件的可用性无关,因为它们的可用性已经被证明是非常优秀的了。有些时候,非常优秀的产品同样会失败,而其失败的原因是你无法掌控的,无论你多么努力。对于此书中的一些华而不实的词藻,你可以用以上事实将自己拉回到现实当中。

  • 我有书中图片里的同款 USB 扫描仪,设备配套对软件令我印象深刻。后来我把这台扫描仪送给了我父亲。有一次和他打电话,我并没有提到任何关于扫描仪的事情,但是他却提到他很喜欢这个扫描软件。这一切都发生在这本书出版之前!

编程珠玑

在这里推荐《编程珠玑》,我本来有些犹豫,因为这本书中介绍了很多底层的编程技巧。但是书中确实包含了很多软件开发中的『珠玑』,所以值得每位开发者花时间去读一读。任何包含这幅图的书…

…都是物有所值的。利用TRS-80 与 DEC Alpha 的对比来阐释48n和n3算法的差别?各位,真的没有比这样做更合适的了。能和大师一起工作一年是最好的了,退而求其次,你也可以读读《编程珠玑》。这本书将很多软件工程师的智慧提炼成了简洁易懂的文字,纳入其中。

我不会骗你:有一些章节是可以完全略过的。比如说,第11、13和14章分别介绍了如何实现排序,堆和哈希算法,考虑到现如今这些基本算法都有成熟 的库可以使用,我无法想象再去实现它们有什么意义。 对于那些和教科书一样恼人的习题,这里有一个很实在的建议。浏览一下这本书,跳过代码部分。有件事可能会让你失望,第八章“粗略估算”(Column 8, “Back of the Envelope” )是必须要看的。这里有我见过的最佳的估算方法。这章还解释了一些疯狂的面试问题,一些公司很喜欢用这些问题提问我们。

如果你还在犹豫,你也可以在网上阅读一下此书的样章。最近我用书中关于字符串的章节去解释了马尔科夫链在生成人造数据填充空数据库时的作用。

程序员修炼之道:从小工到专家

看这本书时常会让我想到《编程珠玑》,但是实际上这本书更好一些。因为这本书没有那么的专注于代码,取而代之的的是,作者在这本书中总结了实际工作中发现的全部实用方法。并非所有的方法都是与编程相关的。比如,问问自己『为什么我要做这件事?是否值得这样做?』,跳出固有的思维方式。你应该把这些东西融入到你和你同事的日常生活中。正是这些内容,使得《程序员修炼之道》成为了一本如此优秀的书。

如果你想再多了解一些这本书,我建立一个HTML 版本的插页参考卡片,这个参考卡片很好的总结了这本书的内容。

Web 可用性设计

Jakob Neilsen 因为他所创建的可用性网站而出名。1989年,当他的书出版的时候,他就是一个可用性专家了。《Web 可用性设计》是一本专注于 web 可用性的新手教程,所以它和面向 GUI 的 Cooper 的那本书有所不同。

定量信息的视觉显示

视觉解释:图像和数量,证据与线索

想象信息

美丽的证据

信息是很美的。一个设计良好的 GUI 也很美。

除非你是个完美主义者(或是一个受虐狂,我猜),否则你没有必要把一套四本全买齐,但是前两本是必须的。

Chris Sells 对 Tufte 的书有些有趣的见解,这些见解源于他2004年6月参加Tufte研讨会时的见闻。

正则表达式经典实例

众所周知 UNIX 非常复杂、难以理解。正则表达式也是这样。

我可能已经是『保持简单直白』俱乐部的正是成员了,但是我愿意将正则表达式作为一个特例。若能正确的书写正则表达式,则在处理字符串时,它可以帮你节省非常多的时间。我从来没有遇到过一个项目,正则表达不能在某些地方为我们提供方便。

一旦你深入研究了正则表达式,你就会沉醉于正则表达式惊人的能力和潜力,这一切也造就了 Perl。记住,绝对的权利会导致绝对的腐败。但是同样非常的赞。

译者简介


艾凌风:兴趣点:Python,C/C++,在线教育,英语

外行朋友值得一读的 5 本经典数学书

伯乐在线 – 熊铎

原载: http://blog.jobbole.com/55179/

有很多人让我给外行朋友推荐一些优秀的数学书,他们之中有些是没在大学学过高等课程的,只对学习数学感兴趣的朋友,还有些对历史人物比对数学成果更感兴趣。具有讽刺意味的是,当你是滑铁卢大学数学专业的学生之后,你到第四年才有机会上一门讲述数学历史的课程,会向你解释一些隐藏在数学之后的心态和哲学,而非只是定理和证明。

这5本书是我推荐给那些想了解数学思想和原理的朋友。

1.《A History of Mathematics | 数学史》作者:Carl B. Boyer

这是大概十年以前我上过的数学史课程的教材,而这本书仍是最好,最为深入讨论过去几千年中数学发展的书之一。其由埃及和前古典数学开始,解释一个简单的任务是如何因为缺少数学工具而变得复杂,然后随着时间推移各种工具的开发使我们能够理解量子理论。这本书很厚,超过700页的内容(编注:中文精装版1108页),但是非技术型读者也完全可以毫无障碍的阅读。

这本书非常值得任何图书馆收藏,它也可以每章分开来读,每章覆盖了数学史的一个不同方面。

2.《Journeys Through Genius | 天才引导的历程:数学中的伟大定理》作者:William Dunham

很多年前我在一个二手店选了这本书,仅仅是因为它吸引了我的注意力,并且价格不错。我觉得它读起来会比较有意思,但是我从没想过因为其内容而惊讶和兴奋,直到我开始认真阅读。这本书拿了一些数学上最为重要和变化后的定理,并用简洁且易于接受的方法解释它们。

借助一种有趣且令人愉快的方式,把定理发展过程中的历史文物展示出来,在上下文中保持了发现在当时的重要性。此外,更加重要的是,在定理的解释之外,这些为众人所知的工作背后的人物和生活以及他们的各种工作一起带入到了文中。如果你想对数学上最伟大的定理了解更多,这本书很好读并值得你拥有。

3. 《The Mathematical Experience | 数学经验》作者 Philip J.Davis、Reuben Hersh

我的数学史课程教授把他的这本书的复印本借给我,而这本书或许是我读过的最开眼界的读物。我花费了整个周末来读这本书,从头至尾,然后又读了一遍,狼吞虎咽并吸收其中所有的思想和观点。

从讨论成为一个数学家意味着什么,和从由全世界数学家所分享的经验的视角,毫无疑问这是我书库中最好的书。从哲学到数学家的社会情感经验,这本书涵盖了数学的全部领域。这本书写的很好,简洁并且触动了我的心弦。在这本书中,我真的感觉到我正在读一个已经知道什么叫爱数学,并且因数学感到兴奋的人,而不用深入钻研那些原本的推导过程。如果在这整个列表中有那么一本我建议去立即买的书,那一定是这本。快去买吧!

4. 《Proofs from the Book | 数学天书中的证明》作者:Martin Aigner、Günter M. Ziegler

Paul Erdös是20世纪多产的数学家,他通常涉及到及其优美的证明,就如同从“从上帝自己的书中”中得到一样。

这本书是一些很多数学家认为必要和重要的证明的集合,同时也是优雅和漂亮的。

如果你想要一本读起来比较容易,但可以用原始的严密的方法探索其中的定理的书,那这本书一定适合你。它覆盖了十分宽泛的领域中,一些最好的证明。

5. 《Proofs and Refutations | 证明与反驳-数学发现的逻辑》作者:Imre Lakatos

这本书可能是本文介绍的最高端的书。它竟然出色地采用了教授和学生之间的讨论的形式来写。Lakatos将数学过程交织在一起,包括了数学如何真正完成和定理如何应用于各种各样的易于理解的技术。

如果你或者你所认识的任何人,真的考虑转入数学这一行,我会推荐他读这本书。这尤其包括教师,因为他解释了如何通过技术和哲学思想,帮助你全面理解和创造性地运用新学到的工具,使你前进。这真的是一本十分精彩,并且能很快读完的书。

 

2016年,互联网创业者一定要读这20本书

2016-02-10 方军 做書

创业成为热潮,互联网创业更热,从2016开始暂列名为“互联网创业的二十本书”清单,和在创业的朋友们“共同学习”,或者说“共同度过”。

在创业或创造的过程中,我们会有很多的迷惑和困惑,而其中一个重要的解决方法是去读书,和伟大的头脑对话,在他们的思考中印证和反思。

这个书单将分为几个部分:关于观念,关于方法,关于思维。

这个清单基本上没有商业人物传记,那是创业者获取灵感和激励的重要阅读品类,但正因为其明显而无需纳入;也没有纳入商业模式讨论的,那也是自然的阅读选择。

这个清单有不少新书,但也有很多老书,这个清单并不需要一口气读完,它所列的图书及提到的只是给出一个提示,当你遇到困惑或者有空闲时,你可以找到它。

关于观念

 01 《网络经济的十种策略》

凯文·凯利(Kevin Kelly, KK),广州出版社,2000年

“蜜蜂比狮子重要;级数比加法重要;普及比稀有重要;免费比利润重要;网络比公司重要;造山比登山重要;空间比场所重要;流动比平衡重要;关系比产能重要;机会比效率重要。”

虽然清单并无先后,但把凯文·凯利的这本《网络经济的十种策略》放在第一个,还是有选择的:

在2013年再听到他拿二十年多前的PPT讲述时,发现这些思考者的厉害之处在于,他们预见到了我们正在经历的一切。

正如这几年我一再推荐的科幻小说《雪崩》(斯蒂芬森)一样,在所有人设想的未来是控制操作系统的人控制世界的科幻小说界,它描绘了一个“快递员”控制的世界——我们就活在这样的世界。

 02 《创业维艰:如何完成比难更难的事》

本·霍洛维茨/著,中信出版社,2015年

“创业公司的CEO不应该计算成功的概率。创建公司时,你必须坚信,任何问题都有一个解决办法。而你的任务就是找到解决办法,无论这一概率是十分之九,还是千分之一,你的任务始终不变。”

这本书的英文版、中文版,我读过很多遍,因为已经转型成为成功风险投资人的本·霍洛维茨没有讲漂亮话,他讲自己所面对的处境,他如何选择的,他如何思考的。

这本书遍是金句,因此除了上面所引这句外,我另加一句:

“真正的难题不是绘制一张组织结构图表,而是让大家在你刚设计好的组织结构内相互交流。”

 03 《麦哲伦传》

茨威格/传,海燕出版社,2001年

“这个从来不再任何人面前流露自己感情的严厉的军人,突然被内心深处涌出的一股热流所制服了。他的眼睛模糊了,激动的热泪盈眶而出,滚落到他那散乱的黑须上。”

是的,就是那个第一个完成全球航行的麦哲伦传,是的,就是那个作家茨威格。

自从申音在某次推荐这本书之后,我一再阅读,读的理由不是麦哲伦在那个时代如何证明地球是圆的,对我们今天来说,环绕地球不过是坐飞机而已。

读它是反复体会他所经历的那个过程:拥有一个大胆的计划,怀着一个后来被证明正确的信念,成功找到钱和一大批人,带着错误的假设和错误的行动方案出发,遇到困难和团队不断地哗变,但最终完成第一人的航行。

 04 《一代新机器的灵魂》

特雷西·基德尔/著,机械工业出版社,1990年

“至于机器的真正发明人,工程师们,我看他们在这种活动中显得有点不合群、或许是因为这些人很少经历这样的场合。……不知为什么,我竟冷不丁冒出这样一句话:“只不过是台计算机,你知道,这在世界上确实是件很小的事。””

这本书讲述了还在小型计算机时代,一台计算机被创造出来的历程。

如果不是这两年的智能手机制造和智能硬件热潮,我们很多人应该很少有机会感受一个“机器”创造出来的过程。

我们创造的多数是网站、APP、商业系统,但是,所经历的过程是一样的。其实这本书和迈克尔·刘易斯记录早期互联网创业的《将世界甩在背后》(The New New Thing)争夺一个清单推荐位,而最终选择了《机器》,因为读它的过程很多感慨,而《世界》并没有。

 05 《黑客与画家:硅谷创业之父Paul Graham文集》

Paul Graham/著,人民邮电出版社,2011年

“创造优美事物的方式往往不是从头做起,而是在现有成果的基础上做一些小小的调整,或者将已有的观点用比较新的方式组合起来。”

YC创业营的创办人Paul Graham已经变成一种象征,推荐这本书实际上并非仅仅推荐这本书,因为这本书是完结不变的,而他还在不断地写作长文(essay),讲述他的思考,值得持续关注。

比如他最近有一篇新文章讨论的是“Life is short”,他讨论的这个问题,他的答案隐藏在题目中:“从问题的终极反过来看,去培养一种对你想做的事迫不及待的急躁习惯。”

关于方法

 06 《精益创业:新创企业的成长思维》

埃里克·莱斯/著,2012年

“新创企业是一个由人组成的机构,在极端不确定的情况下,开发新产品或新服务。”

精益创业度过了一次热潮大概在慢慢地沉寂,但偶尔看看还是很有价值,因为他以一个逻辑模型讲述了我们在过程中必然经历的学习过程,一个公司(产品)从没有到有的过程。

 07 《创业必经的那些事》

1/2共两册,迈克尔·格伯/著,2010年10月

“如果你正在经营一家小公司,或者说你想拥有一家小公司,那么,本书正是为你而写的。”

格伯的这本书不是为那些要创办指数级公司的创业者写的,其实这本书在创业热潮之前的书名是很朴实的《突破瓶颈》,它是一个管理故事,把小企业主所要经历的一些体会、知识放进去了。

但是,谁不是从小企业主走过来的。

我隐约还记得当时从这本书得到的一个实用智慧:即便只有一个人,也要把管理结构图画出来。

这个人既是董事长,又是CEO,又是负责市场的副总,又是负责运营的副总,又是负责财务的副总,又是销售经理,又是行政经理……董事长给CEO和管理班子派任务,CEO又给负责市场的自己、负责运营的自己、负责财务的自己派任务,如此下去。

 08 《启示录:打造用户喜欢的产品》

Marty Cagan/著,华中科技大学出版社,2011年

“本书是写给软件产品(包括企业级产品和大众产品)开发团队(特别是互联网软件产品团队)中负责定义产品的成员看的,他们通常被称为产品经理。这个职位常常由公司的创始人、高层主管、主程序员、设计师兼任。”

这是一本朴实的手册,讲些软件或互联网产品(及技术)团队的基本常识,比如需要哪些人、分别是什么角色;比如怎么定义产品;也有一些开发方法的讨论。很朴实,又很全面。

 09 《四步创业法》

Steven Blank/著,华中科技大学出版社,2012年

“提出客户发展方法的目标是解决产品开发方法面临的10大问题。该方法把创业初期与客户相关的活动按目标划分为四个易于理解的阶段:客户探索、客户验证、客户培养和组建公司。”

仔细读过《精益创业》的都了解这本名为《The Four Steps to the Epiphany》的书,它是《精益创业》的灵感之源,埃里克·莱斯说他送了很多箱出去。

这本书还值得单独占有清单推荐位是因为,客户发展方法,是从客户的视角讲述这个过程,和精益强调学习不一样,客户是一切。

 10 《大决策:九个不朽的领导力传奇故事》

迈克尔·尤西姆/著,机械工业出版社,2007年

“此次探险活动需要一个强有力的领导,而不是一个独裁者。”

沃顿商学院教授迈克尔·尤西姆讲述了一系列领导力时刻,我为此还专门找他带队攀登雪山的书阅读。

在读的过程中,几乎都是非商业性的故事却一再激发我去想这个问题:换作是我,会怎么做?

 11 《丰田汽车案例:精益制造的14项管理原则》

杰弗里·莱克/著,中国财政经济出版社,2004年

“丰田模式可以扼要地总结为两大支柱:一为“持续改进”(continuous Improvement),二为“尊重员工”(respect for people)。

一般把持续改进成为日语的改善(kaizen),它挑战所有事,其精髓含义不仅仅是个人贡献的实际改善,更重要的是创造持续学习的精神,接受并保持变革的环境。”

这本不是关于精益的最经典的著作,最经典的是沃麦克等所著的《改变世界的机器》和《精益思想》。

但杰弗里·莱克也是知名的丰田与精益研究专家,更重要的是这本简单明了,比较容易投入实用。

精益创业的思路曾经大热门,但其实精益生产的思路只有到了一定的规模时才有使用价值。

不过,早点了解没有坏处,万一突然高速发展了呢?丰田的例子的价值还在于,它基本上是一个完备的系统,而不是一个的被强调的个别理念/工具,它的整套兄从文化、到组织、到产品开发、到生产都可以沿用。

 12 《跨越鸿沟:颠覆性产品营销圣经》

杰弗里·摩尔/著,机械工业出版社,2009年

“在高科技产品市场的开发过程中,最危险最关键的一点就是由少数有远见者所主宰的早期市场向由实用主义占支配地位的大批顾客所占据的主流市场的过渡。”

这就是提出技术产品接纳周期曲线、指出这条曲线里的 “鸿沟”(Chasm )的那个杰弗里·摩尔最早的作品之一。

要理解那条曲线可以看看他的多本书,其实那条曲线并不如平常所见那么直观,有很多微妙之处。

 13 《创新者的窘境》

克莱顿·克里斯坦森/著,中信出版社,2010年

““技术”一词指的是一个组织将劳动力、资本、原材料和技术转化为价值更高的产品和服务的过程。”

这就是时下热门的“颠覆式创新” (disruptive creation,破坏式创新)的原典,最早读夹杂在汉译大众精品文库中这本时,做了非常多笔记,尤其对克里斯坦森对理论和现实的看法感兴趣,在当面向他请教时提了很多问题,但现在已经完全不记得那一个多小时问了什么,只依稀记得讨论linux、google docs等等。

这本书为什么会在过去三十年吸引创业者的眼光,大概是因为克莱顿·克里斯坦森以超级严谨的案例和逻辑论证了,新事物终究要战胜老的,以及究竟在什么样的场合下最可能战胜。

 14 《企业参谋》

大前研一/著,中信出版社,2007年

“我的处女作《企业参谋》是我30岁到31岁间所做的笔记。29岁那年我进入麦肯锡公司工作,对经营一无所知,于是一边工作一边学习,留下这些笔记。那时我初出茅庐,做这些笔记时完全没有想到有一天能出版,我只是按照自己多年的习惯把学到的东西表达出来,仅此而已。”

没有更好的公司战略思考手册,过了几十年这本书依然有效,它并没有多少结论,仅仅是讲述了方法和过程。

 15 《创业之初你不可不知的融资知识》

桂曙光/著,机械工业出版社,2012年

“VC其实跟一般的生产企业模式类似,他们先从一些优质的创业者手里低价买入原料——这些创业企业的股份,然后对原料进行加工——给企业提供一些增值服务,或者干脆就等着创业者自己努力,从而使这些股份原材料成为更加规范的产品,并获得价值提升。”

读完它,关于风险投资该了解的东西基本上都了解到了。需要时再读,提前读意义不大。

关于思维

 16 《错不在我?》
卡罗尔·塔夫里斯、艾略特·阿伦森/著, 中信出版社,2013年

“在有意识撒谎欺骗他人与下意识地自我辩护欺骗自己之间,有一块被不可靠、自利的记忆掌握的灰色地带。记忆通常都会受自我提升偏误(self-enhancing bias)修正和改变,让过去发生的事情变得模糊,减轻责难,扭曲事实的真相。”

创业者大概很难有机会说“错不在我”,但这本书还是要看,因为它不是讲怎么逃避责任的,而是讲我们的思维习惯的。

我们所有人都有着一种强烈的“事后合理化”的倾向,只有意识到我们的思维习惯,有意识地看它,我们才能看到它对我们的影响。

 17 《创业无畏:指数级成长路线图》

彼得·戴曼迪斯、斯蒂芬·科特勒/著,浙江人民出版社,2015年

“为便于大家更加方便地掌握指数型技术的特点,我构建了一个“6D”框架:数字化(digitalization)、欺骗性(deception)、颠覆性(disruption)、非货币化(demonetization)、非物质化(dematerialization)和大众化(democratization)。这6D其实是指数型技术发展的连锁反应,也是导致巨大动荡并带来难得机遇的快速发展路线图。”

对我来说,多次阅读来自奇点大学的几本著作,的确总能激发技术乐观情绪,包括:《指数型组织》、《富足》、《创业维艰:指数级成长路线图》等。

我们也看到马斯克以一个人的力量在四个领域突破着:电动汽车、私人航天、太阳能和超级高铁,他几乎是技术乐观主义的现实商业代言人。

奇点大学的几位研究者和以往的技术乐观派不同的是,他们不是未来学家的方式,他们是技术实干派,他们将理论和实战混合在一起。

这有时会增加他们的魅力,有时又显得不够未来感,因为过于实用易于被挑刺,实用就需要快速迭代修正。但这是他们真实的状态。

这可能也是我们在实务中的人应该有的状态,保持一种实用的技术乐观,并努力将它实现。

 18 《九败一胜:美团创始人王兴创业十年》

李志刚/著,北京联合出版社,2014年

“我们是一家电商公司,交易额是由B端和C端完成的,怎样把用户从七八千万,变成2亿、4亿、5亿,这需要我们扩展B,也扩展C,有足够的B,足够的C就有足够的交易额。我们会尝试新的机会,包括餐饮、酒店、电影、休闲游等;在公司外面也会有新的尝试。总体上来说,应对这场战争,我们是要增强团队,通过各方面的改进提升人均效率,我们还有太多地方需要改进和提升。”

原来的美团,已经合并大众点评变成新美大(据说英文名为China Internet Plus),但它还在奋战。

书名是借鉴自优衣库的《一胜九败》,把这本书放在思维方式,是因为它是关于我们怎么看待和经历失败,优衣库的更朴实些,一胜九败,但还在继续,其实王兴九败一胜,但也还没最终取胜。王兴的思维应该是中国互联网创业者里面最强大的思维。

 19 《深度生存:生还是死难?》

劳伦斯·冈萨雷斯/著,中国对外翻译出版公司,2006年

“一般而言,我建议大家尽量远离那些英雄气过重的人,比如兰博式的硬汉人物,也不要接近那些总爱抱怨或者啼啼哭哭的人。应该信赖富有幽默感——特别是自嘲的那种幽默感——以及对自己有清醒认识的人。谁能充分利用周围条件,而且能够承认现实,熟悉环境,并且关爱他人,谁的生还几率就往往更大。说来说去,无论身处何境地,生还不外乎是对环境的适应。”

这本是《创业维艰》的户外探险版,这是真的生死。第9章“扭曲的地图”是我最推荐的部分。

 20 《卓有成效的管理者》

彼得·德鲁克/著,上海译文出版社,1999年

““认识你自己”这句充满智慧的古训对现代的凡人来说实在是太难理解了。不过,如果你喜欢自己的工作卓有成效、能为别人作出贡献的话,那你还是可以遵照掌握自己的时间这一条去做的。”

这是一本平淡无奇的书,讲了些普通的道理:卓有成效是可以学到的,掌握自己的时间,问我能能作哪些贡献,如何发挥自己的优势,重要的事先做,等等。

与之相似的,英特尔的格鲁夫也有一本平淡无奇的书《格鲁夫给经理人的第一课》(high output management),他相对更关注系统的高效率一些,也值得推荐。

但是,如果这20本关于所谓互联网创业只看一本的,毫无疑问,请读德鲁克的《卓有成效的管理者》。

程序员必读书单 1.0

作者:Lucida

原文链接:http://lucida.me/blog/developer-reading-list/

本文把程序员所需掌握的关键知识总结为三大类19个关键概念,然后给出了掌握每个关键概念所需的入门书籍,必读书籍,以及延伸阅读。旨在成为最好最全面的程序员必读书单。

前言

Reading makes a full man; conference a ready man; and writing an exact man.

Francis Bacon

优秀的程序员应该具备两方面能力:

  • 良好的程序设计能力:
    • 掌握常用的数据结构和算法(例如链表,栈,堆,队列,排序和散列);
    • 理解计算机科学的核心概念(例如计算机系统结构、操作系统、编译原理和计算机网络);
    • 熟悉至少两门以上编程语言(例如C++,Java,C#,和Python);
  • 专业的软件开发素养:
    • 具备良好的编程实践,能够编写可测试(Testable),可扩展(Extensible),可维护(Maintainable)的代码;
    • 把握客户需求,按时交付客户所需要的软件产品;
    • 理解现代软件开发过程中的核心概念(例如面向对象程序设计,测试驱动开发,持续集成,和持续交付等等)。

和其它能力一样,程序设计能力和软件开发素养源自项目经验和书本知识。项目经验因人而异(来自不同领域的程序员,项目差异会很大);但书本知识是相通的——尤其是经典图书,它们都能够拓宽程序员的视野,提高程序员的成长速度。

在过去几年的学习和工作中,我阅读了大量的程序设计/软件开发书籍。随着阅读量的增长,我意识到:

  • 经典书籍需要不断被重读——每一次重读都会有新的体会;
  • 书籍并非读的越多越好——大多数书籍只是经典书籍中的概念延伸(有时甚至是照搬);

意识到这两点之后,我开始思考一个很功利的问题:如何从尽可能少的书中,获取尽可能多的关键知识?换句话说:

  • 优秀的程序员应该掌握哪些关键概念?
  • 哪些书籍来可以帮助程序员掌握这些关键概念?

这即是这篇文章的出发点——我试图通过程序员必读书单这篇文章来回答上面两个问题。

标准

进入必读书单之前,我先介绍下书单里的书籍选择标准和领域选择标准。当然你也点击这里直接跳转到书单开始阅读。

书籍选择标准

  1. 必读:什么是必读书籍呢?如果学习某项技术有一本书无论如何都不能错过,那么这本书就是必读书籍——例如Effective Java于Java,CLR via C#于C#;
    • 注意我没有使用“经典”这个词,因为经典计算机书籍往往和计算机科学联系在一起,而且经典往往需要10年甚至更长的时间进行考验;
  2. 注重实践,而非理论:所以这个书单不会包含过于原理性的书籍;
  3. 入门—必读—延伸:必读书籍的问题在于:1. 大多不适合入门;2. 不够全面。考虑到没有入门阅读和延伸阅读的阅读列表是不完整的——所以书单中每个关键概念都会由一本入门书籍,一本必读书籍(有时入门书籍和必读书籍是同一本),和若干延伸阅读书籍所构成。

概念选择标准

  1. 全面:全面覆盖软件开发中重要的概念;
  2. 通用:适用于每一个程序员,和领域特定方向无关;
  3. 注重基础,但不过于深入:优秀的程序员需要良好的计算机科学基础,但程序员并没必要掌握过于深入的计算机科学知识。以算法为例,每个程序员都应该掌握排序、链表、栈以及队列这些基本数据结构和算法,但计算几何、线性规划和网络流这些算法可能就不是每个程序员都需要掌握的了;

通过这几个标准,我把程序员应掌握的关键概念分为程序设计,软件开发,以及个人成长三大类,每一大类均由若干关键概念组成。

快速通道

自从开博以来,经常会有朋友在论坛,微博,和QQ上提问学习X技术读什么书合适(例如:学习Java读什么书合适?如何学习程序设计?)所以我在这 里列出了一个“快速通道”——把常见的问题集中在一起,点击问题,即可直接进入答案。(当然,如果你把本文从头读到尾帮助会更大 :–))

程序员必读书单

入门书籍

程序设计:

  1. 基础理论编码:隐匿在计算机软硬件背后的语言
  2. 编程语言
  3. 编程语言理论编程语言实现模式
  4. 程序设计程序设计方法
  5. 算法与数据结构算法(第4版)
  6. 程序调试调试九法——软硬件错误的排查之道

软件开发:

  1. 编程实践程序设计实践
  2. 面向对象程序设计Head First设计模式
  3. 重构重构
  4. 软件测试How to Break Software
  5. 项目管理极客与团队
  6. 专业开发程序员修炼之道:从小工到专家
  7. 大师之言奇思妙想:15位计算机天才及其重大发现
  8. 界面设计写给大家看的设计书
  9. 交互设计通用设计法则

个人成长:

  1. 职业规划软件开发者路线图
  2. 思维方式程序员的思维修炼:开发认知潜能的九堂课
  3. 求职面试金领简历:敲开苹果微软谷歌的大门
  4. 英语写作The Only Grammar Book You’ll Ever Need

必读书籍

程序设计:

  1. 基础理论深入理解计算机系统(第2版)
  2. 编程语言
  3. 编程语言理论程序设计语言——实践之路(第3版)
  4. 程序设计计算机程序的构造与解释(第2版)
  5. 算法与数据结构编程珠玑(第2版)
  6. 程序调试调试九法——软硬件错误的排查之道

软件开发:

  1. 编程实践代码大全(第2版)
  2. 面向对象程序设计设计模式
  3. 重构修改代码的艺术
  4. 软件测试xUnit Test Patterns
  5. 项目管理人月神话
  6. 专业开发程序员职业素养
  7. 大师之言编程人生:15位软件先驱访谈录
  8. 界面设计认知与设计:理解UI设计准则(第2版)
  9. 交互设计交互设计精髓(第3版)

个人成长:

  1. 职业规划软件开发者路线图
  2. 思维方式如何把事情做到最好
  3. 求职面试程序员面试金典(第5版)
  4. 英语写作风格的要素

这个阅读列表覆盖了软件开发各个关键领域的入门书籍和必读书籍,我相信它可以满足绝大多数程序员的需求,无论你是初学者,还是进阶者,都可以从中获益:

  • 基础理论包括了程序员应该掌握的计算机基础知识;
  • 编程语言对软件开发至关重要,我选择了CC++JavaC#Python,和JavaScript这六门主流编程语言进行介绍,如果想进一步理解编程语言,可以阅读编程语言理论里的书目;
  • 在理解编程语言的基础上,优秀的程序员还应该了解各种程序设计技巧,熟悉基本的算法数据结构,并且能够高效的进行程序调试
  • 良好的程序设计能力是成为优秀程序员的前提,但软件开发知识也是必不可少的:优秀的程序员应具备良好的编程实践,知道如何利用面向对象重构,和软件测试编写可复用,可扩展,可维护的代码,并具备软件项目管理知识和专业开发素养;
  • 就像我们可以从名人传记里学习名人的成功经验,程序员也可以通过追随优秀程序员的足迹使自己少走弯路。大师之言包含一系列对大师程序员/计算机科学家的访谈,任何程序员都可以从中获益良多;
  • 为了打造用户满意的软件产品,程序员应当掌握一定的界面设计知识和交互设计知识(是的,这些工作应该交给UI和UX,但如果你想独自打造一个产品呢?);
  • 专业程序员应当对自己进行职业规划,并熟悉程序员求职面试的流程,以便在职业道路上越走越远;
  • 软件开发是一项需要不断学习的技能,学习思维方式可以有效的提升学习能力和学习效率;
  • 软件开发是一项国际化的工作,为了让更多的人了解你的代码(工作),良好的英语写作能力必不可少。

尽管我尽可能的去完善这个书单,但受限于我的个人经历,这个书单难免会有所偏颇。所以如果你有不同的意见,或者认为这个书单漏掉了某些重要书籍,请在评论中指出,我会及时更新。:–)

程序设计

1. 基础理论

编码:隐匿在计算机软硬件背后的语言

编码:隐匿在计算机软硬件背后的语言这本书其实不应该叫编码——它更应该叫“Petzold教你造计算机”——作者Charles Petzold创造性的以编码为主题,从电报机和手电筒讲到数字电路,然后利用数字电路中的逻辑门构造出加法器触发器,最后构造出一个完整的存储程序计算机。不要被这些电路概念吓到——编码使用大量形象贴切的类比简化了这些概念,使其成为最精彩最通俗易懂的计算机入门读物。

深入理解计算机系统(第2版)

深入理解计算机系统(第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编程权威指南就属于编程平台书籍。

C

C和指针

忘记谭浩强那本糟糕不堪的C程序设计,C和指针才是C语言的最佳入门书籍。它详细但又不失简练的介绍了C语言以及C标准库的方方面面。

对于C语言初学者,最难的概念不仅仅是指针和数组,还有指向数组的指针和指向指针的指针。C和指针花了大量的篇幅和图示来把这些难懂但重要的概念讲的清清楚楚,这也是我推荐它作为C语言入门读物的原因。

C程序设计语言(第2版)

尽管C程序设计语言是二十多年前的书籍,但它仍然是C语言——以及计算机科学中最重要的书籍之一,它的重要性不仅仅在于它用清晰的语言和简练的代码描述了C语言全貌,而且在于它为之后的计算机书籍——尤其是编程语言书籍树立了新的标杆。以至于在很多计算机书籍的扉页,都会有“感谢Kernighan教会我写作”这样的字样。

延伸阅读:

  • C专家编程:不要被标题中的“专家”吓到,这实际是一本很轻松的书籍,它既包含了大量C语言技术细节和编程技巧,也包含了很多有趣的编程轶事;
  • C陷阱与缺陷:书如其名,这本书介绍了C语言中常见的坑和一些稀奇古怪的编程“技巧”,不少刁钻的C语言面试题都源自这本小册子;
  • C语言参考手册:全面且权威的C语言参考手册,而且覆盖C99,如果你打算成为C语言专家,那么这本书不可错过;
  • C标准库:给出了15个C标准库的设计思路,实现代码,以及测试代码,配合C程序设计语言阅读效果更佳;
  • C语言接口与实现:这本书展示了如何使用C语言实现可复用的数据结构,其中包含大量C语言高级技巧,以至于Amazon上排行第一的评论是“Probably the best advanced C book in existance”,而排行第二的评论则是“By far the most advanced C book I read”。

C++

C++程序设计原理与实践

作为C++的发明者,没有人能比Bjarne Stroustrup更理解C++。Bjarne在Texas A&M大学任教时使用C++为大学新生讲授编程,从而就有了C++程序设计原理与实践这本书——它面向编程初学者,既包含C++教程,也包含大量程序设计原则。它不但是我读过最好的C++入门书,也是我读过最好的编程入门书。

比较有趣的是,C++程序设计原理与实践直到全书过半都没有出现指针,我想这可能是Bjarne为了证明不学C也可以学好C++吧。

C++程序设计语言(第4版)

同样是Bjarne Stroustrup的作品,C++程序设计语言是C++最权威且最全面的书籍。第4版相对于之前的版本进行了全面的更新,覆盖了第二新的C++ 11标准,并砍掉了部分过时的内容。

延伸阅读:

  • A Tour of C++:如果你觉得C++程序设计语言过于庞大,但你又想快速的浏览一遍新版C++的语言特色,那么可以试试这本小红书;
  • C++语言的设计与演化:C++的“历史书”,讲述了C++是如何一步一步从C with Classes走到如今这一步,以及C++语言特性背后的故事;
  • C++标准库(第2版):相对于其它语言的标准库,C++标准库虽然强大,但学习曲线十分陡峭,这本书是学习C++标准库有力的补充;
  • 深度探索C++对象模型:这本书系统的讲解了C++是如何以最小的性能代价实现对象模型,很多C++面试题(包括被问烂的虚函数指针)都可以在这本书里找到答案;
  • Effective C++More Effective C++:由于C++的特性实在繁杂,因此很容易就掉到坑里。Effective系列既讲述了C++的良好编程实践,也包含C++的使用误区,从而帮你绕过这些坑。

Java

Java核心技术(第9版)

平心而论Java核心技术(即Core Java)并不算是一本特别出色的书籍:示例代码不够严谨,充斥着很多与C/C++的比较,语言也不够简洁——问题在于Java并没有一本很出色的入门书籍,与同类型的Java编程思想相比,Java核心技术至少做到了废话不多,与时俱进(Java编程思想还停留在Java 6之前),矮子里面选将军,Java核心技术算不错了。

Effective Java(第2版)

尽管Java没有什么出色的入门书籍,但这不代表Java没有出色的必读书籍。Effective Java是我读过的最好的编程书籍之一,它包含大量的优秀Java编程实践,并对泛型和并发这两个充满陷阱的Java特性给出了充满洞察力的建议,以至于Java之父James Gosling为这本书作序:“我很希望10年前就拥有这本书。可能有人认为我不需要任何Java方面的书籍,但是我需要这本书。”

延伸阅读:

  • 深入理解Java虚拟机(第2版):非常优秀且难得的国产佳作,系统的介绍了Java虚拟机和相关工具,并给出了一些调优建议;
  • Java程序员修炼之道:在这本书之前,并没有一本Java书籍系统详细的介绍Java 7的新特性(例如新的垃圾收集器,try using结构和invokedynamic指令),这本书填补了这个空白;
  • Java并发编程实践:系统全面的介绍了Java的并发,如何设计支持并发的数据结构,以及如何编写正确的并发程序;
  • Java Puzzlers:包含了大量的Java陷阱——以至于读这本书时我说的最多的一个词就是WTF,这本书的意义在于它是一个反模式大全,Effective Java告诉你如何写好的Java程序,而Java Puzzlers则告诉你糟糕的Java程序是什么样子。更有意思的是,这两本书的作者都是Joshua Bloch

视频教程:

  • Java语言学习极速之旅:系统全面的Java语言教程,6个阶段Java基础入门,循序渐进掌握Java面向对象精髓。3个Java进阶方向,Java SE、Java EE、Android开发,每一个都包含相应的知识点精讲和项目开发实例,快速上手。
  • Android 0基础极速养成计划:Android开发快速入门视频教程,通过对Android基础知识讲解,详细介绍Android开发环境搭建,同时包含Android实战案例解析,通过全新实战的Android课程,系统学习Android开发。

C#

精通C#(第6版)

可能你会疑问我为什么会推荐这本接近1200页的“巨著”用作C#入门,这是我的答案:

  1. C#的语言特性非常丰富,很难用简短的篇幅概括这些特性;
  2. 精通C#之所以有近1200页的篇幅,是因为它不但全面介绍了C#语言,而且还覆盖了ADO.NET,WCF,WF,WPF,以及ASP.NET这些.Net框架。你可以把这本书视为两本书——一本500多页的C#语言教程和一本600多页的.Net平台框架快速上手手册。
  3. 尽管标题带有“精通”两字,精通C#实际上是一本面向初学者的C#书籍,你甚至不需要太多编程知识,就可以读懂它。

CLR via C#(第4版)

CLR via C#是C#/.Net最重要的书籍,没有之一。它全面介绍了.Net的基石——CLR的运行原理,以及构建于CLR之上的C#类型系统,运行时关系,泛型,以及线程/并行等高级内容。任何一个以C#为工作内容的程序员都应该阅读此书。

延伸阅读:

  • 深入理解C#(第3版):C#进阶必读,这本书偏重于C#的语言特性,它系统的介绍了C#从1.0到C# 4.0的语言特性演化,并展示了如何利用C#的语言特性编写优雅的程序;
  • .NET设计规范(第2版):C#专业程序员必读,从变量命名规范讲到类型系统设计原则,这本书提供了一套完整的.Net编程规范,使得程序员可以编写出一致,严谨的代码,
  • C# 5.0权威指南:来自O’Reilly的C#参考手册,严谨的介绍了C#语法,使用,以及核心类库,C#程序员案头必备;
  • LINQ to Objects Using C# 4.0Async in C# 5.0:LINQ和async分别是.Net 3.5和.Net 4.5中所引入的最重要的语言特性,所以我认为有必要在它们上面花点功夫——这两本书是介绍LINQ和async编程的最佳读物。

JavaScript

JavaScript DOM编程艺术(第2版)

尽管JavaScript现在可以做到客户端服务器端通吃,尽管JQuery之类的前端框架使得一些人可以不懂JavaScript也可以编程,但我还是认为学习JavaScript从HTML DOM开始最为适合,因为这是JavaScript设计的初衷。JavaScript DOM编程艺术系统的介绍了如何使用JavaScript,HTML,以及CSS创建可用的Web页面,是一本前端入门佳作。

JavaScript语言精粹

JavaScript语言包含大量的陷阱和误区,但它却又有一些相当不错的特性,这也是为什么Douglas Crockford称JavaScript为世界上最被误解的语言,并编写了JavaScript语言精粹一书来帮助前端开发者绕开JavaScript中的陷阱。和同类书籍不同,JavaScript语言精粹用精炼的语言讲解了JavaScript语言中好的那部分(例如闭包,函数是头等对象,以及对象字面量),并建议读者不要使用其它不好的部分(例如混乱的类型转换,默认全局命名空间,以及奇葩的相等判断符),毕竟,用糟糕的特性编写出来的程序往往也是糟糕的。

延伸阅读:

Python

Python基础教程(第二版)

Python的入门书籍很多,而且据说质量大多不错,我推荐Python基础教程的原因是因为它是我的Python入门读物——简洁,全面,代码质量很不错,而且有几个很有趣的课后作业,使得我可以快速上手。

这里顺便多说一句,不要用Python学习手册作为Python入门——它的废话实在太多,你能想象它用了15页的篇幅去讲解if语句吗?尽管O’Reilly出了很多经典编程书,但这本Python学习手册绝对不在其中。

Python参考手册(第4版)

权威且实用的Python书籍,覆盖Python 2和Python 3。尽管它名为参考手册,但Python参考手册在Python语法和标准库基础之上对其实现机制也给出了深入的讲解,不容错过。

延伸阅读:

3. 编程语言理论

编程语言实现模式

大多数程序员并不需要从头编写一个编译器或解释器,因此龙书(编译原理)就显得过于重量级;然而多数程序员还是需要解析文本,处理配置文件,或者写一个小语言,编程语言实现模式很好的满足了这个需求。它把常用的文本解析/代码生成方法组织成一个个模式,并为每个模式给出了实例和应用场景。这本书既会提高你的动手能力,也会加深你对编程语言的理解。Python发明者Guido van Rossum甚至为这本书给出了“Throw away your compiler theory book!”这样的超高评价。

程序设计语言——实践之路(第3版)

程序员每天都要和编程语言打交道,但是思考编程语言为什么会被设计成这个样子的程序员并不多,程序设计语言——实践之路完美的回答了这个问题。这本书从编程语言的解析和运行开始讲起,系统了介绍了命名空间,作用域,控制流,数据类型以及方法(控制抽象)这些程序设计语言的核心概念,然后展示了这些概念是如何被应用到过程式语言,面向对象语言,函数式语言,脚本式,逻辑编程语言以及并发编程语言这些具有不同编程范式的编程语言之上。这本书或极大的拓宽你的视野——无论你使用什么编程语言,都会从这本书中获益良多。理解这一本书,胜过学习十门新的编程语言。

延伸阅读:

  • 七周七语言:理解多种编程范型:尽管我们在日常工作中可能只使用两三门编程语言,但是了解其它编程语言范式是很重要的。七周七语言一书用精简的篇幅介绍了Ruby,Io,Prolog,Scala,Erlang,Clojure,和Haskell这七种具有不同编程范式的语言——是的,你没法通过这本书变成这七种语言的专家,但你的视野会得到极大的拓宽;
  • 自制编程语言:另一本优秀的编译原理作品,自制编程语言通过从零开始制作一门无类型语言Crowbar和一门静态类型语言Diksam,把类型系统,垃圾回收,和代码生成等编程语言的关键概念讲的清清楚楚;
  • 计算的本质:深入剖析程序和计算机:披着Ruby外衣的计算理论入门书籍,使你对编程语言的理解更上一层楼。

4. 程序设计

程序设计方法

现代编程语言的语法大多很繁杂,初学者使用这些语言学习编程会导致花大量的时间在编程语言语法(诸如指针,引用和类型定义)而不是程序设计方法(诸如数据抽象和过程抽象)之上。程序设计方法解决了这个问题——它专注于程序设计方法,使得读者无需把大量时间花在编程语言上。这本书还有一个与之配套的教学开发环境DrScheme,这个环境会根据读者的程度变换编程语言的深度,使得读者可以始终把注意力集中在程序设计方法上。

我个人很奇怪程序设计方法这样的佳作为什么会绝版,而谭浩强C语言这样的垃圾却大行其道——好在是程序设计方法第二版已经被免费发布在网上。

计算机程序的构造与解释(第2版)

计算机程序的构造与解释是另一本被国内大学忽视(至少在我本科时很少有人知道这本书)的教材,这本书和程序设计方法有很多共同点——都使用Scheme)作为教学语言;都专注于程序设计方法而非编程语言本身;都拥有相当出色的课后题。相对于程序设计方法计算机程序的构造与解释要更加深入程序设计的本质(过程抽象,数据抽象,以及元语言抽象),以至于Google技术总监Peter Norvig给了这本书超高的评价

延伸阅读:

  • 编程原本STL作者的关于程序设计方法佳作——他把关系代数和群论引入编程之中,试图为程序设计提供一个坚实的理论基础,从而构建出更加稳固的软件。这本书是程序设计方法计算机程序的构造与解释的绝好补充——前者使用函数式语言(Scheme)讲授程序设计,而编程原本则使用命令式语言(C++);
  • 元素模式设计模式总结了面向对象程序设计中的模式,而元素模式这本书分析了程序设计中的常见模式的本质,阅读这本书会让你对程序设计有更深的理解;
  • The Science of Programming:会编程的人很多,但能够编写正确程序的人就少多了。The Science of Programming通过前条件——不变式——后条件以及逻辑谓词演算,为编写正确程序提供了强有力的理论基础,然后这本书通过实例阐述了如何应用这些理论到具体程序上。任何一个想大幅提高开发效率的程序员都应阅读此书。

5. 算法与数据结构

算法(第4版)

我在算法学习之路一文中提到我的算法入门教材是数据结构与算法分析:C语言描述,我曾经认为它是最好的算法入门教材,但自从我读到Sedgewick算法之后我就改变了观点——这本算法才是最好的算法入门教材:

  • 使用更为容易的Java语言作为教学语言;
  • 覆盖所有常用的数据结构和算法,并均给出其完整实现;
  • 包含大量的图示用于可视化算法——事实上这是我读过的图示最为丰富形象的书籍,这也是我称其为最好的算法入门书籍的原因。

编程珠玑(第2版)

编程珠玑(第2版)是一本少见的实践型算法书籍——它并非一一介绍数据结构/算法的教材,而是实践性极强的算法应用手册。作者(Jon Bentley)从他多年的实际经验精选出一些有趣而又实用的问题,然后展示了他解决这些问题的过程(分析问题,选择合适的算法,解决问题,以及验证答案)。任何程序员都可以从中获益。

延伸阅读:

  • 编程珠玑(续):严格来说这本书并非编程珠玑的续作,而是一本类似于番外篇的编程技巧/实践手册;它不像编程珠玑那般重视算法的应用,而是全面覆盖了程序员所需的能力;
  • 算法导论(第3版):尽管我在这边文章开头提到会尽量避免理论性的书籍,但没有算法导论的算法阅读列表是不完整的,我想这本书就不需要我多介绍了; :–)
  • 算法设计与分析基础(第3版):侧重于算法设计,这本书创新的把常见算法分为分治,减治,变治三大类,并覆盖了动态规划,回溯,以及分支定界等高级算法设计方法,属于算法设计的入门佳作;

6. 程序调试

调试九法——软硬件错误的排查之道

一个让非编程从业人员惊讶的事实是程序员的绝大多时间都花在调试上,而不是写程序上,以至于Bob大叔调试时间占工作时间的比例作为衡量程序员开发能力的标准。调试九法——软硬件错误的排查之道既是调试领域的入门作品,也是必读经典之作。调试九法的作者是一个具有丰富实战经验的硬件工程师,他把他多年的调试经验总结成九条调试法则,并对每一条法则都给对应的实际案例。任何程序员都应通过阅读这本书改善调试效率,即便是非程序员,也可以从这本书中学到系统解决问题的方法。

延伸阅读:

  • Writing Solid Code最好的调试是不调试——Writing Solid Code介绍了断言,设计清晰的API,以及单步代码等技巧,用于编写健壮的代码,减少调试的时间;
  • 软件调试的艺术:调试工具书——这本书详细的介绍了常见的调试器工具,并通过具体案例展示了它们的使用技巧;

软件开发

1. 编程实践

程序设计实践

Brian Kernighan是这个星球上最好的计算机书籍作者:从上古时期的Software Tools,到早期的Unix编程环境C程序设计语言,再到这本程序设计实践,每本书都是必读之作。

尽管程序设计实践只有短短200余页,但它使用精炼的代码和简要的原则覆盖了程序设计的所有关键概念(包括编程风格,算法与数据结构,API设计,调试,测试,优化,移植,以及领域特定语言等概念)。如果你想快速掌握良好的编程实践,或者你觉着900多页的代码大全过于沉重,那么程序设计实践是你的不二之选。我第一次读这本书就被它简洁的语言和优雅的代码所吸引,以至于读研时我买了三本程序设计实践——一本放在学校实验室,一本放在宿舍,一本随身携带阅读。我想我至少把它读了十遍以上——每一次都有新的收获。

代码大全(第2版)

无论在哪个版本的程序员必读书单,代码大全都会高居首位。和其它程序设计书籍不同,代码大全用通俗清晰的语言覆盖了软件构建(Software Construction)中各个层次上所有的重要概念——从变量命名到类型设计,从控制循环到代码结构,从测试和调试到构建和集成,代码大全可谓无所不包,你可以把这本书看作为程序员的一站式(Once and for all)阅读手册。更珍贵的是,代码大全在每一章末尾都给出了价值很高的参考书目(参考我之前的如何阅读书籍一文),如果你是一个初出茅庐的程序员,代码大全是绝好的阅读起点。

延伸阅读:

  • 编写可读代码的艺术:专注于代码可读性(Code Readability),这本书来自Google的两位工程师对Google Code Readability的总结。它给出了大量命名,注释,代码结构,以及API设计等日常编码的最佳实践,并包含了很多看似细微但却可以显著提升代码可读性的编程技巧。这本书的翻译还不错,但如果你想体会书中的英语幽默(例如Tyrannosaurus——Stegosaurus——Thesaurus),建议阅读它的英文影印版
  • 卓有成效的程序员:专注于生产效率(Productivity),它既包含源自作者多年经验的高生产率原则,也包含大量的提高生产率的小工具,每个追求高生产率的程序员都应该阅读这本书;
  • UNIX编程艺术:专注于程序设计哲学,这本书首先总结出包括模块化,清晰化,可组合,可分离等17个Unix程序设计哲学,接下来通过Unix历史以及各种Unix编程工具展示了这些原则的应用。尽管个人觉的这本书有些过度拔高Unix且过度贬低Windows和M$,但书中的Unix设计哲学非常值得借鉴。

2. 面向对象程序设计

Head First设计模式

无论是在Amazon还是在Google上搜索设计模式相关书籍,Head First设计模式都会排在首位——它使用风趣的语言和诙谐的图示讲述了观察者,装饰者,抽象工厂,和单例等关键设计模式,使得初学者可以迅速的理解并掌握设计模式。Head First设计模式在Amazon上好评如潮,就连设计模式原书作者Erich Gamma都对它给出了很高的评价。

需要注意,Head First设计模式是非常好的设计模式入门书,但千万不要把这本书作为学习设计模式的唯一的书——是的,Head First设计模式拥有风趣的语言和诙谐的例子,但它既缺乏实际的工程范例,也没有给出设计模式的应用/适用场景。我个人建议是在读过这本书之后立即阅读“四人帮”)的设计模式Bob大叔敏捷软件开发,以便理解设计模式在实际中的应用。

设计模式

设计模式作为设计模式领域的开山之作,Erich Gamma,Richard Helm,Ralph Johnson等四位作者将各个领域面向对象程序开发的经验总结成三大类23种模式,并给出了每个模式的使用场景,变体,不足,以及如何克服这些不足。这本书行文严谨紧凑(四位作者都是PhD),并且代码源自实际项目,属于设计模式领域的必读之作。

需要注意:设计模式不适合初学者阅读——它更像是一篇博士论文而非技术书籍,加上它的范例都具有很强的领域背景(诸如GUI窗口系统和富文本编辑器),缺乏实际经验的程序员很难理解这本书。

延伸阅读:

3. 重构

重构

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

我见过很多程序员,他们经常声称自己在重构代码,但他们实际只做了第二步(提升代码的质量),却没有保证第一步(保持代码行为),因此他们所谓的重构往往会适得其反——破坏现有代码或是引入新bug。这也是我推荐重构这本书的原因——它既介绍糟糕代码的特征(Bad smell)和改进代码的方法,也给出了重构的完整流程——1. 编写单元测试保持(Preserve)程序行为;2. 重构代码;3. 保证单元测试通过。重构还引入了一套重构术语(诸如封装字段,内联方法,和字段上移),以便程序员之间交流。只有理解了这三个方面,才能算是理解重构。

修改代码的艺术

这里再重复一遍重构的定义——在保持代码行为的基础上,提升代码的质量。重构专注于第二步,即如何提升代码的质量,而修改代码的艺术专注于第一步,即如何保持代码的行为。

提升代码质量并不困难,但保持代码行为就难多了,尤其是对没有测试的遗留代码(Legacy Code)而言——你需要首先引入测试,但遗留代码往往可测试性(Testability)很差,这时你就需要把代码变的可测试。修改代码的艺术包含大量的实用建议,用来把代码变的可测试(Testable),从而使重构变为可能,使提高代码质量变为可能。

延伸阅读:

  • 重构与模式:这本书的中文书名存在误导,它的原书书名是Refactoring to Patterns——通过重构,把模式引入代码。这本书阐述了重构和设计模式之间的关系,使得程序员可以在更高的层次上思考重构,进行重构。

4. 软件测试

How to Break Software

关于软件测试的书籍很多,但很少有一本测试书籍能像How to Break Software这般既有趣又实用。不同于传统的软件测试书籍(往往空话连篇,无法直接应用),How to Break Software非常实际——它从程序员的心理出发,分析软件错误/Bug最可能产生的路径,然后针对这些路径进行残酷的测试,以保证软件质量。

我在第一次阅读这本书时大呼作者太过“残忍”——连这些刁钻诡异的测试招数都能想出来。但这种毫不留情(Relentless)的测试风格正是每个专业程序员所应具备的心态。

注意:如果你是一个测试工程师,那么在阅读这本书前请三思——因为阅读它之后你会让你身边的程序员苦不堪言,甚至连掐死你的心都有 :-D。

xUnit Test Patterns

How to Break Software注重黑盒测试,而这本xUnit Test Patterns则注重白盒测试。正如书名所示,xUnit Test Patterns覆盖了单元测试的每个方面:从如何编写良好的单元测试,到如何设计可测试(Testable)的软件,再到如何重构测试——可以把它看作为单元测试的百科全书。

延伸阅读:

  • Practical Unit Testing with JUnit and Mockito:尽管xUnit Test Patterns覆盖了单元测试的方方面面,但它的问题在于不够与时俱进(07年出版)。Practical Unit Testing弥补了这个缺陷——它详细介绍了如何通过测试框架JUnit和Mock框架Mockito编写良好的单元测试,并给出了大量优秀单元测试的原则;
  • 单元测试的艺术(第2版):可以把这本书看作为前一本书的.Net版,适合.Net程序员;
  • Google软件测试之道:这本书详细介绍了Google如何测试软件——包括Google的软件测试流程以及Google软件测试工程师的日常工作/职业发展。需要注意的是:这本书中的测试流程在国内很可能行不通(国内企业缺乏像Google那般强大的基础设施(Infrastructure)),但它至少可以让国内企业有一个可以效仿的目标;
  • 探索式软件测试James Whittaker的另一本测试著作,不同于传统的黑盒/白盒测试,这本书创造性的把测试比喻为“探索”(Exploration),然后把不同的探索方式对应到不同的测试方式上,以便尽早发现更多的软件错误/Bug。

5. 项目管理

极客与团队

很多程序员都向往成为横扫千军(One-man Army)式的“编程英雄”,但卓越的软件并非一人之力,而是由团队合力而成。极客与团队就是这样一本写给程序员的如何在团队中工作的绝好书籍,它围绕着HRT三大原则(Humility谦逊,Respect尊重,和Trust信任),系统的介绍了如何融入团队,如何打造优秀的团队,如何领导团队,以及如何应对团队中的害群之马(Poisonous People)。这本书实用性极强,以至于Python之父Guido van Rossum都盛赞这本书“说出了我一直在做但总结不出来的东西”

人月神话

尽管人月神话成书于40年前,但它仍是软件项目管理重要的书籍。人月神话源自作者Fred Brooks领导并完成System/360OS/360这两个即是放到现在也是巨型软件项目的里程碑项目的经验总结。它覆盖了软件项目各个方面的关键概念:从工期管理(Brooks定律)到团队建设(外科团队),从程序设计(编程的本质是使用正确的数据结构)到架构设计(概念完整性),从原型设计(Plan to Throw one away)到团队交流(形式化文档+会议)。令人惊讶的是,即便40年之后,人月神话中的关键概念(包括焦油坑,Brooks定律概念完整性外科团队第二版效应等等)依然适用,而软件开发的核心复杂度仍然没有得到解决(没有银弹)。

延伸阅读:

  • 人件(原书第3版):从人的角度分析软件项目。人件从雇佣正确的人,创建健康的工作环境,以及打造高效的开发团队等角度阐述了如何改善人,从而改善软件项目;
  • 门后的秘密:卓越管理的故事:这本书生动的再现了软件项目管理工作的场景,并给出了各种实用管理技巧,如果你有意转向管理岗位,这本书不容错过;
  • 大教堂与集市:这本书从黑客的历史说起,系统而又风趣的讲述了开源运动的理论和实践,以及开源软件项目是如何运作并发展的。了解开源,从这本书开始。

6. 专业开发

程序员修炼之道:从小工到专家

不要被庸俗的译名迷惑,程序员修炼之道是一本价值极高的程序员成长手册。这本书并不局限于特定的编程语言或框架,而是提出了一套切实可行的实效(Pragmatic)开发哲学,并通过程序设计,测试,编程工具,以及项目管理等方面的实例展示了如何应用这套开发哲学,从而使得程序员更加高效专业。有人把这本书称之为迷你版代码大全——代码大全给出了大量的优秀程序设计实践,偏向术;而程序员修炼之道给出了程序设计实践背后的思想,注重道。

程序员职业素养

程序员修炼之道指出了如何成为专业程序员,这本程序员职业素养则指出了专业程序员应该是什么样子——承担责任;知道自己在做什么;知道何时说不/何时说是;在正确的时间编写正确的代码;懂得自我时间管理和工期预估;知道如何应对压力。如果你想成为专业程序员(Professional Developer)(而不是码农(Code Monkey)),这本书会为你指明前进的方向。

延伸阅读:

7. 大师之言

奇思妙想:15位计算机天才及其重大发现

奇思妙想:15位计算机天才及其重大发现是一本极具眼光的技术访谈书籍——在这本书访谈的15位计算机科学家中,竟出现了12位图灵奖获得者——要知道图灵奖从1966年设奖到现在也只有六十几位获奖者而已。

奇思妙想把计算机科学分为四大领域:编程语言;算法;架构;人工智能。并选取了每个领域下最具代表性的计算机科学家进行访谈。因为这些计算机科学家都是其所在领域的开拓者,因此他们能给出常人无法给出的深刻见解。通过这本书,你可以了解前三十年的计算机科学的发展历程——计算机科学家做了什么,而计算机又能做到/做不到什么。从而避免把时间浪费在前人已经解决的问题(或者根本无法解决的问题)上面。

编程人生:15位软件先驱访谈录

同样是访谈录,同样访谈15个人,编程人生把重点放在程序员(Coders at work)上。它从各个领域选取了15位顶尖的程序员,这些程序员既包括Ken ThompsonJamie Zawinski这些老牌Unix黑客,也包括Brad Fitzpatrick这样的80后新生代,还包括Frances AllenDonald Knuth这样的计算机科学家。这种多样性(Diversity)使得编程人生兼具严谨性和趣味性,无论你是什么类型的程序员,都能从中受益良多。

延伸阅读:

  • 图灵和ACM图灵奖(1966-2011):通过图灵奖介绍整个计算机科学发展史,非常难得的国产精品图书;
  • 编程大师访谈录:可以把这本书看作为二十年前的编程人生,被访谈者都是当时叱咤风云的人物(例如微软的创造者Bill Gates,Macintosh的发明者Jeff Raskin,以及Adobe的创始人John Warnock等等)。有趣的是这本书中大量的经验和建议到如今依然适用;
  • 编程大师智慧:类似于编程人生,不同的是被访谈者都是编程语言的设计者——这本书覆盖了除C语言以外的几乎所有主流编程语言。通过这本书,你可以从中学到编程语言背后的设计思想——编程语言为什么要被设计成这样,是什么促使设计者要在语言中加入这个特性(或拒绝那个特性)。从而提升对编程语言的理解。

8. 界面设计

写给大家看的设计书

书如其名,写给大家看的设计书是一本面向初学者的快速设计入门。它覆盖了版式,色彩,和字体这三个设计中的关键元素,并创造性的为版式设计总结出CRAP四大原则(Contrast对比,Repetition重复,Alignment对齐,Proximity亲密)。全书使用丰富生动的范例告诉读者什么是好的设计,什么是不好的设计,使得即便是对设计一无所知的人,也可以从这本书快速入门。

认知与设计:理解UI设计准则(第2版)

写给大家看的设计书强调实践,即如何做出好的设计;认知与设计:理解UI设计准则强调理论,即为什么我们会接受这样的设计而反感那样的设计。如果你想要搞清楚设计背后的心理学知识,但又不想阅读大部头的心理学著作,那么认知与设计是你的首选。

延伸阅读:

  • GUI设计禁忌 2.0:这本书指出了GUI设计的原则和常见误区,然后通过具体范例指出了如何避免这些误区。如果你的工作涉及到用户界面,那么这本书会为你减少很多麻烦;
  • 界面设计模式(第2版):这本书将用户界面中的常见元素/行为组织成彼此关联的模式,以便读者理解并举一反三,从而将其运用到自己的应用中;
  • 移动应用UI设计模式:类似于界面设计模式,但面向移动平台。它给出了iOS,Android,以及Windows Phones上常用的90余种界面设计模式,从而使得你不必把这些平台的应用挨个玩一遍也可以掌握各个平台的设计精髓。如果你主攻Android平台,那么Android应用UI设计模式会是更好的选择;
  • 配色设计原理版式设计原理:如果你读过写给大家看的设计书之后想继续深入学习设计,这两本书是不错的起点。

9. 交互设计

通用设计法则

书如其名,通用设计法则给出了重要的125个设计原则,并用简练的语言和范例展示了这些原则的实际应用。每个原则都有对应的参考文献,以便读者进一步学习。我之所以推荐这本书,是因为:1. 程序员需要对设计有全面的认识;2. 程序员并不需要知道这些设计原则是怎么来的,知道怎么用即可。这本书很好的满足了这两个要求。

交互设计精髓(第3版)

交互设计精髓是交互设计领域的圣经级著作。交互设计专家(以及VB之父)Alan Cooper在这本书中详细介绍了交互设计的原则,流程,以及方法,然后通过各种范例(主要来自桌面系统)展示了如何应用这些原则。

需要注意的是这本书的第4版已经出版,它在第三版的基础上增加了移动设计以及Web设计等内容。

延伸阅读:

  • The Design of Everyday Things:交互设计领域的另一本经典之作,它通过解读人类行动背后的心理活动,展示了设计问题的根源,并给出了一系列方法用以解决设计问题(需要注意,尽管这本书有中译版,但中译版对应的是02年的旧版,而非13年的新版);
  • The Inmates Are Running the AsylumAlan Cooper的另一本经典,这本书非常辛辣的指出让不具备人机交互知识的程序员直接编写面向用户的软件就像让精神病人管理疯人院(The Inmates Are Running the Asylum),然后给出了一套交互设计流程以挽救这个局面;
  • 简约至上:交互式设计四策略:专注于把产品变的更加简单易用。作者通过删除,组织,隐藏,和转移这四个策略,展示了如何创造出简约优质的用户体验。

个人成长

1. 职业规划

软件开发者路线图

软件开发者路线图是一本优秀且实用的程序员职业规划手册。这本书由若干个模式组成,每个模式都对应于程序员职业生涯中的特定阶段。通过这本书,读者可以很方便的找到自己目前所处的模式(阶段),应该做什么,目标是什么,以及下一个模式(阶段)会是什么。如果你时常感到迷茫,那么请阅读这本路线图,找到自己的位置,确定接下来的方向。

延伸阅读:

  • 卡耐基全集:非常著名的为人处世书籍。很多人把这本书归类到成功学,但我并不这么认为——在我看来,这本书教的更多的是如何成为一个让大家喜欢的人。作为天天和机器打交道的程序员,这套书会帮助我们与人打交道;
  • 沃顿商学院最受欢迎的谈判课:这本书不是教你去谈判,而是教你通过谈判(Negotiation)去得到更多(Getting more,这也是这本书的原书书名)。小到买菜砍价,大到争取项目,这本书中的谈判原则会让你收益良多;
  • 程序员健康指南:作为长期与计算机打交道的职业,程序员往往会受到各式各样疾病的困扰,这本书正是为了解决这个问题而出现:它从改善工作环境,调整饮食结构,预防头痛眼痛,以及进行室内/室外锻炼等方面出发,给出了一套全面且可行的程序员健康改善计划,以帮助程序员打造健康的身体。

2. 思维方式

程序员的思维修炼:开发认知潜能的九堂课

作为程序员,我们需要不断地学习——既要学习新技术,也要学习如何解决各种领域的问题。为了提升学习效率,我们需要学习如何学习程序员的思维修炼正是这样一本讲如何学习的书,它集合了认知科学,神经学,以及行为理论的最新研究成果,并系统的介绍了大脑的工作机制。通过这本书,你将学会如何高效的使用自己的大脑,从而提高思考能力,改善学习效率。

如何把事情做到最好

Mastery is not about perfection. It’s about a process, a journey. The master is the one who stays on the path day after day, year after year. The master is the one who is willing to try, and fail, and try again, for as long as he or she lives.

为什么同样资质的人,大多数人会碌碌无为,而只有极少数能做到登峰造极?如何在领域内做到顶尖?如何克服通往顶尖之路上的重重险阻?如何把事情做到最好回答了这些问题,并极具哲理的指出登峰造极并不是结果,而是一段永不停止的旅程。阅读这本书不会让你立刻脱胎换骨,但它会指引你走向正确的道路——通往登峰造极之路。

延伸阅读:

  • 怎样解题:数学思维的新方法:不要被标题中的“数学思维”吓到,它并不仅仅只是一本数学解题书,它所提出的四步解题法(理解题目->拟定方案->执行计划->总结反思)适用于任何领域;
  • 暗时间刘未鹏所写的关于学习思维方法的文章集,既包含了他对学习方法的思考,也包含了大量进一步阅读的资源;
  • 批判性思维:带你走出思维的误区:这本书系统的分析了人类思维的常见误区,并针对各个误区给出了解决方案,从而帮助程序员养成严谨正确的思考方式;
  • Conceptual Blockbusting: A Guide to Better Ideas:与批判性思维相反,这本书专注于创造性思维(Creative Thinking),它分析了阻碍创造性思维的常见思维障碍(Blockbuster)以及这些思维障碍背后的成因,并给出了各种方法以破除这些障碍。

3. 求职面试

金领简历:敲开苹果微软谷歌的大门

知己知彼,百战不殆。金领简历:敲开苹果微软谷歌的大门是程序员求职的必读书籍,它覆盖了程序员求职的方方面面:从开始准备到编写简历,从技术面试到薪酬谈判。由于该书作者曾在Google,微软,和苹果任职并进行过技术招聘,因此这本书的内容非常实用。

顺便吐个槽:这本书翻译的还不错,但我实在无法理解封面上的“进入顶级科技公司的葵花宝典”这段文字——找个工作而已,用不着切JJ这么凶残吧。-_–#

程序员面试金典(第5版)

同样是来自金领简历作者的作品,程序员面试金典(第5版)专注于技术面试题,它既包含了IT企业(诸如微软,Google,和苹果)的面试流程以及如何准备技术面试,也包含了大量(超过200道)常见技术面试题题目以及解题思路。无论你打算进入国内企业还是外企,你都应该把这本书的题目练一遍,以找到技术面试的感觉(我在求职时就曾经专门搞了一块白板,然后每二十分钟一道题的练习,效果很不错)。

延伸阅读:

  • 编程之美:微软技术面试心得:恐怕是国内技术面试第一书,这本书里面的多数题目都曾经是国内IT企业面试的必问题目。这本书的缺点是它太旧而且被用滥了(以至于一些企业开始避免使用这本书上的题目)——但你可以把它当成一本算法趣题来读;
  • 剑指Offer:名企面试官精讲典型编程题:相对于东拼西凑的XX面试宝典,剑指Offer是一本少见的国产精品技术面试书籍,尽管这本书的技术面试题目不多(60余道),但作者为大多数题目都给出了不同方式的解法,并分析了这些解法之间的优劣,此外作者还以面试官的视角分析了技术面试的各个环节,从而帮助读者把握技术面试;
  • 人人都有好工作:IT行业求职面试必读:可以把它看做金领简历的补充阅读——这本书的特点在于它给出了非常详细的简历/求职信/电子邮件编写技巧,而这正是不少国内程序员所缺乏的。

4. 英语写作

The Only Grammar Book You'll Ever Need

词汇量决定阅读能力,语法决定写作能力。计算机专业词汇并不多,但精确性非常重要,因此每个程序员都应具备良好的英语语法,但程序员并不需要过于专业的英语语法——掌握常用语法并把它用对就可以。The Only Grammar Book You’ll Ever Need正好可以满足这个需求,尽管它篇幅不大(不足200页),却覆盖了英语中的关键语法以及常见错误。把这本书读两遍,它会大幅度提高你的英语写作能力。

风格的要素

既是最畅销的英语写作书籍,也是计算机书籍中引用最多的非计算机书籍。风格的要素用极其简练的语言讲述了如何进行严肃精确清楚的英语写作。从这本书中,你不仅可以学到英语写作,更可以学到一种严谨至简的处事态度,而这正是专业开发所必需的。

延伸阅读:

  • 牛津英语用法指南(第3版):全面且权威的英语用法指南,它覆盖语法,词汇,发音,以及修辞等方面,并兼顾口语和书面语,以帮助读者掌握合理的英语用法(Proper English Usage)。不要被这本书的篇幅(1000多页)吓到——原书并没有这么厚,因为这本书被翻译成中文但又得保留原有的英文内容,所以它的篇幅几乎翻了一倍。考虑到这本书使用的词汇都很基础,所以我认为具有英语基础的读者直接阅读原版(Practical English Usage)会更合适;
  • 写作法宝:非虚构写作指南(30周年纪念版):详尽的非虚构(Non-Fiction)写作指南,无论你要写地方,技术,商务,运动,艺术,还是自传,你都可以从这本书中找到珍贵的建议;
  • 中式英语之鉴:中国人使用英语最大的问题就是会把中式思维掺杂其中,从而形成啰里啰嗦不伦不类的中式英语(Chinglish)。中式英语之鉴系统的探讨了中式英语以及其成因,然后根据成因对中式英语进行归类,并对每个类别给出了大量的实际案例以及修改建议。如果你想摆脱中式英语,那么这本书是绝好的起点。

如何使用这个书单

学而不思则罔,思而不学则殆。

不愤不启,不悱不发。举一隅不以三隅反,则不复也。

不闻不若闻之,闻之不若见之,见之不若知之,知之不若行之,学至于行之而止矣。

来自他人的书单

它山之石,可以攻玉。我在本文最后给出其他中外优秀程序员的书单,以便参考&补充。

刘未鹏(暗时间作者)

以下同一条目下用“/”隔开的表示任选,当然也可以都读。

  1. 编码:隐匿在计算机软硬件背后的语言
  2. 深入理解计算机系统 / Windows核心编程 / 程序员的自我修养
  3. 代码大全 / 程序员修炼之道
  4. 编程珠玑 / 算法概论 / 算法设计 / 编程之美
  5. C程序设计语言
  6. C++程序设计语言 / C++程序设计原理与实践 / Accelerated C++
  7. 计算机程序的构造与解释
  8. 代码整洁之道 / 实现模式
  9. 设计模式 / 敏捷软件开发(原则模式与实践)
  10. 重构

云风(中国游戏编程先行者,前网易游戏部门资深程序员,简悦创始人)

  1. C++编程思想
  2. Effective C++
  3. 深度探索C++对象模型
  4. C++语言的设计与演化
  5. C专家编程
  6. C陷阱与缺陷
  7. C语言接口与实现
  8. Lua程序设计
  9. 链接器和加载器
  10. COM本质论
  11. Windows核心编程
  12. 深入解析Windows操作系统
  13. 程序员修炼之道
  14. 代码大全
  15. UNIX编程艺术
  16. 设计模式
  17. 代码优化:有效使用内存
  18. 深入理解计算机系统
  19. 深入理解LINUX内核
  20. TCP/IP详解

洪强宁(豆瓣技术总监)

  1. 代码大全
  2. 人月神话
  3. 编码:隐匿在计算机软硬件背后的语言
  4. 计算机程序设计艺术
  5. 程序员修炼之道
  6. 设计模式
  7. 计算机程序的构造与解释
  8. 重构
  9. C程序设计语言
  10. 算法导论

陈皓(CoolShell博主)

  1. 点石成金:访客至上的Web和移动可用性设计秘笈
  2. 重来:更为简单有效的商业思维
  3. 黑客与画家
  4. 清醒思考的艺术
  5. TCP/IP详解
  6. UNIX环境高级编程
  7. UNIX网络编程

张峥(微软亚洲研究院副院长)

  1. 算法概论
  2. Data Structure and Algorithms
  3. C程序设计语言
  4. UNIX操作系统设计
  5. 编译原理
  6. 计算机体系结构:量化研究方法
  7. 当下的幸福
  8. 异类:不一样的成功启示录

Jeff Atwood(Stackoverflow联合创始人)

  1. 代码大全
  2. 人月神话
  3. 点石成金:访客至上的Web和移动可用性设计秘笈
  4. 快速软件开发
  5. 人件
  6. The Design of Everyday Things
  7. 交互设计精髓
  8. The Inmates Are Running the Asylum
  9. GUI设计禁忌 2.0
  10. 编程珠玑
  11. 程序员修炼之道
  12. 精通正则表达式

Joel Spolsky(Stackoverflow联合创始人)

软件项目管理

  1. 人件
  2. 人月神话
  3. 快速软件开发

编程技艺

  1. 代码大全
  2. 程序员修炼之道

编程哲学

  1. 禅与摩托车维修艺术
  2. 哥德尔、艾舍尔、巴赫:集异璧之大成
  3. 建筑模式语言

界面设计

  1. 点石成金:访客至上的Web和移动可用性设计秘笈
  2. 交互设计精髓
  3. The Design of Everyday Things

资本运作

  1. 漫步华尔街

图形设计

  1. 写给大家看的设计书

思维方式

  1. 影响力
  2. Helplessness On Depression, Development and Death

编程入门

  1. 编码:隐匿在计算机软硬件背后的语言
  2. C程序设计语言

DHH(Ruby on Rails创始人)

  1. Smalltalk Best Practice Patterns
  2. 重构
  3. 企业应用架构模式
  4. 领域驱动设计
  5. 你的灯亮着吗?发现问题的真正所在

参考

  1. 怎样花两年时间去面试一个人
  2. What is the single most influential book every programmer should read?
  3. Recommended Reading for Developers
  4. Book Reviews — Joel Spolsky
  5. The five programming books that meant most to me

 

 

作者:Lucida

原文链接:http://lucida.me/blog/developer-reading-list/

15 Must Read Books for Entrepreneurs in Data Science

Source: http://www.analyticsvidhya.com/blog/2016/04/15-read-books-entrepreneurs-data-science/

,

Introduction

The roots of entrepreneurship are old. But, the fruits were never so lucrative as they have been recently. Until 2010, not many of us had heard of the term ‘start-up’. And now, not a day goes by when business newspapers don’t quote them. There is sudden gush in the level of courage which people possess.

Today, I see 1 out of 5 person talking about a new business idea. Some of them even succeed too in establishing their dream company. But, only the determined ones sustain. In data science, the story is bit different.

The success in data science is mainly driven by knowledge of the subject. Entrepreneurs are not required to work at ground level, but must have sound knowledge of how it is being done. What algorithms, tools, techniques are being used to create products & services.

In order to gain this knowledge, you have two ways:

  1. You work for 5-6 years in data science, get to know things around and then start your business.
  2. You start reading books along the way and become confident to start in first few years.

I would opt for second option.

15 must read books for entrepreneurs in data science

Why read books ?

Think of our brain as a library. And, it’s a HUGE library.

How would an empty library look like? If I close my eyes and imagine, I see dust, spider webs, brownian movement of dust particles and darkness. If this imagination horrifies you, then start reading books.

The books listed below gives immense knowledge and motivation in technology arena. Reading these books will give you the chance to live many different entrepreneurial lives. Take them one by one. Don’t get overwhelmed. I’ve displayed a mix of technical and motivational books for entrepreneurs in data science. Happy Reading!

List of Books

Data Science For Businessdata science for business vidhya

This book is written by Foster Provost & Tom Fawcett. It gives a great head start to anyone, who is serious about doing business with big data analytics. It makes you believe, data is now business. No business in the world, can now sustain without leveraging the power of data. This books introduces you to real side of data analysis principles and algorithms without technical stuff. It gives you enough intuition and confidence to lead a team of data scientists and recommend what’s required. More importantly, it teaches you the winning approach to become a master at business problem solving.

Get the book: Buy Now

Big Data at Workb2

This book is written by Thomas H. Davenport. It reveals the increasing importance of big data in organizations. It talks with interesting  numbers, researches and statistics. So until 2009, companies worked on data samples. But with advent of powerful devices and data storage capabilities, companies now work on whole data. They don’t want to miss even a single bit of information. This book unveils the real side of big data, it’s influence on our daily lives, on companies and our jobs. As an entrepreneur, it is extremely important for you understand big data and its related terminologies.

Get the book: Buy Now

Lean Analyticsb3

This book is written by Alistair Croll and Benjamin Yoskovitz. It’s one of the most appreciated books on data startups. It consist of practical & detailed researches, advice, guidance which can help you to build your startup faster. It gives enough intuition to build data driven products and market them. The language is simple to understand. There are enough real world examples to make you believe, a business needs data analytics like a human needs air. To an entrepreneur, this will introduce the practical side of product development and what it takes to succeed in a red ocean market.

Get the book: Buy Now

Moneyballb4

This book is written by Michael Lewis. It’s a brilliant tale which sprinkles some serious inspiration. A guy named billy bean does what most of the world failed to imagine, just by using data and statistics. He paved the path to victory when situations weren’t favorable. Running a business needs continuous motivation. This can be a good place to start with. However, this book involves technical aspects of baseball. Hence, if you don’t know baseball, chances are you might struggle in initial chapters. A movie also has been made on this book. Do watch it!

Get the book: Buy Now

Elon Muskb5

This book is written by Ashlee Vance. I’m sure none of us are fortunate to live the life of Elon Musk, but this book let’s us dive in his life and experience rise of fantastic future. Elon is the face behind Paypal, Tesla and SpaceX. He has dreamed of making space travel easy and cheap. Recently, he was applauded by Barack Obama for the successful landing of his spaceship in an ocean. People admire him. They want to know his secrets and this is where you can look for. As on entrepreneur, you will learn about must have ingredients which you need to a become successful in technology space.

Get the book: Buy Now

Keeping up with the Quantsb6

This book is written by Thomas H Davenport and Jinho Kim. As we all know, data science is driven by numbers & maths (quants). Inspired from moneyball, this book teaches you the methods of using quantitative analysis for decision making. An entrepreneur is a terminal of decision making. One must learn to make decisions using numbers & analysis, rather than intuition. The language of this book is easy to understand and suited for non-maths background people too. Also, this book will make you comfortable with basics statistics and quantitative calculations in the world of business.

Get the book: Buy Now

The Signal and the NoiseCover of the book 'The Signal and the Noise' by Nate Silver. Published by The Penguin Press

The author of this book is Nate Silver, the famous statistician who correctly predicted US Presidential elections in 2012. This books shows the real art and science of making predictions from data. This art involves developing the ability to filter out noise and make correct predictions. It includes interesting examples which conveys the ultimate reason behind success and failure of predictions. With more and more data, predictions have become prone to noise errors. Hence, it is increasingly important to understand the science behind making predictions using big data science. The chapters of this book are interesting and intuitive.

Get the book: Buy Now

When Genius Failedb8

This book is written by Roger Lowenstein. It is an epic story of rise and failure of a hedge fund. For an entrepreneur, this book has ample lessons on investing, market conditions and capital management. It’s a story of a small bank, which used quantitative techniques for bond pricing throughout the world and ensured every invested made gives a profitable results. However, they didn’t sustain for long. Their quick rise was succeeded by failure. And, the impact of their failure was so devastating that US Federal bank stepped in to rescue the bank, because the fund’a bankruptcy would have large negative influence on world’s economy.

Get the book: Buy Now

Lean Startupb9

This book is written by Eric Ries. In one line, it teaches how to not to fail at the start of your business. It reveals proven strategies which are followed by startups around the world. It has abundance of stories to make you walk on the right path. An entrepreneur should read it when he/she feel like draining out of motivation. It teaches to you to learn quickly, implement new methods and act quickly if something doesn’t work out. This book applies to all industries and is not specific to data science.

Get the book: Buy Now

Web Analytics 2.0

b10This book is written by Avinash Kaushik. It is one of the best book to learn about web analytics. Internet is the fastest mode of collecting data. And, every entrepreneur must learn the art of internet accounting. Most of the businesses today face the challenge of weak presence on social media and internet platforms. Using various proven strategies and actionable insights, this book helps you to solve various challenges which could hamper your way. It also provides a winning template which can be applied in most of the situations. It focuses on choosing the right metric and ways to keep them in control.

Get the book: Buy Now

Predictive Analyticsb11

This book is written by Eric Seigel. It is a good follow up book after web analytics 2.0. So, once you’ve understood the underlying concept of internet data, metrics and key strategies. This book teaches you the methods of using that knowledge to make predictions. It’s simple to understand and covers many interesting case studies displaying how companies predict our behavior and sell us products. It doesn’t cover technical aspects, but explains the general working on predictive analytics and its applications. You can also check out this funny rap video by Dr. Eric Seigel:

Get the book: Buy Now

Freakonomicsb12

This book is written by Steven D Levitt and Stephen J Dubner. It shows the importance of numbers, data, quantitative analysis using various interesting stories. It says, there is a logic is everything which happens around us. Reading this book will make you aware of the unexplored depth at which data affects our real lives. It draws interesting analogy between school teachers and sumo wrestlers. Also, the bizarre stories featuring cases of criminal acts, real-estate, drug dealers will certainly add up to your exciting moments.

Get the book: Buy Now

Founders at Workb13

This book is written by Jessica Livingston. Again, this isn’t data science specific but a source of motivation to get you moving forward. It’s a collection of interviews with the founders of various startups across the world. The focus has been kept on early days i.e. how did they act when they started. This book will give you enough proven ideas, strategies and lessons to anticipate and avoid pitfalls in your initial days of business. It consist of stories by Steve Wozniak (Apple), Max Levchin (Paypal), Caterina Fake (Flikr) and many more. In total, there are 32 interviews listed which means you have the chance to learn from 32 mentors in one single book. Must read for entrepreneurs.

Get the book: Buy Now

Bootstrapping a Businessb14

This book is written by Greg Gianforte and Marcus Gibson. It teaches about the things to do when you are running short of money and still don’t want to stop. This is a must read book for every entrepreneur. Considering the amount of investment required in data science startups, this book should have a special space in an entrepreneur’s heart. It reveals various eye opening truths and strategies which can help you build a great company. Greg and Marcus proves that money is not always the reason for startup failure, it’s all about founder’s perspective. This book has stories of success and failures, again a great chance for you to live many lives by reading this book.

Get the book: Buy Now

Analytics at Workb15

This book is written by Thomas H Davenport, Jeanne G Harris and Robert Morrison. This books reveals the increased use of analytical tools & concepts by managers to make informed business decisions. The decision making process has accelerated. For a greater impact, it also consists of examples from popular companies like hotels.com, best buy and many more. It talks about recruiting, coordination with people and the use of data and analytics at an enterprise level. Many of us are aware of data and analytics. But, only a few know how to use them together. This quick book has it all !

Get the book: Buy Now

End Notes

This marks the end of this list. While compiling this list, I realized most of these books are about sharing experience and learning from the mistake of others. Also, it is immensely important to posses quantitative ability to become good in data science. I would suggest you to make a reading list and stick to it throughout the year. You can take up any book to start. I’d suggest to start with a motivational book.

Have you read any other book ? What were your key takeaways? Did you like reading this article? Do share your knowledge & experiences in the comments below.

Soft Skills: The software developer’s life manual

<a  href=”http://www.amazon.com/gp/product/1617292397/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1617292397&linkCode=as2&tag=softw05-20&linkId=BF7CMFQ5Y3OGUVJ7″><img border=”0″ src=”http://ws-na.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=1617292397&Format=_SL110_&ID=AsinImage&MarketPlace=US&ServiceVersion=20070822&WS=1&tag=softw05-20″ ></a><img src=”http://ir-na.amazon-adsystem.com/e/ir?t=softw05-20&l=as2&o=1&a=1617292397″ width=”1″ height=”1″ border=”0″ alt=”” style=”border:none !important; margin:0px !important;” />