本文是个人分类『数据科学与大数据技术』的第一篇,技术学习总结篇。
———————————————————————————————————————————————————————
数据科学与大数据技术,专业代码080910T
背景:2016年2月,教育部首批中国三所高校开设的这门本科专业。
科目范畴:交叉学科,三大支撑性学科:计算机学、信息科学与统计学。
拓展性学科:主要看日后从事的领域场景,比如经济、金融,生物、医学,社会学管理学等等。
市场岗位
1、大数据的系统架构(掌握计算机体系结构、网络架构、编程范式、文件系统、分布并行处理)
2、大数据的系统分析(人工智能、机器学习、数理统计、矩阵计算、优化方法)
3、hadoop开发(大数据存储问题)
4、数据分析(至少需要熟练SPSS、STATISTIC、Eviews、SAS、大数据魔镜等数据分析软件中的一门,至少能用Acess等进行数据库开发,至少掌握一门数学软件如matalab、mathmatics进行新模型的构建,至少掌握一门编程语言。优秀的分析师可以掌握业务、管理、分析、工具、设计兼顾)
5、数据挖掘(数学知识要强一些,编程语言要掌握Java、Python)
6、大数据可视化(有点高级哈哈,涉及D3啊R啊等一些编程语言和Excel以及一些可视化工具,可以自行查阅一下或者看下面提及到的技能图谱)
下图是StuQ所总结的大数据工程师所掌握的技能图谱:
本科知识体系
数学基础:
1、数学分析,华东大的教材,习题是谢惠民版的<数学分析习题课讲义>
2、高等代数,蓝以中版。
3、离散数学,"十二五"规划的邓辉文<离散数学第三版>+配套的离散数学习题解答。
或是著名屈婉玲老教授的离散数学第三版+配套的离散数学习题解答与学习指导第三版。
4、概率论与数理统计,经典教材浙大第四版。
计算机基础:
1、编程语言(一般高校是c/cpp程序设计入门,但java和python基础是必须的,我个人认为javaee和大数据没什么联系,只不过是java语言在web上做的开发,当然作为科班也不得不学,就全当对Java的扩充了。html了解、json看懂)
2、Linux(科班学的是操作系统原理,非网络专业都没接触过,但感觉这个已经成为了企业标配,学大数据也得会Linux基本命令,操作管理和shell编程)
3、数据库原理(知其原理还是挺重要的,用mysql操作语句是基础)
4、数据结构(掌握链、队列、链表散列表、树、图,c和cpp没学好比如我就只能看java版了QAQ)
5、算法(我感觉王宏志的大数据算法挺不错的,日后有需要还得再补,算法是灵魂)
然后是一些基本技能/知识。
6、JDBC java程序与数据的接口,应该算在Java SE体系里了。
7、正则表达式 文本模式,动态处理
8、git,GitHub 版本控制工具 https://www.zhihu.com/question/20070065/answer/30521531
9、maven java开发的项目自动化构建工具
知识性补充:
有人说,操作系统、编译与计算机组成原理在三门,你对它们的理解决定了你水平的高低。
不谈正确性,但足以有一定的重要性。
UML
计算机网络和汇编,一个是网络的相关知识普及,一个是底层编程原理的理解。大概了解个什么前端后台编程,客户端与服务器的交互,tcp/ip协议,网络安全信息加密知道个什么REA啊DES啊哈希算法Md5密钥啊之类的这些常见的。
接着进入大数据技术篇。
由于未学习完,不好总结,未完待续……
Hadoop、HDFS系统,MapReduce原理,Hive数据库查询函数,Nosql
Hbase基础API查询,Sqoop,Scala,Spark基础分布式计算Spark SQL,
Spark Graphx,pyshark
Anaconda、jupyter notebook,Python,Python库NumPy、Pandas,
Python扒取,采集,清洗。Elasticsearch, Logstash, Kibana(ELK)
实时处理
Kafka,confluent,Spark Streaming,Flink,Tableau,d3.js,Matplotlib,
Flume,Storm
离线处理
Atlas,Ranger,kafka,NiFi,ETL,Oozie,机器学习模型,Cassandra,redis
Tableau
系统管理与安全
认证,授权,审计,数据保护。