如何成为一名大数据开发工程师

版权申明:转载请注明出处。
文章来源:http://bigdataer.net/?p=239

1.关于我

本人现在北京某大型互联网公司高级数据开发工程师一枚,三年工作经验,一年多面试官经验。

2.为啥要写这篇文章?

面试中经常会遇到这种情况:之前专心写web的Java码农突然转型想做大数据了,然后写几个大数据的项目经验跑来面试,结果就是一问三不知,还有好多人只是搭了个Hadoop环境就说自己是搞大数据的,然后来面数据开发,结果肯定悲剧。一般情况下,面试失败的我都会送走,然后针对不同的人给点建议。面试候选人一激动就要加微信,最后的结果就是人没招来几个,微信好友加了不少。这篇文章基本上就是一些经验的汇总。

3.正题

首先,我个人进入大数据行业也纯属偶然,当年实习的时候做的是纯纯的Java开发,后来正式毕业了以后找了份Java开发的工作,本以为和大多数Java猿一样天天搞增删改查了,但是巧的是搞好部门有个做大数据开发的离职了,数据开发缺人手,然后领导就让我顶上了。刚开始什么Hadoop,HDFS也是各种不懂,只会写hive,因为毕竟有SQL基础嘛。再后来发现hive实现一些东西很麻烦,就开始学习spark。网上找的例子,从Wordcount入手,边写简单的例子边看《Hadoop权威指南这本书》,不到一周时间就上手写了一个计算报表数据的作业。后来就不断深入,过程之中觉得《Hadoop权威指南》这本书每一次读都有不同的体会,前前后后应该读了有三四遍吧。
总体感受就是理解了分布式计算的模型,就知道如何写mapreduce了。但是如何进行作业优化以及数据处理过程中遇到的问题如何解决就需要更深入的研究。
前面提到来面试的有应届生也有工作几年的,针对不同的人给一些不同的建议。

3.1 对应届生

个人觉得应届生应该打好基础,大学本科一般都会开设数据结构,算法基础,操作系统,编译原理,计算机网络等课程。这些课程一定要好好学,基础扎实了学其他东西问题都不大,而且好多大公司面试都会问这些东西。如果你准备从事IT行业,这些东西对你会很有帮助。
至于学什么语言,我觉得对大数据行业来说,Java还是比较多。有时间有兴趣的话可以学学scala,这个语言写spark比较棒。
集群环境一定要搭起来。有条件的话可以搭一个小的分布式集群,没条件的可以在自己电脑上装个虚拟机然后搭一个伪分布式的集群。一来能帮助你充分认识Hadoop,而来可以在上面做点实际的东西。你所有踩得坑都是你宝贵的财富。
然后就可以试着写一些数据计算中常见的去重,排序,表关联等操作。
对于我来说,面试应届生就问你的基础,笔试大多是数据结构和算法方面的,如果你基础不错而且有一定的大数据方面的经验,基本上都会过。

3.2 对有工作经验想转行的

主要考察三个方面,一是基础,二是学习能力,三是解决问题的能力。
基础很好考察,给几道笔试题做完基本上就知道什么水平了。
学习能力还是非常重要的,毕竟写Javaweb和写mapreduce还是不一样的。大数据处理技术目前都有好多种,而且企业用的时候也不单单使用一种,再一个行业发展比较快,要时刻学习新的东西并用到实践中。
解决问题的能力在什么时候都比较重要,数据开发中尤为重要,我们同常会遇到很多数据问题,比如说最后产生的报表数据对不上,一般来说一份最终的数据往往来源于很多原始数据,中间又经过了n多处理。要求你对数据敏感,并能把握问题的本质,追根溯源,在尽可能短的时间里解决问题。
基础知识好加强,换工作前两周复习一下就行。学习能力和解决问题的能力就要在平时的工作中多锻炼。
社招的最低要求就上面三点,如果你平日还自学了一些大数据方面的东西,都是很好的加分项。
以上是个人的一些经历和见解,希望能帮到你。当然也不完全正确,如果你认为不妥可以评论开喷,哈哈。
最后祝各位看官都找到称心如意的工作!

更多文章请关注微信1公众号:bigdataer

### 大数据开发工程师的职责 大数据开发工程师的主要职责包括数据仓库建设、ETL(Extract, Transform, Load)开发、数据分析、数据指标统计、大数据实时计算平台及业务开发、平台建设及维护等工作内容[^2]。此外,他们需要熟练掌握数据仓库、Hadoop生态体系、计算及二次开发大数据平台工具的开发等技术,以确保能够高效处理海量数据并构建稳定的数据处理系统[^2]。 ### 技能要求 大数据开发工程师的技能要求较高,具体包括以下方面: - 熟练掌握数据仓库的设计与实现,能够进行数据建模和优化[^2]。 - 熟悉Hadoop生态体系,如HDFS、MapReduce、Hive、Spark等技术,并能够进行相关系统的开发与维护。 - 具备较强的编程能力,通常需要熟悉Java、Python等编程语言,并能够进行大数据平台工具的开发,如开发平台、调度系统、元数据平台等工具[^3]。 - 对数据工作具备浓厚的兴趣,具有明确的职业规划,同时还需要具备优秀的学习能力和团队沟通协作能力,对新技术有钻研精神[^4]。 ### 职业发展 作为数字化时代中的关键角色,大数据开发工程师拥有广阔而充满活力的就业和发展前景[^1]。随着数据规模的不断扩大和数字化程度的不断加深,对于大数据开发工程师的需求将持续增长,其技能要求和薪资水平也将随之提升[^1]。因此,选择成为一名大数据开发工程师将是一个充满机遇和挑战的职业选择。此外,个人素质方面,要求目光长远、态度诚恳、岗位稳定性强,能够长期培养,并具备很强的自学能力和承压能力[^4]。 ```python # 示例代码:使用PySpark进行简单的数据处理 from pyspark.sql import SparkSession # 创建SparkSession spark = SparkSession.builder.appName("Example").getOrCreate() # 读取数据 data = spark.read.format("csv").option("header", "true").load("example.csv") # 数据处理 data_filtered = data.filter(data["age"] > 30) # 展示结果 data_filtered.show() ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值