大學生研究生畢業季學習編程:Java+大數據技術路線分析

2019畢業季新手學習編程手冊:Java到大數據的技術路線資料分析

大學生研究生畢業季學習編程:Java+大數據技術路線分析

大三或研究生,機器學習或者其他方向,技術棧主要是Python,算法基礎還行,有個Python小項目。由於機器學習競爭激烈,但自己又沒核心競爭力,走Python後臺或者爬蟲崗位需求少。

目標:秋招找份大廠大數據開發或者後臺開發

學習路線:

1.由於已經會Python語言了,所以學Java會比較快。可以快速地過一遍Java基礎。

2.根據想走的方向針對性去準備1至2個項目,然後熟悉。可以參考案例1的學習路線去準備算法和基礎。

3.把你的Python項目也寫上,做大數據或者Java會Python也是加分的。

二、秋招的意義

1.秋招對於大企業是一場人才儲備的戰役,只有相對較大的企業才有秋招這個概念,它們有資本和資源花費大量精力進行宣傳面試,可以提前發offer,坐等你畢業來上班。

2.對於學生來說,秋招是一場大型的招聘會,可能是這輩子離大廠最近的,機會最多的,也是唯一一次有精力面對這麼多大廠的面試。

3.秋招offer在手,畢業時間我有。秋招拿了offer之後,對於你後面的面試也好,玩也好,都是起到非常關鍵的作用。至少心理負擔不會那麼大,面試起來也會更上手一次,不急不躁,玩起來也嗨,沒有就業壓力,畢業之前的時間隨意安排。

三、不同的同學備戰秋招的策略

想要在秋招拿到offer,記住以下三點,接下去的案例都圍繞這三點:

1.拿到足夠多的面試機會, 別讓自己的才華無處施展。

2.根據自己的簡歷形成系統性的知識,在面試中佔據主動地位。

3.成不驕,敗不餒。不斷地從面試中總結經驗,補自己的知識盲區。

案例1

有小公司Java實習經驗,參與過兩個項目的開發,算法不太行,基礎一般,有大數據基礎,自己做了個大數據項目。

目標:秋招想收到大數據offer,最好大廠。

分析:項目是長板,算法是短板,其他正常。所以要用最短時間把項目補紮實,成為優勢,算法逐漸拉上來,其他時間撲理論基礎上。

學習路線:

1.先把自己手頭上的Java分佈式項目弄明白,對其中的技術棧以及業務進行深入瞭解,並自己整理項目中的難點和亮點,最終能漂漂亮亮的寫在簡歷上。先熟悉手頭項目,一方面項目是面試的敲門磚,沒有項目的簡歷會顯得空洞,有項目可以避免項目經驗不足被刷。另一方面,項目在面試中也佔著很大比重,面試官比較喜歡從項目場景切入到理論知識。

2.每天安排時間刷算法,劍指offer、牛客leetcode148題,容易的先刷,刷一題整理一題到博客,先懂思路後懂代碼,一天至少1題,爭取重複刷幾遍到會手寫。大廠必問算法,而且大都劍指offer或者leetcode原題或變形題,有些只問思路。所以算法必刷,先刷思路,要整理起來,避免刷過即忘。

3.補Java集合源碼、JVM、多線程。不看書,直接去網上搜面試題,最後把高頻的整理了下來,直接剛面試題,藉助博客輔助理解。同樣,懂一題整理一題到博客。(整理的面經我學習群公告有)大數據崗位也要求Java知識,就算到時大數據面不上,面大廠Java還是妥妥的,會大數據知識可以加分。

4.熟悉大數據項目裡的技術棧和流程,理解並整理常見大數據面試題。

5.對數據庫、操作系統、計算機網絡常見面試題進行熟悉。因為這些在面試中不會佔很大比例,而且問來問去也是那幾題,所以放到最後。

6.有時間再看相關書籍,系統梳理。因為準備時間有限,而我的目的又是通過秋招面試,所以都是從面試題開始刷起,零散整理,最後有時間再通過看書系統梳理。

7.投遞小廠練手。當準備差不多的時候我就開始投遞簡歷面試小公司,通過這樣去補缺補漏。

案例2

目前正在公司實習,但已經確定不留在這家公司,打算秋招前夕辭職全身心備戰。

目標:大廠的Java或者大數據offer

路線:

1.針對目前還在公司實習或者即將去公司實習的同學,如果已經確定不留在該公司,那麼可以「面向簡歷實習」。面向簡歷實習,顧名思義,簡歷上需要什麼就學什麼。公司可以提供的資源就是項目,有文檔給你看,不懂的還有老員工可以幫你講解。你需要快速地瞭解項目所用的技術棧,以及應用的業務場景,儘可能多地去搜集相關資料和看源碼。多聽聽老員工在探討什麼技術難點,以及解決方案是怎麼實施的,不懂的就多問。

