数据库开发工程师需要学习的课程有:
1、计算机导论
内容提要:为新学生提供一个关于计算机科学与技术学科的入门介绍,使他们对该学科有一个整体的认识,并了解该专业的学生应具有的基本知识和技能以及在该领域工作应有的职业道德与应遵守的法律准则。
2、数字电路与数字逻辑
内容提要:介绍数字逻辑与数字系统的基本概念、分析方法和设计原理,包括开关理论基础、组合逻辑、时序逻辑、可编程逻辑器件、数字系统等。
3、计算机组成原理与汇编语言
内容提要:以冯诺依曼计算机模型为出发点,介绍计算机的组织结构和工作原理,剖析计算机的运算器、存储器、控制器和输入输出设备的结构、工作原理和相互关系;介绍 80X86指令系统、汇编语言与汇编指令、汇编程序与汇编过程、简单汇编程序设计、汇编语言与高级语言的接口、宏汇编等。
4、计算机网络
内容提要:介绍数据通信的基本概念和计算机网络的基本原理,包括计算机网络的体系结构、数据通信的基本方法和协议、计算机网络的主要应用协议;同时介绍计算机网络系统的安全和管理知识,使学生对数据通信和计算机网络有一个全面理解。
5、计算机体系结构
内容提要:研究计算机系统结构的基本概念、基本原理、基本结构和基本分析方法,使同学在具有一定的软硬件知识基础上能综合认识计算机系统的软硬件功能分配与各种不同结构类型机器的特性和性能评价方法。为研究、开发、应用高级计算机系统打下基础。确立全面、系统的观点和学会定量分析问题的方法。
6、离散数学
内容提要:包括集合论、数理逻辑、图论、组合数学等内容,形式化的数学证明贯穿此课程。
7、高级程序设计语言
内容提要:分别以 C、C#或JAVA为例,介绍程序设计和语言,程序的基本数据结构、类型定义、简单类型和结构化类型、程序的基本控制结构、结构化程序设计、面向对象的程序设计等。
8、算法分析与设计
内容提要: 本课程延续数据结构课程的学习,从算法分析和设计的角度出发,除去传统的分类查找算法和一般的设计方法外,主要内容包括如下几个部分:算法研究的理论基础,递归分析技术,基本算法设计策略(几类经典算法学习), 多项式运算与 FFT ,串匹配,概率分析算法。 希望通过这一课程的学习,使学生能对现代的算法设计及分析的基本工具能有较全面的掌握。
9、数据结构
内容提要:介绍线性表及其链接存储结构与算法、数组与矩阵、堆栈与队列、广义表的存储结构与多元多项式表示、串与文本编辑、排序、树、图、文件结构。
10、数据库系统原理
内容提要:介绍数据库系统的基本概念、原理、方法及应用,主要包括数据库系统概论、数据库管理系统实现技术、数据库存储结构及其他类型的数据库系统。
11、编译技术
内容提要:介绍编译原理的理论和实践,包括编译程序设计、词法分析、语法分析、符号表、声明和存储管理、代码生成以及优化技术。
12、 *** 作系统
内容提要:介绍 *** 作系统的设计与实现,包括 *** 作系统各组成部分的概述、互斥性和同步性、处理器实现、调度算法、存储算法、设备管理和文件系统。
数据库开发工程师是指设计、开发、维护管理大型数据库的专业人才。
第一类是MySQL,以自由软件为主,以社团式开发为代表。版本选择4.0,侧重于在Linux平台(RedHat8.0)。MySQL数据库短小精悍,速度比较快,它是自由软件产品,现在美国国家航天局的数据库系统就是MySQL。在很多中小型的ICP有着广泛的应用。
第二类是SQL Server 2000,中小型企业数据库,界面友好,可 *** 作性强,在数据库市场占有很大的份量,SQL Server 2000是企业产品的代表,定位数据库中低端市场。
第三类是Oracle9i,中大型企业数据库,跨平台,在数据库中高市场占有很大的份量,Oracle9i介绍主要是Windows 2000平台和Linux平台(RedHat8.0)。Oracle9i在金融、电信、银行有很多经典应用。
MySQL 作为当下最为流行的关系型数据库。体积小、速度快、总体拥有成本低、开放源码,是各企业开发首选数据库。由于普及性极高,自然是面试考核的重点内容。 最近几年面试进一步向深、向广,一方面在于 MySQL 在应用层面的确很强势,另一方面对 MySQL 的掌握程度直接决定了你在技术团队的地位,不管是普通开发还是首席架构、CTO 都能够从 MySQL 中汲取技术养料。 普通开发往往积累单点技术、比如 CRUD、锁类型、索引的数据结构…而对于技术骨干、架构师则往往需要对底层原理吃透,数据库事务 ACID 是如何实现的?何时命中索引、何时不能,为什么?分布式场景下数据库怎么优化才能保持高性能? 说白了,知道怎么用是一方面,知道为什么则是更为稀缺的能力。就好比当年阿里从 Oracle 迁到 MySQL,要是没有像褚霸这种能直接修改源码的大牛,恐怕还得再推迟个两年。IT时代逐渐开始向大数据DT时代迈进,很多企业和个人纷纷开始向大数据靠拢,希望在岗起步的道路上能占有一个属于自己的数据空间,迎接以后更激烈的竞争环境。企业向大数据靠拢的方法就是招揽一些大数据方面的人才,而个人向大数据靠拢的方式就是去学习大数据。想学习大数据的人越来越多,但是,大数据到底学的课程是什么呢?大数据学习的知识点都有哪些呢?下面给大家好好普及一下,这样学起来才会有的放矢。
首先我们要了解Java语言和Linux *** 作系统,这两个是学习大数据的基础,学习的顺序不分前后。
Java :只要了解一些基础即可,做大数据不需要很深的Java 技术,学java SE 就相当于有学习大数据。基础
Linux:因为大数据相关软件都是在Linux上运行的,所以Linux要学习的扎实一些,学好Linux对你快速掌握大数据相关技术会有很大的帮助,能让你更好的理解hadoop、hive、hbase、spark等大数据软件的运行环境和网络环境配置,能少踩很多坑,学会shell就能看懂脚本这样能更容易理解和配置大数据集群。还能让你对以后新出的大数据技术学习起来更快。
好说完基础了,再说说还需要学习哪些大数据技术,可以按我写的顺序学下去。
Hadoop:这是现在流行的大数据处理平台几乎已经成为大数据的代名词,所以这个是必学的。Hadoop里面包括几个组件HDFS、MapReduce和YARN,HDFS是存储数据的地方就像我们电脑的硬盘一样文件都存储在这个上面,MapReduce是对数据进行处理计算的,它有个特点就是不管多大的数据只要给它时间它就能把数据跑完,但是时间可能不是很快所以它叫数据的批处理。
记住学到这里可以作为你学大数据的一个节点。
Zookeeper:这是个万金油,安装Hadoop的HA的时候就会用到它,以后的Hbase也会用到它。它一般用来存放一些相互协作的信息,这些信息比较小一般不会超过1M,都是使用它的软件对它有依赖,对于我们个人来讲只需要把它安装正确,让它正常的run起来就可以了。
Mysql:我们学习完大数据的处理了,接下来学习学习小数据的处理工具mysql数据库,因为一会装hive的时候要用到,mysql需要掌握到什么层度那?你能在Linux上把它安装好,运行起来,会配置简单的权限,修改root的密码,创建数据库。这里主要的是学习SQL的语法,因为hive的语法和这个非常相似。
Sqoop:这个是用于把Mysql里的数据导入到Hadoop里的。当然你也可以不用这个,直接把Mysql数据表导出成文件再放到HDFS上也是一样的,当然生产环境中使用要注意Mysql的压力。
Hive:这个东西对于会SQL语法的来说就是神器,它能让你处理大数据变的很简单,不会再费劲的编写MapReduce程序。有的人说Pig那?它和Pig差不多掌握一个就可以了。
Oozie:既然学会Hive了,我相信你一定需要这个东西,它可以帮你管理你的Hive或者MapReduce、Spark脚本,还能检查你的程序是否执行正确,出错了给你发报警并能帮你重试程序,最重要的是还能帮你配置任务的依赖关系。我相信你一定会喜欢上它的,不然你看着那一大堆脚本,和密密麻麻的crond是不是有种想屎的感觉。
Hbase:这是Hadoop生态体系中的NOSQL数据库,他的数据是按照key和value的形式存储的并且key是唯一的,所以它能用来做数据的排重,它与MYSQL相比能存储的数据量大很多。所以他常被用于大数据处理完成之后的存储目的地。
Kafka:这是个比较好用的队列工具,队列是干吗的?排队买票你知道不?数据多了同样也需要排队处理,这样与你协作的其它同学不会叫起来,你干吗给我这么多的数据(比如好几百G的文件)我怎么处理得过来,你别怪他因为他不是搞大数据的,你可以跟他讲我把数据放在队列里你使用的时候一个个拿,这样他就不在抱怨了马上灰流流的去优化他的程序去了,因为处理不过来就是他的事情。而不是你给的问题。当然我们也可以利用这个工具来做线上实时数据的入库或入HDFS,这时你可以与一个叫Flume的工具配合使用,它是专门用来提供对数据进行简单处理,并写到各种数据接受方(比如Kafka)的。
Spark:它是用来弥补基于MapReduce处理数据速度上的缺点,它的特点是把数据装载到内存中计算而不是去读慢的要死进化还特别慢的硬盘。特别适合做迭代运算,所以算法流们特别稀饭它。它是用scala编写的。Java语言或者Scala都可以 *** 作它,因为它们都是用JVM的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)