01、困惑的提問
昨天,讀者小何在微信上問了我這樣一個問題:
二哥,我剛參加工作一年,感覺什么也不精通。大學(xué)學(xué)的是 Java,但這一年來 Python 特別火,有幾個轉(zhuǎn)到 Python
的同學(xué)工資竟然比我高。我是不是也應(yīng)該轉(zhuǎn)呢?
類似這樣的問題還有一些,比如說阿堅:“我現(xiàn)在大一,學(xué)的是 C++,聽說畢業(yè)后不太好找工作,二哥什么好的建議嗎?”
對于初入職場或者在校的同學(xué)來說,選擇哪一門語言意味著未來的收益(掙到的錢)可能會有顯著的不同。
況且技術(shù)的更新迭代實在是太快了。你完全預(yù)料不到!如果選擇錯了,付出的代價也是沉重的。
不知道你有沒有這種感覺啊,前幾年盛行的安卓,好像一下子就涼透了。背后的原因也很簡單,就是微信公眾號和小程序的推而廣之,導(dǎo)致 APP 的需求量大幅降低。
就在去年這個時候,我還特意買了幾本安卓的書,學(xué)習(xí)了一下,在 CSDN
上順帶分享了幾篇學(xué)習(xí)筆記,閱讀量還不錯。但最近聽朋友說,他在公號上推安卓方面的文章時,閱讀量真的是慘不忍睹啊。
02、技術(shù)方向
從大的層面來看,技術(shù)方向可以分為兩種:前端和后端。計算機(jī)“文盲”經(jīng)常性會把后端誤認(rèn)為是“后臺”(網(wǎng)站管理后臺)——做外包這些年,我遇到過不少這樣的甲方,每次我都需要耐心地給他們解釋好一會兒。
那接下來,我就要開始解釋了(開個玩笑)。我們來談?wù)勄岸撕秃蠖说囊恍┶厔莅?,大家可以作為參考?br>
1)前端
前端工程師近兩年來非常吃香啊,尤其是前端前面加了一個“大”字之后,也就是現(xiàn)在非常流行的“大前端”,就好像“大數(shù)據(jù)”一樣。(借此機(jī)會,你可以體會一下“大哥”和“哥”之間的差別有多大)
我想,前端技術(shù)里面最不會過時的就是 HTML + CSS + JavaScript
了吧。為什么這么說呢?因為它們是前端開發(fā)的基礎(chǔ),并且標(biāo)準(zhǔn)也在逐年更新。如果你用開發(fā)者模式觀察一下的話,你會發(fā)現(xiàn),所有網(wǎng)站的源代碼里面都少不了這老三樣。
排名第二的應(yīng)該是 Node.js,它逐漸成為了前端開發(fā)的基礎(chǔ)技術(shù),正在變得越來越重要。上個月,我在使用 Jekyll + GitHub Pages
配置個人網(wǎng)站的時,它就要求我要先安裝 Node.js 環(huán)境(由此可見吧)。
排名第三的應(yīng)該是 Vue.js / Angular / React.js,它們在 2018 年的時候已經(jīng)成為趨勢,2019 年也沒有呈現(xiàn)出任何的頹勢。尤其是
Vue.js,其作者尤雨溪因為長得帥,成為了廣大前端程序員心目中的大神(偶像)。
排名第四的應(yīng)該是 Stencil,其官方的介紹如下:
Stencil is a toolchain for building reusable, scalable Design Systems.
Generate small, blazing fast, and 100% standards based Web Components that run
in every browser.
我先蹩腳地翻譯一下,大家將就看看。Stencil 是一個工具鏈,用于構(gòu)建可重用的、可擴(kuò)展的設(shè)計系統(tǒng)??梢陨尚∏傻摹⒖焖俚?、 100% 的基于標(biāo)準(zhǔn)的 Web
組件,關(guān)鍵的是可以在所有的瀏覽器中運(yùn)行。
這就厲害了,不需要考慮瀏覽器的兼容性,還能夠和任何主流的框架(Vue.js / Angular / React.js)搭配使用。
排名第五的應(yīng)該是 PWA(Progressive Web Apps),漸進(jìn)式 Web
應(yīng)用程序,快速、可靠,還能夠讓用戶感覺像原生應(yīng)用一樣,體驗非常棒。Google 提出的概念,應(yīng)該不會差。
好了,前端就說這五個吧(排名僅供參考?。?。
2)后端
說到后端,可能會有人開玩笑說:“主流不一直是 PHP 嗎?”雖然說這是一句玩笑話,但是,我并不怎么敢反駁。
從讀者群體里了解一下,洛陽做 PHP 的程序員真的蠻多的,盡管開源 PHP 的官方團(tuán)隊已經(jīng)解散了。不管怎樣,一個鐵打的事實是,PHP 語言在過去的 20
年里給許許多多的人帶去了工作機(jī)會。
在我們繼續(xù)聊下去之前,請允許我驕傲地宣稱一件事:我是一名 Java 程序員。Java
到底有多牛逼,已經(jīng)不需要我再吹了,反正我已經(jīng)靠它吃飯了許多年,未來還要再吃幾年。
(雖然不用吹,但多少得說幾句)
Java 是一門以 Class 為單位,高度面向?qū)ο蟮母呒壘幊陶Z言。Java 的設(shè)計初衷是“寫一次代碼,在哪里都可以用” 。Java
可以完成任何規(guī)模的任務(wù),所以它是很多公司在做商業(yè)級項目的時候的首選。
Jame Gosling 在 1995 年的時候設(shè)計了Java,似乎 Java 一出生就有做老大的氣質(zhì)。事實上,確實做了好多好多年。
那 Python 呢?
Python 是一門擁有簡潔語法的高級編程語言。一位名叫 Guido van Rossum 的荷蘭大佬在 1991 年就設(shè)計了它。Rossum 設(shè)計
Python 的初衷是為了讓代碼讀起來更輕松,并且讓程序員寫更少的代碼。
曾經(jīng)有一位 Python 的粉絲寫過一首名為 The Zen of Python (Python 之禪)的贊美詩,我們來欣賞一下。
優(yōu)美勝于丑陋
明了勝于晦澀
簡潔勝于復(fù)雜
復(fù)雜勝于凌亂
扁平勝于嵌套
間隔勝于緊湊
可讀性很重要
寫得很不錯吧?我覺得這位粉絲太有才了。
當(dāng)然了,Python 火的原因可不是因為 Python 的優(yōu)雅,而是人工智能和數(shù)據(jù)分析。涉及機(jī)器學(xué)習(xí)、深度學(xué)習(xí)、神經(jīng)網(wǎng)絡(luò)這些高大上的領(lǐng)域,絕對避不開
Python。所以可想而知嘛。
限于篇幅原因,后端技術(shù)我們就到此為止。
03、到底怎么選
說了這么多,關(guān)鍵的問題來了,到底選擇什么技術(shù)方向呢?
前端程序員已經(jīng)很明確了,按照我說的趨勢去選就沒錯了。后端程序員呢?來看一份榜單吧,數(shù)據(jù)來源于可靠的 TIOBE。
看完這張榜單,我相信你心里應(yīng)該也有數(shù)了,對不對?
比如說小何,沒必要糾結(jié)是選擇 Java 還是 Python,這兩門語言現(xiàn)在霸占了狀元和探花的位置。據(jù)我所知,Java 工程師和 Python
工程師的薪資待遇并沒有明顯的差別。如果不打算往人工智能和數(shù)據(jù)分析方向轉(zhuǎn)的話,抱緊 Java 這個大腿就行了。
就未來的發(fā)展前景來看,Java 也并沒有呈現(xiàn)出任何的頹勢。如果你有一部安卓手機(jī),幾乎所有 App 都是用 Java
寫的。大型網(wǎng)站的后端,比如說淘寶、京東也都主要是用 Java 開發(fā)的。大型的企業(yè)級應(yīng)用,比如 CRM 系統(tǒng)、ERP 系統(tǒng)也大多數(shù)是用 Java
開發(fā)的。越來越火的大數(shù)據(jù),其主流框架 Hadoop 的開發(fā)語言也是 Java。
不過,從增長的百分比來看,Python 的增幅最大,這說明 Python 的潛力十足。如果時間充足的話,可以自學(xué),以備后患。反正我已經(jīng)準(zhǔn)備學(xué)習(xí)了。
至于阿堅同學(xué),也沒必要過于憂慮,三年畢業(yè)后還不至于找不到工作。畢竟 C++ 的底蘊(yùn)還是在的。況且,如果把 C++ 吃透的話,學(xué)習(xí)其他語言也完全不在話下。
04、最后的忠告
選擇技術(shù)方向,選擇一門語言,本質(zhì)上都是一種投資。
在日新月異的科技時代,沒有人敢打包票說未來幾年后一定流行什么,不流行什么。還是那句話,技術(shù)更新迭代太快了!
那怎么讓投資收益最大化呢?
說實話,我也沒有定論(皮一下)。
A:選擇年輕的語言(技術(shù)方向),意味著風(fēng)險越大,因為它就像流星一樣,燦爛,但易逝。有句俗話,你也聽過:“風(fēng)險越大,回報也許也大”。
B:選擇市場已經(jīng)認(rèn)可的語言,意味著越穩(wěn)定,畢竟活得越久越需要能耐。
C:把浮躁的心安定下來,讓時間來證明一切。專注于你當(dāng)下選擇的語言,深耕的同時注意抬頭看一看就行了。
好了,我說完了我的看法,說說你的吧?
?
熱門工具 換一換