發(fā)布時間:2019-08-03 10:43??發(fā)布人:南京北大青鳥??發(fā)布來源:南京北大青鳥??瀏覽人數(shù):115
在程序員群體的“鄙視鏈”中,非科班出身的半路轉(zhuǎn)行者往往成為其中比較敏感的一部分。
伴隨著互聯(lián)網(wǎng)行業(yè)的發(fā)展,市場對Java工程師的需求一直居高不下,程序員也不再囿于計算機科學(xué)或軟件工程等個別專業(yè)的畢業(yè)生?!阜强瓢唷钩绦騿T的背景五花八門,近一些的是通信、物理、數(shù)學(xué)、自動化等理工科,遠(yuǎn)一些的則有設(shè)計、英語、藝術(shù)甚至歷史。
客觀上來說,在編程領(lǐng)域里的確存在「童子功」的說法,接觸編程時間過晚,不僅技術(shù)上處于劣勢,在思維方式、解題經(jīng)驗方面也很可能落后。這也是為何科班出身的程序員往往具備壓倒性優(yōu)勢。
不過,英雄不問出處,非科班出身的Java程序員,也千萬不要先入為主地陷入「技不如人」的自我認(rèn)知里。你學(xué)習(xí)技術(shù)是為了找到一份滿意的工作,實現(xiàn)個人價值,而互聯(lián)網(wǎng)公司更關(guān)注的是你的理論知識到底有多少能落到實際商業(yè)應(yīng)用中。
大學(xué)基礎(chǔ)教育可以讓科班出身的人有更廣博、健碩的知識體系和計算機領(lǐng)域的學(xué)習(xí)能力,但對非科班出身的童鞋而言,用業(yè)余時間補好大學(xué)4年的差距其實非常難,也并非完全必要,因為大學(xué)教育和產(chǎn)業(yè)應(yīng)用之間也存在明顯的脫節(jié)。
歸根結(jié)底,非科班的Java程序員們在開始自學(xué)計劃前,要先理解當(dāng)下的產(chǎn)業(yè)界通常對Java開發(fā)人才到底有怎樣的要求,以終為始,有針對性地彌補差距。
互聯(lián)網(wǎng)公司需要怎樣的Java工程師?
程序員招聘網(wǎng)站100 Offer從近千份 Java 招聘 JD中梳理出相關(guān)信息,并整理出近半年來,企業(yè)對 Java 工程師的主要要求,供參考。
有 3-5 年經(jīng)驗的 Java 工程師,要求算法基礎(chǔ)和編程能力扎實,有分布式、高并發(fā)經(jīng)驗優(yōu)先,可獨立負(fù)責(zé)一個模塊的開發(fā)。在技術(shù)上一專多能,不僅限于寫好 Java,還要觸類旁通,對公司業(yè)務(wù)所需的新技術(shù)能快速學(xué)習(xí)運用。
在技術(shù)專家階段,擁有成熟大廠的高并發(fā)、分布式經(jīng)驗很重要。各個公司對架構(gòu)和專家型人才的要求與業(yè)務(wù)需求結(jié)合得更緊密,因此,除了吃透技術(shù)深度、高效解決技術(shù)團隊的技術(shù)難題、做好團隊分工之外,候選人以往的業(yè)務(wù)場景也要和公司相契合。
除了以上常規(guī)要求之外,如今進入下半場的互聯(lián)網(wǎng)行業(yè)對 Java 程序員的招聘門檻的確比以往更高。
首先是對學(xué)歷等硬性背景要求更嚴(yán)。有些一線知名企業(yè)甚至要求一本、重點院校 CS 相關(guān)專業(yè)的簡歷優(yōu)先。對非科班的同學(xué)而言,這也很無奈。
其次,更注重對算法基礎(chǔ)和核心開發(fā)經(jīng)驗的考察。國內(nèi)的一線大廠近年逐步向國外互聯(lián)網(wǎng)公司看齊,開始重視對Java 程序員的算法和計算機原理的考察。此外是考核過往的核心開發(fā)經(jīng)驗。
后,有轉(zhuǎn)型能力和意愿的 Java 人,機會更多?;ヂ?lián)網(wǎng)公司在拓展新業(yè)務(wù)時,也需要轉(zhuǎn)型 Golang、Python 等更新更輕巧的技術(shù)棧,擁有 Java 和后端基礎(chǔ)的程序員轉(zhuǎn)型起來更有優(yōu)勢。
比如,騰訊的主流后端語言是 C++,阿里、TMD 是 Java,百度則是 C++、Java 和 PHP;但幾家新興獨角獸(英語流利說、嗶哩嗶哩、今日頭條和趣頭條等公司)對 Go 和 Python 的應(yīng)用更普遍,尤其是今年 Go 的勁頭很猛。因此,基礎(chǔ)扎實、學(xué)習(xí)能力強的 Java 工程師,可適用更多業(yè)務(wù)場景和開發(fā)需求,在市場上更吃香。
非科班出身該如何彌補技術(shù)差距?
100 offer還采訪了一些非科班出身的 Java 候選人,他們?nèi)缃穸汲蔀榱烁髯云髽I(yè)的技術(shù)骨干。這些「半路出家」的經(jīng)歷或許也能給你一些啟發(fā)。
剛畢業(yè)于中國好的大學(xué)數(shù)學(xué)系的那一年,小羽還壓根沒想過自己未來會和代碼發(fā)生化學(xué)反應(yīng)。她一心還想著未來出國深造,進入了一家互聯(lián)網(wǎng)金融公司,職位是產(chǎn)品經(jīng)理。
“當(dāng)時也不知道自己適合做什么,想著這份工作經(jīng)歷就算 Gap Year 吧,就被派去負(fù)責(zé)產(chǎn)品了。”小羽此前并未接觸過任何產(chǎn)品相關(guān)的知識,一切都只能靠現(xiàn)學(xué)。
九個月后,一個機會降臨到小羽面前,某金融類央企的認(rèn)證部門需要一名產(chǎn)品經(jīng)理,小羽投遞的簡歷被對方 HR 看中,很順利便錄用了她。
在與新領(lǐng)導(dǎo)的溝通中,對方得知小羽是數(shù)學(xué)系畢業(yè)的。“要不你來試試寫代碼?”面對建議,小羽稍一考慮就答應(yīng)了下來。
早在大學(xué)一年級時,小羽就在公共課程上學(xué)習(xí)到了關(guān)于 C++ 的基礎(chǔ)知識。但那時她對編程還沒有特別的興趣,答應(yīng)轉(zhuǎn)崗,更多是因為她覺得寫代碼更符合她理工科的偏好。
“一開始,人家是給我一個別的項目,讓我照著寫照著抄。”留給小羽的速成期不算太長,而她成長的方式也比較直接粗暴:看源碼。不停地看,有不懂的地方就去搜,去查,一點點拼湊出來。好在接受過多年的數(shù)學(xué)訓(xùn)練,小羽對于強調(diào)邏輯的代碼工作逐漸得心應(yīng)手。一個月后,小羽上手了 Java。
工作的第二年,小羽開始接觸 Python、Pascal 以及 C++,對于編程語言和數(shù)據(jù)庫的嘗試也越來越多。Spring、MySQL、Redis 等框架或數(shù)據(jù)庫逐漸開始被納入知識體系,由于工作內(nèi)容涉及前端開發(fā),小羽又學(xué)習(xí)了 Angular、React 等框架。甚至對于數(shù)據(jù)挖掘、svm、神經(jīng)網(wǎng)絡(luò)也有了一定涉獵。
回憶自己從入門到上手的經(jīng)驗,小羽認(rèn)為有意義的就是閱讀源碼。源碼能夠直觀、系統(tǒng)地為學(xué)習(xí)者描繪這門編程語言是如何工作的。我技術(shù)提升快的那段時間就在閱讀大量源碼,包括 JDK 的源碼。那個階段后就真的邁過了剛?cè)腴T的狀態(tài)了。
如今,小羽在一家知名軟件企業(yè)擔(dān)任架構(gòu)師,盡管進入職場僅三年,小羽早已完成了從編程新人到技術(shù)骨干的轉(zhuǎn)型。
曹巍 2009 年本科畢業(yè)于材料成型機控制工程專業(yè)。畢業(yè)后他就來到了北京,被這里的互聯(lián)網(wǎng)氣氛所打動。他感到,用余生繼續(xù)和數(shù)控機床打交道,太乏味了。
機緣巧合的是,曹巍大一的室友是一位迷戀計算機文化的工科男,在室友的帶動下,曹巍也早早自學(xué)了 Java。
Java 的特色是面向?qū)ο?,這對不接觸編程的普通人很難理解,所以我花費在思維轉(zhuǎn)換上的時間很多,剛開始花了一個多星期的時間才弄明白它究竟是怎樣一回事。
2010年1月,曹巍進入一家軟件企業(yè),擔(dān)任元數(shù)據(jù)產(chǎn)品開發(fā)。從新人開始,曹巍一邊工作一邊積累自己的技術(shù)經(jīng)驗,3 年后,曹巍進入某數(shù)碼集團負(fù)責(zé)技術(shù)架構(gòu),從 Java 到 Spring MVC、MyBatis/Hibernate、Dubbo 等服務(wù)端框架技術(shù), 再到 HTML、JSP、Servlet、JavaScript 等應(yīng)用技術(shù),他都逐一涉獵。
在代碼中摸爬滾打 8 年后,曹巍如今在一家互聯(lián)網(wǎng)企業(yè)擔(dān)任技術(shù)總監(jiān)?;仡欁约簭姆强瓢喑錾碜叩浇裉欤芪≌J(rèn)為雖然過程有些艱辛,但好在自己是一個耐得住寂寞的人,當(dāng)技藝打磨到足夠優(yōu)秀時,旁人的閑言碎語自然會終止。
對于從 0 學(xué)習(xí)一套編程語言,他認(rèn)為,在有關(guān)編程技術(shù)的深度和準(zhǔn)確性上,書本很重要。“任何東西都是碎片化的,一個技術(shù)點可以發(fā)散到其他碎片點,終就弄明白了整個脈絡(luò)。我的學(xué)習(xí)路徑是從每個技術(shù)點開始,摸清楚技術(shù)脈絡(luò),后需要深入了解技術(shù)原理就去看書。”
從別人的故事中,我們提煉出了以下6條建議,送給非科班的 Java 程序員們:
1、要有清晰的自我規(guī)劃和定位,及時了解 Java 市場的需求變化,做到知己知彼。
2、尋找合適的途徑實現(xiàn)技術(shù)入門,比如報名參加一個口碑良好的短期培訓(xùn)課程;
3、大量閱讀源碼;
4、積極發(fā)問,關(guān)鍵在于用少的時間獲取多的收益;
5、盡管技術(shù)博客和社區(qū)論壇上的大神很多,但閱讀書本仍是系統(tǒng)習(xí)得知識的好途徑;
6、轉(zhuǎn)型要趁早,越晚代價越大。
版權(quán)聲明:本文半路轉(zhuǎn)行的Java程序員是如何成為大神的: http://www.docoa.com.cn/kczx/168.html 禁止一切方式轉(zhuǎn)載、抄襲!
相關(guān)內(nèi)容:
更多人關(guān)注: