我是LakeShen,专注大数据技术、互联网科技见解、程序员经验分享。
作为一名软件开发工程师,我现在从事的就是大数据方向。结合我当年校招找工作的经历,个人认为,大数据中不同岗位对于编程能力的要求是不一样的,如果你选择的是大数据平台开发或者大数据基础组件开发,这两种岗位会对你的编程能力有一定的要求,如果你选择数据研发(ETL)、大数据分析师(BI)、大数据运维这三种岗位,那么你的代码编程能力就不是那么重要(代码编程能力不是你应聘的硬性条件),更多的是考查你对于数据方面的理解,对于业务和数据中潜藏数据价值的分析,下面我来具体分析大数据需要具备怎样的编程能力。
如果你选择大数据平台开发,首先第一点,你需要掌握一门编程语言,比如Java语言。对于Java语言的基础语法、集合底层原理源码的实现、Java多线程、Java虚拟机等等,如果你希望能够进入到大厂的话,这些知识点你都必须掌握的非常牢固。对于大数据平台开发同学,其工作主要使用Java语言编写用户使用的大数据平台,用到的后端技术主要是Spring Boot。你也需要学习Spring和Spring Boot相关技术、Mybatis、Json使用等等。Spring技术中最基础的技术,AOP(面向切面编程)和IOC(控制反转)。
如果你大数据组件开发,由于大数据很多组件都是使用Java进行编写,你最好也能够有一门自己擅长的语言,同时,由于你是对大数据组件进行开发,你必须对你所选择的大数据组件的原理和源码要有很深的理解,比如你选择Hadoop,你需要了解到Hadoop 的MapReduce原理、HDFS上传数据和下载数据的流程原理、Yarn是如何管理资源的等等。你也需要有一定的大数据组件运维能力,因为你需要保证线上大数据组件的稳定性。
做大数据开发需要具备一定的编程能力,这个编程能力主要体现在以下三个方面:
第一,对编程语言的语法要比较清晰。大数据开发可以使用的编程语言比较多,包括Java语言、Python语言、Scala语言等。一般情况下在Hadoop平台下使用Java和Python比较多,在Spark平台下使用Scala语言比较多。以Java语言为例,作为大数据开发程序员来说,要掌握Java面向对象的编程过程,Java多线程开发、Java网络开发、Java数据库开发等基础部分内容,当然如果要做落地应用,还需要掌握Java Web开发的相关内容(我在头条上写了关于学习Java和Python的系列文章,感兴趣的朋友可以关注我的头条号并查看)。
第二,掌握常见算法的实现。大数据开发大部分情况下都是对数据进行各种操作(排序、分析)等,而操作这些数据就需要使用各种常见的大数据算法,比如最常见的排序算法等。算法设计与实现是大数据开发的重点内容,所以这部分能力的要求比较高。不同语言的实现过程还是稍微有一些区别的,Python语言在做算法实现方面要比Java语言简单一些。
第三,掌握平台知识。大数据编程是基于大数据平台的,所以掌握大数据平台的知识是做大数据开发的重要基础。比如Hadoop平台本身是采用Java语言开发的,所以与Java语言的整合还是比较好的,当然使用Python编程也可以。不管使用什么语言,都需要了解平台对开发的各种支撑。
总的来说,大数据开发需要学习的内容还是比较多的,除了编程语言自身的内容以外,还需要学习算法的设计与实现。另外,大数据平台有一系列功能模块和组件,要想合理利用这些模块同样需要一个学习的过程。