第三章01
三、专业技能准备与提升
3.1 专业技能准备与提升
3.1.1 JAVA基础
需要学习至熟练掌握Java的语法、面向对象思想、各类变量、封装继承多态、数组集合、读写I/O流、多线程、JVM、锁、设计模式等,熟悉Java的常用框架(可以使用框架做一些小的项目的程度)。
3.1.2 计算机基础知识
需要掌握思维导图中所提到的知识点,也为校招考察高频重点
3.1.3 大数据与数据仓库
需要掌握思维导图中所提到的知识点,也为校招考察高频重点
3.2 项目经历准备与提升
因为没有去实习,则我的项目是通过自己构思设计所完成的。
项目的选择:需要基于实际的应用来选择项目,大概的几个方向分为:数据仓库、实时数仓、推荐系统、离线海量数据处理、实时日志分析等,而我选择的则是实时流日志分析,因为在当下的实时推荐、微博热搜、热点新闻展示等都是基于实时的统计分析用户的行为日志而做出的操作,所以我选择了这个方向来作为自己的秋招项目。
项目技能树:
项目的结果:1、存储至HBase中的结果数据可以作为实时推荐、热搜、热点新闻等的数据支撑 2、可以实时的对存储至Redis中的数据进行可视化展示。
项目的技术难点:
- 如何使用 Kafka高效的缓存从 Flume 传输过来的用户行为数据;
- 如何使用 SparkStreaming 消费 Kafka 中的数据时达到数据去重的目的;
- 如何使用SparkStreaming达到 exactly-once 目的;
- 如何选择对大对象的共享以提高程序性能。
如何解决技术难点:如何解决技术难点,总的来说就是要对自己项目所涉及到的技术框架有深入的理解,只有对自己所选项目的技术框架有深入的理解才能设计出更高效更优的程序,除此之外,还可以通过网络搜索以及请教老师或者网络上的大数据大牛博主,一般关于各种常见的技术问题都可以比较容易找到的,善用Gooole、Stackoverflow、GitHub、Csdn可以解决我们所遇到的绝大部分问题。
总结:曾经在面试中,有一位面试官对我说,一般对于没有实习的学生来说,对项目的提问主要就是为了确认学生简历上所写的项目是否亲自做过,所以说我们一定要把自己写在简历上的项目的整体脉络、所设涉及到的技术点、项目的各个细节都要搞得十分清楚,最好自己动手做过项目,并且所做的项目要一定要具有实际的应用意义。
项目的选择需基于实际应用出发,建议同学们准备两个项目,一个是数仓方向的项目,另一个是实时开发、离线开发等方向的项目,而对于没有实习的同学来说,可以去网上搜索尚硅谷等培训学堂的大数据开发项目视频,会有视频源码笔记等,可以自己动手做一遍,然后把各个细节都吃透即可。


