数据分析是一门专业且跨越多个领域的学科,我整理了数据分析师看的书,希望对你有所帮助:
数据分析师的必读书单:Excel
《谁说菜鸟不会数据分析》
知名度比较高的一套书,适合新手,优点是它和数据分析结合,而不是单纯地学习函数。学会函数适用的场景和过程比它本身更重要。
是否需要学习VBA是仁者见仁的答案。我个人不建议。Excel VBA的最大优势是适用性广,哪怕去其他行业其他职位,都离不开Excel,这时候它就是一个工作加分的亮点。但是在互联网行业,对数据分析师,VBA的性价比就不高了。
这里只推荐一本,因为我就翻过上面这本,还没全看…
数据分析师的必读书单:数据可视化
数据可视化的书不多。市面上多以编程为主,面向新手和设计的教程寥寥无几。 如果只是了解图表,看Excel的书籍也管用。
内容很丰富,涉及可视化的方方面面,也囊括更类编程语言和设计软件:Python+JS+R+Excel。作者还有另外一本书《数据之美》。
可视化是一门侧重灵感的学科,有一种入门技巧是从他人设计中学习,从模仿开始,了解他人是如何设计的,这个网络上有大量的信息图可以参考。当然数据分析师更需要的是如何发现,别只学习展示。
英文足够好,可以看Edward Tufte的著作:《The Visual Display of Quantitative Information》、《Envisioning Information》、《Beautiful Evidence》。他是数据可视化的领军人物,他的理念是反对为艺术效果而混淆或者简化数据。暂时没有中文版。
数据分析师的必读书单:分析思维
《金字塔原理》
分析思维首推《金字塔原理》,金字塔原理有些人说它晦涩难懂,我认为是芭芭拉这个老太有骗稿费之嫌,本书包含了报告、写文、演讲等诸多内容。可以细看可以快看。另外还有一本同名案例集,有兴趣可以买。
另外麦肯锡相关的书籍还有《麦肯锡意识》《麦肯锡工具》《麦肯锡方法》等。
《深入浅出数据分析》
深入浅出系列是对新手非常友好的丛书,用生动但啰嗦的语言讲解案例。厚厚的一本书翻起来很快。本书涉及的基础概念比较广,包含一点统计学知识,学下来对数据分析思维会有一个大概了解。
《精益数据分析》
国外的精益系列一直以互联网创业作内容导向,本书也属于此类。如果是互联网行业相关,可以看看。它介绍了不同领域的指标,以及产品不同时期的侧重点。案例都是欧美,这部分做参考用。
接下来的几本,是兴趣向读物。《黑天鹅》能拓展思维,讲叙了不确定性。《思考的技术》,大前研一的著作,也是咨询类经典。如果对咨询向的分析感兴趣,还可以看BCG系列,或者刷CaseBook。《批判性思维》,则是教你如何形成理性思维。
数据分析师的必读书单:SQL
数据库有很多种,常见有Oracle,MySQL,SQL Server等。我推荐学习MySQL,这是互联网公司的主流数据库。以后学习Hadoop生态时,MySQL也是最接近Hive语法的语言。
MySQL不需要专门看书学习,因为数据分析师以查询为主,不需要考虑数据性能、数据安全和架构的问题。使用搜索引擎能解决90%的问题,我就是w3cschool学的。
《MySQL必知必会》
如果真想买书看,可以看这本,适合新手向的学习,看基础概念和查询相关的章节即可。网络上大部分MySQL都是偏DBA的'。
如果想深入,可以看《高性能MySQL》,对分析师没啥用。至于另外一个方向NoSQL,对入门者还是小众了些。
如果有余力,就学习正则表达式吧,清洗数据的工作就靠它了。
数据分析师的必读书单:统计学
统计学是比较大的范围,分析师往后还需要学线性代数和矩阵、关系代数等。初学者不需要掌握所有公式定理的数学推导,懂得如何应用就行用。
《深入浅出统计学》
大概是最啰嗦的深入浅出系列,从卖橡皮鸭到赌博机的案例,囊括了常用的统计分析如假设检验、概率分布、描述统计、贝叶斯等。书本注重应用和趣味性,数学推理一般。
《商务与经济统计》
国外的经典教材,已经出到第十二版了。国外教材都有丰富有趣的案例,所以读起来会比国内的轻松不少。如果你还在读书,不妨买这本看一看。
名字既然有商务与经济,所以书中辅以了大量的相关案例。书内容很多,看起来不会快,适合细读。
《The Elements of Statistical Learning》
稍微有一些难度的英文书籍,属于进阶版统计学,国外很推崇。如果要往机器学习发展,这本书可以打下很好的基础。
以上书籍的难度是逐步递增的。统计学是机器学习的基础,是概率、矩阵等实际应用。现在已经有很多统计工具,Excel的分析工具库、传统行业的SPSS、SAS以及R、Python等,使用过程都不用计算推导,大学考试才会考,现在都是计算机解决,轻松不少。
数据分析师的必读书单:业务知识
不同领域的业务知识都不一样,这里以互联网举例。
《增长黑客》
增长黑客的概念就是随着这本书的畅销传播开来。增长黑客在国内即是数据分析+运营/产品的复合型人才。这本书好的地方在于拓展思路,告诉我们数据能够做什么,尤其是连AB测试都不清楚的新人。
实际涉及的业务知识不多,我推荐,是希望新人能够了解数据驱动的概念,这本算是我走上数据化运营的启蒙读物了。
《从零开始做运营》
知乎亮哥的书籍,互联网所有的数据都是和运营相关的,如果是新手,就以此学习业务知识。如果已经工作很多,就略过吧。
首先,学习基本的SQL语法。完成这个后,你就可以编写SQL语句了。这一步推荐:W3Schools的 SQL 教程。其次,学习数据库的主要功能和使用方法,比如用户相关或者权限相关等等。
我推荐两本书:
一、《MySQL必知必会》 这本书讲的非常全,从基本概念,到查询到插入新建表,用户的管理,都有具体的例子,非常适合没有任何基础的同学来学习Mysql,总之这本书学习的方法就是:1、十分钟了解下数据库的基本概念 2、找到练手的数据库 3、对照着上面的内容去敲。本书里也有大量的内容是讲sql的,可以结合w3c的sql教程一起,有取舍地看。
二、《数据库系统概念》这本书是dba必看的。看完这些并且实践+思考之后,可以算入门了。接下来对于希望深入学习的童鞋我推荐几本书(很多大神都这么推荐),《高性能MySQL(第3版)》、 《MySQL技术内幕(第4版)》,《MySQL技术内幕 InnoDB存储引擎》,《深入理解MySQL》还有Mysql的官网。读完这些东西,再加些丰富的经验,理论上来讲就具备DBA的水平了。十分推荐阅读Planet MySQL上汇总的博客,特别是Percona's MySQL &InnoDB performance and scalability blog但是,正如我开头所言的。
面对问题的时候一定要积极思考!比如:我问你,面对一个并发量比较高的场景,如何配置mysql的连接数?你可能会回答:“哦,就是调高max_connection的数值吧。”那,你有没有思考过调到多少是最合适的呢?为什么这样设置就最合适呢?也许你会回答:“恩我知道,可以看系统之前的max_used_connection的数值,然后来设置。也可以调高back_log的值。”那你有没有思考过,max_connection连接数太高会有什么不好的影响呢?back_log设置的太高有什么不好的地方呢?max_connect的上限其实是取决于mysql能获得的文件描述符的数量,也就是说你就算设置成10000,最后也是没用的,系统会根据机器的情况自动调低。也许你会回答:“恩我知道,设置太高,会有系统开销...”那你有没有思考过,这些开销具体是什么呢?是什么工作导致了需要这些内存开销?也许你还会回答,在连接创建的时候,会立刻为它分配连接缓冲区以及查询缓冲区,这些都会吃内存。那你有没有思考过,占据的资源具体是多少呢?取决于哪些因素呢?好了,我们先结束这个问题。回到知乎的问题上来,其实我说了这么多,就是表达要如何自学mysql。所以的所以,你必须不断思考,才能在工作中面对具体场景的时候,非常淡定地推断:“哦,一定是这里出了问题。应该怎么怎么做。”面对问题,拿出打破砂锅问到底的精神,先思考一番,给出自己的假设,不要着急地去找度娘,谷歌。思考过后,带着你的推断或者答案,大胆地去搜索吧!去看看别人的见解,去看看官方的描述!这才是一个工程师应有的态度。最后我想给出一些有价值的学习资料。可以省去一些时间。-电子书:我认为多看书还是有好处的。有些书值得反复看许多遍,有时候只看一遍无法深刻理解吸收,思考也不够充分
这两个产品都属于开放源码的一员,性能和功能都在高速地提高和增强。MySQL AB的人们和PostgreSQL的开发者们都在尽可能地把各自的数据库改得越来越好,所以对于任何商业数据库使用其中的任何一个都不能算是错误的选择。MySQL的背后是一个成熟的商业公司,而PostgreSQL的背后是一个庞大的志愿开发组。这使得MySQL的开发过程更为慎重,而PostgreSQL的反应更为迅速。
这样的两种背景直接导致了各自固有的优点和缺点。
1、首先是速度,MySQL通常要比PostgreSQL快得多。MySQL自已也宣称速度是他们追求的主要目标之一,基于这个原因,MySQL在以前的文档中也曾经说过并不准备支持事务和触发器。但是在最新的文档中,我们看到MySQL 4.0.2-alpha已经开始支持事务,而且在MySQL的TODO中,对触发器、约束这样的注定会降低速度的功能也列入了日程。但是,我们仍然有理由相信,MySQL将有可能一直保持速度的优势。
2、MySQL比PostgreSQL更流行,流行对于一个商业软件来说,也是一个很重要的指标,流行意味着更多的用户,意味着经受了更多的考验,意味着更好的商业支持、意味着更多、更完善的文档资料。
3、与PostgreSQL相比,MySQL更适宜在Windows环境下运行。MySQL作为一个本地的Windows应用程序运行(在 NT/Win2000/WinXP下,是一个服务),而PostgreSQL是运行在Cygwin模拟环境下。PostgreSQL在Windows下运行没有MySQL稳定,应该是可以想象的。
4、MySQL使用了线程,而PostgreSQL使用的是进程。在不同线程之间的环境转换和访问公用的存储区域显然要比在不同的进程之间要快得多。
5、MySQL可以适应24/7运行。在绝大多数情况下,你不需要为MySQL运行任何清除程序。PostgreSQL目前仍不完全适应24/7运行,这是因为你必须每隔一段时间运行一次VACUUM。
6、MySQL在权限系统上比PostgreSQL某些方面更为完善。PostgreSQL只支持对于每一个用户在一个数据库上或一个数据表上的 INSERT、SELECT和UPDATE/DELETE的授权,而MySQL允许你定义一整套的不同的数据级、表级和列级的权限。对于列级的权限, PostgreSQL可以通过建立视图,并确定视图的权限来弥补。MySQL还允许你指定基于主机的权限,这对于目前的PostgreSQL是无法实现的,但是在很多时候,这是有用的。
7、由于MySQL 4.0.2-alpha开始支持事务的概念,因此事务对于MySQL不再仅仅成为劣势。相反,因为MySQL保留无事务的表类型。这就为用户提供了更多的选择。
8、MySQL的MERGE表提供了一个独特管理多个表的方法。
9、MySQL的myisampack可以对只读表进行压缩,此后仍然可以直接访问该表中的行。
1、对事务的支持与MySQL相比,经历了更为彻底的测试。对于一个严肃的商业应用来说,事务的支持是不可或缺的。
2、MySQL对于无事务的MyISAM表。采用表锁定,一个长时间运行的查询很可能会长时间地阻碍对表的更新。而PostgreSQL不存在这样的问题。
3、PostgreSQL支持存储过程,而目前MySQL不支持,对于一个严肃的商业应用来说,作为数据库本身,有众多的商业逻辑的存在,此时使用存储过程可以在较少地增加数据库服务器的负担的前提下,对这样的商业逻辑进行封装,并可以利用数据库服务器本身的内在机制对存储过程的执行进行优化。此外存储过程的存在也避免了在网络上大量的原始的SQL语句的传输,这样的优势是显而易见的。
4、对视图的支持,视图的存在同样可以最大限度地利用数据库服务器内在的优化机制。而且对于视图权限的合理使用,事实上可以提供行级别的权限,这是MySQL的权限系统所无法实现的。
5、对触发器的支持,触发器的存在不可避免的会影响数据库运行的效率,但是与此同时,触发器的存在也有利于对商业逻辑的封装,可以减少应用程序中对同一商业逻辑的重复控制。合理地使用触发器也有利于保证数据的完整性。
6、对约束的支持。约束的作用更多地表现在对数据完整性的保证上,合理地使用约束,也可以减少编程的工作量。
7、对子查询的支持。虽然在很多情况下在SQL语句中使用子查询效率低下,而且绝大多数情况下可以使用带条件的多表连接来替代子查询,但是子查询的存在在很多时候仍然不可避免。而且使用子查询的SQL语句与使用带条件的多表连接相比具有更高的程序可读性。
8、支持R-trees这样可扩展的索引类型,可以更方便地处理一些特殊数据。
9、PostgreSQL可以更方便地使用UDF(用户定义函数)进行扩展。
这个问题很难说得清,而
且事实上除了MySQL和PostgreSQL外,使用Oracle、Sybase、Informix等也是明智的选择。如何你确定只在MySQL和PostgreSQL中进行选择,以下规则总是有效的。1、如果你的 *** 作系统是Windows,你应该使用MySQL。
2、如果你对数据库并不了十分了解,甚至不知道事务、存储过程等究竟是什么,你应该使用MySQL。
3、如果你的应用对数据的完整性和严肃性要求不高,但是追求处理的高速度。例如是一个论坛和社区,你应该使用MySQL。
4、你的应用是一个严肃的商业应用,对数据完整性要求很高。而且你希望对一些商业数据逻辑进行很好的封装,例如是一个网上银行,你应该使用PostgreSQL。
5、你的应用处理的是地理数据,由于R-TREES的存在,你应该使用PostgreSQL。
6、你是一个数据库内核的狂热爱好者,你甚至希望拥有你自己版本的数据库,毫无疑问,你必须使用PostgreSQL,没准下一个PostgreSQL版本中某一个模块的作者就是你。
以上只是作者从自己的理解尽量客观公正地评价MySQL和PostgreSQL的优劣。其中的带有倾向性的意见只代表作者个人观点,有关这两个数据库,欢迎广大朋友提出自己的看法。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)