<section data-tools="135編輯器" data-id="23">php
<section>前端
閱讀本文大概須要 2.8 分鐘。程序員
</section>web
</section>面試
做者:黃小斜算法
文章來源:微信公衆號【程序員江湖】編程
最近有一些小夥伴問我,爲何當初選擇走Java這條路,爲何不作C++、前端之類的方向呢,另外還有一些聲音:研究生不是應該去作算法方向麼,本科生不就能夠作開發了嗎,爲何還要讀研呢。其實吧,這個問題擱在不一樣人身上,回答可能也是徹底不同的。我可能仍是主要以個人角度出發,結合一些讀者的問題,來講一說爲何要選擇Java這條路。後端
我最先接觸的語言應該是c,再後來又接觸了前端、php、C#等語言,對這些語言的瞭解也僅限於懂得基本語法,寫過一些小demo而已,那時候以爲掌握一門語言就是掌握它的語法就好了,因而會在簡歷上寫,瞭解各類語言,如今想一想實在是太好笑了。微信
不過真的不少初學者都會這麼認爲,以爲本身無論選哪一個方向均可以,這是由於他們不知道本身的技術方向究竟是什麼,由於他們無論哪一個方向都不精。網絡
後來慢慢接觸了Android開發,能本身寫一些app,以爲這個方向還挺有趣的,因而想着之後乾脆作這個吧。不過我那時候也明白本身離進大廠還有很遠的距離,因而打算考研。巧的是,讀研前的那個假期,去了一家公司實習,作的是Java Web,那時候才以爲Android比Java Web簡單多了呀,徹底不須要學那麼多框架、技術啊,因而更堅決了作Android的決心,只不過那時候也一樣發現了,Java web是更加熱門的方向,崗位需求量也更大。
讀研的時候,一開始也是打算作Android方向的,買了各種Android書籍開始啃,那時候恰好遇到了個實踐課程,讓咱們選方向,有Java、Android、C++等等。當時妹子作前端,爲了帶上妹子一塊兒作項目,乾脆就選了Java Web這個方向,想着應該不影響我作Android啊,因而接下來的時間裏就開始學Java Web了。
時間一長,發現這個方向也沒有想象的那麼難,相反還挺有意思的,畢竟能用到各類各樣的框架,技術棧的內容也很豐富,看起來好像比Android的技術含量高不少,加上本身以前學過Java,也有Java Web的學習經歷,簡歷上也能寫的好看一點,因而一不作二不休,就開始作Java方向了。就這樣,我找到了第一份Java實習,看了一遍Java後端書單,慢慢地在這條路上越走越遠,後來我才發現,Java Web遠沒有想象中那麼簡單,Java後端技術棧也遠不止Java Web這點內容,特別是對於大廠來講,要掌握的東西實在太多了,好比分佈式、網絡編程、中間件等等。
因此,選擇方向這件事,有時候就是看興趣,看機遇,看你能堅持多久,若是你對一個方向感興趣,而且願意持續學習,不斷深挖,這個方向可能就適合你,當你在這個方向投入了必定時間以後,有了必定積累和經驗,就不太容易再改變方向了。
以前也有不少讀者問過這個問題,作哪一個方向更有前景,更有錢景。雖然我只作過一個方向,可是對其餘方向也有一些瞭解和涉獵,不敢說了解得很是多,可是結合本身身邊的同窗、朋友的狀況,仍是能夠給出一些比較中肯的建議。
其實我最先打算作的是遊戲開發的,因此咱們先聊聊遊戲開發這個方向。
網易遊戲在前幾年對遊戲開發的招聘要求是985碩士以上學歷,當時我就是衝着這個要求考了研,後來卻沒有去作遊戲開發,主要緣由是遊戲開發主要用的是C++,而且主要的崗位要求是客戶端方向的技術,好比圖形學、引擎技術,以及對C++的掌握程度。
當時自認爲有一些Java基礎,不肯意轉C++,同時也感受遊戲行業大廠太少了,除了騰訊網易就沒有什麼大公司了,職業發展的空間可能也不大。本身雖然愛玩遊戲,可是作開發和玩遊戲畢竟是兩碼事。固然,近兩年遊戲開發的崗位需求其實仍是很大的,由於如今作遊戲開發的人太少了,致使網易遊戲放寬了研發工程師的標準,只要求211以上便可,因此,想要從事遊戲開發的朋友,其實如今進大廠的機會可能比以前更多了。
說完遊戲開發,說一說C++,C++方向和Java同樣主要是作後端的,雖然遊戲開發大部分也用的是C++,可是C++服務端的需求量確實沒有Java大,加上C++的學習難度稍微搞一點,因此我沒有選擇這個方向。
固然,如今作CV等算法方向的同窗都會用到C++,因此相對Java來講,C++方向選擇崗位的範圍可能也更多一些。不過,正如Java也能作大數據開發同樣,選擇方向並非選擇語言,好比你作遊戲開發或者算法方向,要學的遠不止C++,作大數據方向,Java也只是很小的一部分而已。
除此以外,前端、測試、移動端等方向也有不少機會,這些方向的學習難度可能要稍微簡單那麼一點,因此有不少女生會選擇這些方向,若是你想進大廠卻對本身不是頗有信心,那麼這些方向也是很不錯的選擇。
再聊聊如今很火的人工智能、機器學習方向,這個方向說實話最難的地方在於理論知識,也就是機器學習理論、算法模型、統計學知識等內容。不少人對這個方向趨之若鶩的緣由,很大程度上是由於這個方向的薪資高,而且相對工程方向來講,工做強度要低一些。
可是,這麼熱門的方向,競爭有多激烈就不用多說了,大廠的算法崗簡歷多到數不勝數,你沒有論文、實習經歷或者比賽爲你背書,基本上連簡歷篩選都過不去,就算你的簡歷很漂亮,可是不少時候因爲崗位需求量很少,只要你不是特別優秀,就可能被安排到研發崗位,這也是我身邊不少同窗親身經歷的。再有一點,就是有不少算法方向的博士畢業生也會和你競爭,這就有點嚇人了,總之,算法方向仍是比研發方向更加有難度的,不論是學習難度、面試難度,還競爭激烈程度,都更加明顯。
不少人以爲讀研就應該作算法,本科生才作研發,我對此不敢苟同,由於主要仍是還看我的實際狀況,若是你想進大廠,那麼至少本科的時候就要有很紮實的基礎實力,這對大部分同窗來講都是比較困難的,若是你不是名校出身,我以爲進大廠的難度仍是比較大的。
不少名校背景的本科生確實能夠拿到大廠的研發offer,因而他們會以爲不必讀研,可是對於我這種跨專業的人來講,研究生纔是我開始的第一步,跟他們沒有什麼可比性,因此對於從零開始的我來講,作研發比算法要靠譜的多,對於不少要轉行作程序員的人來講,也是同樣的道理,應該選擇更加符合本身實力的崗位方向,不要好高騖遠。
以上內容純屬我的觀點!
文能碼字,武能coding,是我黃小斜,不是黃老邪噢。