來自:程式員江湖(微訊號:WealthyCoder)
最近有一些小夥伴問我,為什麼當初選擇走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,於是他們會覺得沒必要讀研,但是對於我這種跨專業的人來說,研究生才是我開始的第一步,跟他們沒有什麼可比性,所以對於從零開始的我來說,做研發比演演算法要靠譜的多,對於很多要轉行做程式員的人來說,也是一樣的道理,應該選擇更加符合自己實力的崗位方向,不要好高騖遠。
以上內容純屬個人觀點!
朋友會在“發現-看一看”看到你“在看”的內容