大四學生如何求Java工作?

這是一篇緩解面試焦慮的文章。

背景

有讀者給我留言:大四的學生如何求一份Java的工作?並且還特別強調了他非科班和文憑不出衆的事實背景。我想這個問題具有代表性,所以寫一些個人的建議,希望能幫到一些人。

定位

要想求得一份工作,首先需要對自己做好一個定位。

考慮到那些好學校出身的同學們,他們在畢業前一年可能就參加過小招了,而普通學校的同學說實話校招的機會很少,所以在畢業前夕還在擔憂工作問題的同學,不妨先思考一下自己的定位。

公司招聘一個新員工時,有 2 個很重要的指標:

  • 潛力
  • 即戰力

面試的時候,想一想你的簡歷和你的談吐中要如何體現上面的兩點。

潛力

先說潛力。

潛力指一個人未來能達到的狀態高低。

說一個人潛力大,無非是說當前還好,但未來會表現的非常優秀。

什麼樣的人算潛力大呢?

頭腦靈活、基本功紮實、學習成績非常優秀。

頭腦靈活代表你遇到問題時,能夠很快想到對策。

基本功紮實代表你工作會讓人放心。

學習成績優秀代表你過往的綜合表現,是對你學習能力的認證。

如果你覺得你當前一樣都不佔的話,可以考慮一下即戰力。

即戰力

即戰力代表你能夠馬上投入工作和生產當中。

一般員工入職都會有試用期,主要就是考察你能不能適應團隊。

有些人面試時狀態很好,但是實際工作當中就是找不到門道,即使最後沒有通過考覈,公司爲此也要支付用人成本的。

如果,你在面試時能展現出你的即戰力,你就有很大的概率通過面試。

潛力和即戰力都很重要,優秀的人兩者兼備。

如果只能做到一點,我認爲提高即戰力在面試時更實在。

舉措

求職面試不能懵懵懂懂,沒有靈魂。

我大四的時候參加培訓班,渾渾噩噩學習 4 個月後就被趕鴨子上架去面試。通常老師逮着機會就讓你面試,通常幾十個人一起面,企業如何從來沒有想過,只想着能求得一份 offer 就好。

現在回想過來,如果當時好好計劃、好好準備,結果會更好。

所以,本節的重點是計劃和準備。

初中時候,做的試卷都是老師手寫然後複印的,總記得上面的一個詞:夯實基礎。

技術人員的核心還是基本功。

基本功

基本功包括基礎的語法、基礎的數據結構、典型的算法、基礎的計算機網絡基礎、基礎的計算機原理。

基礎語法

  • 變量
  • 關鍵字
  • if/else/while/for/switch
  • 基礎的IO操作
  • Socket 操作

基礎的數據結構及算法

  • 時間複雜度
  • 空間複雜度
  • 鏈表
  • 隊列
  • 二叉樹
  • 遞歸算法
  • 圖的廣度優先遍歷
  • 圖的深度優先遍歷

刷題

把基礎的知識學會後,要通過刷題要檢驗和鞏固。

題目可以是刷題網站的題目,也可以是現場面試的題目。

可以製作一張覈對單,把每一個你認爲要掌握的知識點記錄下來,進行覈實。

  • 遞歸算法
  • 單例算法模型
  • 動態規劃
  • SQL 基本操作

多做題,多面試,確保這張覈對單的選項通過的越來越多。

高級

掌握基礎能力的情況下,可以去學習一些更高階的知識。

多線程開發

  • 線程的實現,Thread 和 Runnable
  • 線程的阻塞與喚醒
  • 線程的同步,Synchronized 關鍵字和方法
  • 生產者-消費者模型

設計模式及原則

  • 單例模型
  • 工廠模式
  • 構造者模型
  • 觀察者模型
  • 組合模式
  • 適配器模式
  • 單一職責
  • 里氏替換原則
  • 依賴倒置原則
  • 藉口隔離原則
  • 迪米特法原則
  • 開閉原則

框架

上面講的都是基礎概念和高級概念,Java 做到實處,一般會走 Java Web 或者是 Android 路線。

所以,你能在簡歷上寫明這兩點之一很有必要。

Spring

Spring 是一套很大的框架,需要投入非常多的時間去學習它。

