Java學到什麼程度纔可以找到工作?我從不同公司來幫你分析

非常理解,剛開始學習Java的小夥伴,尤其是那種又沒錢又沒有背景的,剛開始學習Java都關心這麼一個問題:到底把Java學到何種程度才能找到第一份工作呢?每個人都很現實,目標都是相當的一致,都是爲了能拿到像別人高薪的工作。那到底一個Java初學者要學多少Java知識,才能找到第一份Java工作呢?

在很久以前我曾經寫過一篇關於自己的文章,記錄了我IT職場中第一次面試,當時我的技術水平跟大家差不多,就是剛入門的水準,畢竟是一個剛接觸的小白。但是作爲一個剛開始工作的新手,找到一家小型公司的Java開發工作還是比較容易的,畢竟現在最多的就是互聯網公司,每個公司對於員工的要求也是天差地別。比如阿里、華爲這樣的公司,他們可能對於學歷要求比較高。而一些只有幾十個人的創業公司,他們更加註重這個人的技術能力、實踐能力、解決問題的能力。

 

我想應該用不同的公司來作爲標準,只有這樣我才覺得有現實意義:

創業型小公司

創業型小公司的特點就是人氣比較少,平時做事情比較雜。在這裏我說的是不到百人的創業公司,這樣公司在國內是最多的,以我多年在職場的經驗來看,大多數這樣的創業型公司,他們很難招聘到非常優秀的技術人才。第一個是他們沒有這樣的實力去給他們發工資,第二是比較優秀的人才一定是被大公司挖走的。這樣的公司本身沒有什麼底氣,所以他們對於應聘者要求也會比較低,學歷基本都是不看的,Java基礎知識能良好的掌握,能獨立做幾個Java Web項目,基本都可以應聘上,最基本的CRUD可以獨立完成。對於這樣的公司,已經是不錯了。

這種小型的創業公司招聘人才的渠道非常少,每個月的薪水得不到保障,而且整個辦公環境也比較差,但是工作時間倒是一點都不少。所以,像去這種類型的公司找工作,只要自己真正的學了一些本領,基本上都可以很容易找到工作。

 

中小型公司

一般定位中小型企業,都是說那些100人以上,500人以下的成熟公司。普遍都是叫不上名字,但是公司還算有發展潛力的,這樣的公司稍微正規一點,整個的辦公環境會好很多,以及一些福利待遇,而且不用擔心發不出來工資的問題。招聘技術人才和培訓人纔會有自己的一套標準。他們的要求一般都是大專學歷以上的,對於個人的技術上把關更嚴格一點,除了可以良好的掌握Java基礎知識和項目之外,還會考查你的debug能力,代碼規範、異常處理能力,以及對一些Java高級特性的理解能力,可能最好多用過一些框架。這就要求我們在學習的過程中,多付出精力寫代碼,並且對於一些原理問題要搞清楚。

總的來說,這樣公司在選拔技術人才的時候,標準更加模範化,更加有體系。不會像創業型公司那樣隨意,只要領導拍個板就行。在我看來,他們這樣的公司其實也吸引不到太多優秀人才,但不同的是,確實會有一些能力不錯的公司骨幹。

二三線互聯網公司

這種類型公司範圍非常廣,比如大家常聽說的搜狐、暢遊、新浪、360,還有一直萎靡的迅雷、金山、獵豹,甚至是愛奇藝、攜程這類現狀比較不錯的企業等等。這種級別的公司還擠不到BAT TMD等一線互聯網行列,但是如果你能進入這樣的公司,已經是非常不錯了。薪資不會低於年薪40萬。它們這樣的公司對於技術人才的要求就要非常高了。

他們的最低要求就是本科學歷,對Java基礎知識要達到精通的程度,要可以非常熟練的閱讀源碼,如果你沒看過源碼,那麼在源碼方面的面試題一定要好好準備一下。除此之外,一般來說他們還會考察你網絡知識、操作系統,考察的不會太難,能把面經上的知識點掌握了就算是比較紮實了。