2.在實習期間估計也只有精力學習項目了,在職期間去刷算法或者補理論基礎不太現實。當把你實習的項目有目的性地吃透之後,就可以全身而退,開始刷算法和補基礎。

3.如果要找大數據相關,可以通過基礎視頻入門,自己做一兩個項目,把簡歷寫好。其餘的可以參考案例1的學習路線

案例3

懂點Java基礎,有學校課設的管理系統項目,懂基本的數據結構。

目標:秋招能進一個知名的大廠做Java。

規劃路線:

1.先用一些時間補1到2個項目,技術棧要相對好一些,這樣能保證有面試大公司的機會和進小公司的機會。

2.當你能把相對較好的項目寫在簡歷上,並且懂一部分技術棧的原理,那麼先暫停對項目的學習,轉戰Java。先從Javase開始,到JVM,最後併發編程。se和JVM理論較多,先記住能理解的,再就是理解性的背,面試前才機械性記憶。併發編程可以從常見的多線程實現開始熟悉,自己敲敲常見的多線程實現demo,以及常用的幾個線程池,再去比較每個實現方法的優缺點,參數。再由此切入到線程安全,併發鎖等等。記得整理!

3.由於數據結構算法基礎不是很紮實,可以先從常見的7大選擇,8大排序開始熟悉,儘量能手寫代碼。再就是刷劍指offer,統一先刷實現思路,遇到能理解的代碼實現也可以記住,不然只記思路也可以。每天刷,記得整理!

4.回過頭深入理解項目的技術棧,常見的技術棧面試題,項目的業務場景怎麼樣,技術棧怎麼和業務關聯,可以找出哪些實現難點,有哪些可以當亮點。

5.投遞小公司,收到面試通知之後刷數據庫、操作系統等面試題。

案例4

非科班零基礎。

目標:秋招儘量找份開發工作。

先看看Java基礎視頻入門,然後補項目、適當地補點Java基礎,懂一些基本的JVM和多線程,數據結構和算法只看基本的排序和選擇。當達到案例二的水平之後可以走它的學習路線進行進階。

總結

秋招 = 項目 + 語言基礎 + 計算機基礎 + 算法 + 軟實力

爭取在項目中有:

微服務:SpringCloud、SpringBoot、Dubbo等

分佈式服務框架:Zookeeper等

消息隊列:Kafka、RabbitMQ、RocketMQ等

內存數據庫:Memcached、Redis等

分佈式搜索引擎:Solr、Lucene、ES等

大數據框架:Hadoop、Hive、Spark等

語言基礎:

Javase、集合源碼、JVM、多線程、IO等

計算機基礎:

數據庫、計算機網絡、操作系統

算法:

基本的排序和選擇算法、劍指offer、牛客148題Leetcode等

四、部分面試題整理

Java:

Java散列表,樹對應的容器類,hashmap如何解決衝突

Java實現生產者和消費者的三種方法

init方法與clinit方法的區別

Java中的引用

Java對象的創建過程

Java中創建子類實例時會創建父類實例?

Java的類加載機制 為什麼會出現鎖機制?

抽象類和接口的區別

雙親委派模型:啟動加載器、擴展加載器、應用程序加載器

重載與重寫

Java的類型擦除

簡述Java Object類中的方法有哪些

char可以存儲漢字嘛?

抽象類和接口的區別

靜態分派與動態分派

HashMap與HashTable的區別

什麼時候使用HashMap?它有什麼特點?

HashMap的基本原理及內部數據結構

HashMap的put和get操作

簡述Java中的深拷貝與淺拷貝,C++中的淺拷貝和深拷貝

解釋一下static塊和static變量的執行順序

equals()的重寫規則

Java中如何創建線程?

JDK1.8新特性

JVM:

JVM內存佈局

JVM垃圾回收機制

JVM垃圾回收算法

哪些對象在老年代?

從年輕代到老年代執行的時間以及發生轉移的場景

為什麼存在GC?

簡單可達性分析

Minor GC安全檢查

垃圾回收器

引用記數法和可達性算法

類加載機制過程

雙親委派模型

雙親委派機制

Java集合:

排序算法比較

Hashmap是線程安全的嗎?為什麼?

ArrayList與LinkedList區別

HashMap、LinkedHashMap和TreeMap

冒泡排序的優化以及快排過程及優化

紅黑樹

JDK7與JDK8中hashmap的區別

hashmap的初始容量為什麼設置為16?

平衡二叉樹的插入刪除操作

併發編程:

鎖分段技術、ConcurrentHashMap、擴容

Java同步線程有哪些方式?

volatile 和 synchronized的區別

講一下同步異步(進程和IO)

synchronized和volatile的區別?

線程安全

對象的內存佈局

哪些是線程安全的容器?

ConcurrentHashMap介紹

線程啟動start和run

HashMap為什麼線程不安全?

簡述Java內存模型的happen before原則

volatile的原理和實現機制 || volatile到底如何保證可見性和禁止指令重排序的?