如果你能學習的很好,不愁找不到工作。

但是,作爲一個新手而言,面對這麼一個龐大的系統,心中要有體系,不能面對困難慌了手腳。

Spring 是一個開源框架,分層架構讓其內部的組件可以靈活更換。

Spring 講究模塊的,不同的功能封裝成不同的模塊,大概有 20 多個模塊,但是隻有一個模塊是必須的,那就是 Spring Core Container。

所以,初學時要以 Spring Core Container 爲中心,按照自己的狀態去擴展其他模塊的學習。

Spring 常見的模塊如下:

  • 核心容器
  • Spring 上下文
  • Spring AOP
  • Spring DAO
  • Spring CRM
  • Spring Web
  • Sprong MVC 框架

因爲框架的特性,學習好 Spring 需要具備一些比較高階的 Java 知識。

  • Java class 及 class loader
  • 反射
  • 泛型
  • 註解
  • 依賴倒置

需要說明的是,我並沒有做過 Spring 開發,但是我寫過上面幾個知識點的博文,閱讀量非常的高,我相信,如果我因爲業務需要應用Spring開發,我也能很快上手,方法就是我本節所陳述的。

Android

我把 Android 當作框架是因爲 Android 開發就是基於一套框架上而言的,本質上它和 Spring 沒有多大差別,不過一個應用在移動端,一個應用在 web 而已。

當然,現在的 Android 很多人用 Kotlin 開發,UI 也用 Flutter,但是作爲原生語言 Java 進行開發還是成熟度最高的手段。

學習 Android 就是在 Android Framework 中開發。

它有 4 大組件。

  • Activity
  • Service
  • Content Provider
  • Broadcast Receiver

核心組件是 Activity,它就是 APP 界面的表現。

後臺服務用 Service 實現。

Android 發展至今,開發者衆多,足夠豐富的開源庫可以讓一個新手像堆積木一樣短時間完成一個像模像樣的 APP.

Android 剛開始的幾年,APP 拼得都是 UI 的美觀和新奇,如今差異化越來越小,對於 Android 開發的要求如今更多體現在部署上。

  • 插件化開發
  • 熱更新
  • 卡頓優化
  • 內存優化
  • 安裝包優化
  • 批處理打包
  • 數據加密
  • AI 處理

如果,你能對於上面的細節和麪試官侃侃而談,那麼你的即戰力也就體現出來了。

經驗

經驗來源於你的項目或者是課題的經驗。

對於大四的學生而言,畢業設計可以嘗試用 Java 做一些東西,做過的東西可以寫到簡歷裏面去。

同時,平時也需要多積累經驗。

  • 多看看開源代碼工程
  • 自己按照自己的想法做一個小項目

不過,在網絡時代,我還是推薦大家可以用 Java 寫一個小程序。

有些同學可能會問,不知道寫什麼樣的小程序。

建議從自己真實的需求做起,從簡單的小東西做起。

比如寫一個賬號密碼保存庫,比如寫一個 To-Do List,比如寫一個日記本等等。

把一樣東西做出來的好處是顯而易見的,把技術落在實處很有必要。

做小程序的過程中,你將可能涉及到:

  • 服務器選型
  • 通信協議制定
  • 後端實現
  • 前端實現

與其不停焦慮與迷惘,不如動手做一些東西,讓這些有成就感的東西告訴你其實你也不差。

選擇

我知道,在大環境或者是自身條件的影響下,有時候你的簡歷總是石沉大海,你該怎麼辦呢?

我建議你向前看,假定一下 2 年後的你自己是什麼樣子。

想一想,那個時候你有沒有喪失對編程的熱愛?

如果你有一個積極的答案,那麼眼前的苟且並不算什麼。

也就是說,你不用執着於短暫的幾個月找不到合適的工作,不斷面試不斷學習不斷總結,總會成功的。

大公司進不了,你進小公司。
小公司也不行,你投外包公司。
外包公司也不行,你投實習生崗位。
實習生崗位也不行,你投測試崗位或者其他相關崗位。

要實現一個目標,首先就要在物理位置上接近它。

也許,你會反反覆覆在自信與自卑中輪換中煎熬,但是,咬咬牙你肯定可以過去的。

時間不會填平什麼坎坷,從來都是你自己趟了過去。

加油!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章