這種類型的公司一般不會考太複雜的題目,他們招聘的需求一般都是中級程序員,只要知識面能夠廣,考你的題目都能說到關鍵點上面,其實不需要掌握得特別深入,也可以有機會拿到offer。

總結來說,我認爲二三線互聯網企業不太可能和戰鬥在一線的互聯網公司爭奪人才,所以他們一般爭取的都是二線人才,不需要太優秀,但至少要是中級程序員的水平,所以這種類型的公司對很多Java程序員來說機會還是非常大的。

 

一線互聯網公司和獨角獸

BAT、TMD等互聯網企業都屬於這類公司,這種規模的公司和二三線互聯網公司的發展差距還是比較大的。公司的人數規模、市場市值、還有股價方面,業務以技術爲基礎,因此規模的公司的技術就是互聯網業內最頂尖的技術。比如阿里的雲計算和中間件,頭條的推薦算法、騰訊的遊戲技術等等。

想要進這樣令人羨慕的公司,必須要掌握Java基礎、計算機基礎知識,並且是非常熟練地掌握,你需要深入理解每一個知識點,因爲面試官會不斷深入地向你提問,瞭解你的知識深度,同時,你需要對源碼有所理解,在讀懂源碼的基礎上去理解框架的實現、JDK的實現。分佈式、高併發、大數據、算法這些都是在考察的範圍之內。

另外,非常需要你對JVM虛擬機有非常清晰的認識,不僅僅只是瞭解簡單的結構,垃圾回收原理,甚至還要知道如何在遇到線上問題時通過JVM調優來解決它們。

同理,你還需要對Java併發編程和網絡編程的使用方法與底層實現原理非常熟悉,不僅僅答出NIO和BIO的區別,或者是synchronized和lock的區別,你還需要知道NIO的底層實現epoll是什麼,synchronized對應的mutex lock是什麼,lock和condition的實現原理又是什麼,而lock本身也是通過AQS、CAS操作類等組件來實現的,其中的內容實在太多,絕不只是幾道面試題就可以搞定的。

除此之外,這些公司對數據庫、緩存、分佈式技術等方面的要求都會比其他公司要高得多,你最好要搞懂MySQL的存儲引擎、索引和鎖的實現原理,Redis緩存的數據結構、備份方式、底層實現。同時如果你能理解負載均衡算法、CAP理論,甚至是raft和paxos算法,以及分佈式常用技術如消息隊列、zookeeper等等,那麼無疑也是可以爲你加分的技能。

爲什麼這些頂級的大公司的要求這麼高,因爲它們是世界上最好的互聯網公司,要招的自然也是最優秀的人才,如果考察底層原理還不能滿足他們篩選人才的需要,他們也會考察面試者的算法能力,比如LeetCode上medium難度的原題,或者是劍指offer的變式題等等,算法題相對考察理論基礎而言,篩選度更高,可以淘汰的人也更多。

我曾經在阿里呆過兩年,最後離開的原因是實在受不了每天加班到12點的作息時間。但是在阿里的這段日子,成長確實是非常大的。大公司也並沒有大家想的那麼好,除了工資高之外,其他的都是夠人受的,幾乎沒有升職空間,因爲人才太多了。幾乎每天都加班,沒有太多的生活體驗。而且條條框框特別多,每天都是在被限制。當然了,如果你有實力進入大公司,最好還是去鍛鍊幾年,年輕人嘛,還是闖一闖。如果大家對於學習Java找工作有疑惑,可以隨時跟我交流,這是我的V:Zhanlaoshi71 有問題多跟有經驗的人交流,獲取到更多的行業信息,有利於我們發展。

畢竟在這樣的公司工作年薪不會低於60萬,所以按照你目前的情況來選擇,你最終會進入什麼樣的企業,你自己心裏應該是有數的。

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