volatile關鍵字的兩層語義 || 可見性

volatile保證原子性嗎?

volatile能保證有序性嗎?

Zookeeper:

Dubbo簡介及以Zookeeper為註冊中心

Zookeeper的leader選舉過程

2PC and 3PC

簡述Zookeeper。。。watcher

簡介ZAB

簡述paxos算法

Zookeeper如何保證數據的一致性?

敘述ZAB集群數據同步的過程

Zookeeper中的ACL

Zookeeper底層實現數據一致性

Zookeeper在yarn框架中如何實現避免腦裂的?

大數據:

Kylin:

簡介Kylin

Kylin的工作原理

Kylin的技術框架

Cube、Cuboid 和 Cube Segment

Kylin 對維度表的的要求

Cube的構建過程

全量構建和增量構建的區別

流式構建原理

Hive:

Hive內部表與外部表的區別

Hive與傳統數據庫的區別

Hiverc文件

Hive分區

Hive分區過多有何壞處以及分區時的注意事項

Hive中複雜數據類型的使用好處與壞處

hive分桶?

Hive元數據庫是用來做什麼的,存儲哪些信息?

為何不使用Derby作為元數據庫?

Hive什麼情況下可以避免進行mapreduce?

Hive連接?

Hive MapJoin?

Hive的sort by, order by, distribute by, cluster by區別?

Hadoop計算框架特性

Hive優化常用手段

數據傾斜整理(轉)

使用Hive如何進行抽樣查詢?

Storm:

Storm的可靠性如何實現?包括spout和bolt兩部分

怎麼提高Storm的併發度?

Storm如何處理反壓機制?

Storm中的Stream grouping有哪幾種方式?

Storm的組件介紹

Storm怎麼完成對單詞的計數?

簡述Strom的計算結構

Spark:

Spark的運行模式

RDD是如何容錯的?

Spark和MapReduce的區別

說一下Spark的RDD

自己實現一個RDD,需要實現哪些函數或者部分?

MapReduce和Spark的區別

Spark的Stage是怎麼劃分的?如何優化?

寬依賴與窄依賴區別

Spark性能調優

Flink、Storm與Spark Stream的區別(未)

說下spark中的transform和action

RDD、DataFrame和DataSet的區別

Spark執行任務流程(standalone、yarn)

Spark的數據容錯機制

Spark技術棧有哪些組件,每個組件都有什麼功能,適合什麼應用場景?

Spark master使用zookeeper進行HA的,有哪些元數據保存在Zookeeper?以及要注意的地方

driver的功能是什麼?

spark端口

RDD有哪幾種創建方式

map和flatmap的區別

Spark的基本工作流程

Hadoop:

MR的Shuffle過程

Yarn的工作機制,以及MR Job提交運行過程

MapReduce1的工作機制和過程

HDFS寫入過程

Fsimage 與 EditLog定義及合併過程

HDFS讀過程

HDFS簡介

在向HDFS中寫數據的時候,當寫某一副本時出錯怎麼處理?

namenode的HA實現

簡述聯邦HDFS

HDFS源碼解讀--create()

NameNode高可用中editlog同步的過程

HDFS寫入過程客戶端奔潰怎麼處理?(租約恢復)

kafka:

kafka介紹

Kafka與傳統消息隊列的區別?

kafka的零拷貝

kafka消息持久化和順序讀寫?

網絡:

簡述TCP和UDP的區別

七層協議每一層的任務及作用

簡述http狀態碼

簡述http協議與https協議

簡述SSL協議

解析DNS過程

三次握手,四次揮手的過程??為什麼三握??

劍指offer常問:

字符串轉換成整數

鏈表中倒數第K個結點

二維數組中的查找

替換空格

從尾到頭打印鏈表

重建二叉樹

用兩個棧實現隊列

斐波那契數列及變形題

二進制中1的個數

在O(1)時間刪除鏈表結點

調整數組順序使奇數位於偶數前面

反轉鏈表

合併兩個排序的鏈表

樹的子結構

二叉樹的鏡像

順時針打印矩陣

棧的壓入、彈出序列

二叉搜索樹的後序遍歷序列

二叉樹中和為某一值的路徑

數組中出現次數超過一半的數字

最小的k個數

連續子數組的最大和

第一個只出現一次的字符

兩個鏈表的第一個公共結點

鏈表中環的入口結點

二叉樹的鏡像

跳臺階

變態跳臺階

矩形覆蓋

從上往下打印二叉樹

二叉搜索樹的第K個結點

大學生研究生畢業季學習編程:Java+大數據技術路線分析
大學生研究生畢業季學習編程:Java+大數據技術路線分析
大學生研究生畢業季學習編程:Java+大數據技術路線分析
大學生研究生畢業季學習編程:Java+大數據技術路線分析

後臺 回覆 01 麵肥拿走,,,記得 轉發或評論 一下 就好,謝謝支持95後的碼農

相關推薦

推薦中...