昨天,讀者小何在微信上問了我這樣一個問題:前端
二哥,我剛參加工做一年,感受什麼也不精通。大學學的是 Java,但這一年來 Python 特別火,有幾個轉到 Python 的同窗工資居然比我高。我是否是也應該轉呢?程序員
相似這樣的問題還有一些,好比說阿堅:「我如今大一,學的是 C++,據說畢業後不太好找工做,二哥什麼好的建議嗎?」編程
對於初入職場或者在校的同窗來講,選擇哪一門語言意味着將來的收益(掙到的錢)可能會有顯著的不一樣。小程序
何況技術的更新迭代實在是太快了。你徹底預料不到!若是選擇錯了,付出的代價也是沉重的。後端
不知道你有沒有這種感受啊,前幾年盛行的安卓,好像一會兒就涼透了。背後的緣由也很簡單,就是微信公衆號和小程序的推而廣之,致使 APP 的需求量大幅下降。瀏覽器
就在去年這個時候,我還特地買了幾本安卓的書,學習了一下,在 CSDN 上順帶分享了幾篇學習筆記,閱讀量還不錯。但最近聽朋友說,他在公號上推安卓方面的文章時,閱讀量真的是慘不忍睹啊。微信
從大的層面來看,技術方向能夠分爲兩種:前端和後端。計算機「文盲」常常性會把後端誤認爲是「後臺」(網站管理後臺)——作外包這些年,我遇到過很多這樣的甲方,每次我都須要耐心地給他們解釋好一下子。網絡
那接下來,我就要開始解釋了(開個玩笑)。咱們來談談前端和後端的一些趨勢吧,你們能夠做爲參考。前端工程師
前端工程師近兩年來很是吃香啊,尤爲是前端前面加了一個「大」字以後,也就是如今很是流行的「大前端」,就好像「大數據」同樣。(藉此機會,你能夠體會一下「大哥」和「哥」之間的差異有多大)框架
我想,前端技術裏面最不會過期的就是 HTML + CSS + JavaScript 了吧。爲何這麼說呢?由於它們是前端開發的基礎,而且標準也在逐年更新。若是你用開發者模式觀察一下的話,你會發現,全部網站的源代碼裏面都少不了這老三樣。
排名第二的應該是 Node.js,它逐漸成爲了前端開發的基礎技術,正在變得愈來愈重要。上個月,我在使用 Jekyll + GitHub Pages 配置我的網站的時,它就要求我要先安裝 Node.js 環境(因而可知吧)。
排名第三的應該是 Vue.js / Angular / React.js,它們在 2018 年的時候已經成爲趨勢,2019 年也沒有呈現出任何的頹勢。尤爲是 Vue.js,其做者尤雨溪由於長得帥,成爲了廣大前端程序員心目中的大神(偶像)。
排名第四的應該是 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 是一個工具鏈,用於構建可重用的、可擴展的設計系統。能夠生成小巧的、快速的、 100% 的基於標準的 Web 組件,關鍵的是能夠在全部的瀏覽器中運行。
這就厲害了,不須要考慮瀏覽器的兼容性,還可以和任何主流的框架(Vue.js / Angular / React.js)搭配使用。
排名第五的應該是 PWA(Progressive Web Apps),漸進式 Web 應用程序,快速、可靠,還可以讓用戶感受像原生應用同樣,體驗很是棒。Google 提出的概念,應該不會差。
好了,前端就說這五個吧(排名僅供參考啊)。
說到後端,可能會有人開玩笑說:「主流不一直是 PHP 嗎?」雖說這是一句玩笑話,可是,我並不怎麼敢反駁。
從讀者羣體裏瞭解一下,洛陽作 PHP 的程序員真的蠻多的,儘管開源 PHP 的官方團隊已經解散了。無論怎樣,一個鐵打的事實是,PHP 語言在過去的 20 年裏給許許多多的人帶去了工做機會。
在咱們繼續聊下去以前,請容許我驕傲地宣稱一件事:我是一名 Java 程序員。Java 到底有多牛逼,已經不須要我再吹了,反正我已經靠它吃飯了許多年,將來還要再吃幾年。
(雖然不用吹,但多少得說幾句)
Java 是一門以 Class 爲單位,高度面向對象的高級編程語言。Java 的設計初衷是「寫一次代碼,在哪裏均可以用」 。Java 能夠完成任何規模的任務,因此它是不少公司在作商業級項目的時候的首選。
Jame Gosling 在 1995 年的時候設計了Java,彷佛 Java 一出生就有作老大的氣質。事實上,確實作了好多好多年。
那 Python 呢?
Python 是一門擁有簡潔語法的高級編程語言。一位名叫 Guido van Rossum 的荷蘭大佬在 1991 年就設計了它。Rossum 設計 Python 的初衷是爲了讓代碼讀起來更輕鬆,而且讓程序員寫更少的代碼。
曾經有一位 Python 的粉絲寫過一首名爲 The Zen of Python (Python 之禪)的讚美詩,咱們來欣賞一下。
優美勝於醜陋
明瞭勝於晦澀
簡潔勝於複雜
複雜勝於凌亂
扁平勝於嵌套
間隔勝於緊湊
可讀性很重要
寫得很不錯吧?我以爲這位粉絲太有才了。
固然了,Python 火的緣由可不是由於 Python 的優雅,而是人工智能和數據分析。涉及機器學習、深度學習、神經網絡這些高大上的領域,絕對避不開 Python。因此可想而知嘛。
限於篇幅緣由,後端技術咱們就到此爲止。
說了這麼多,關鍵的問題來了,到底選擇什麼技術方向呢?
前端程序員已經很明確了,按照我說的趨勢去選就沒錯了。後端程序員呢?來看一份榜單吧,數據來源於可靠的 TIOBE。
看完這張榜單,我相信你內心應該也有數了,對不對?
好比說小何,不必糾結是選擇 Java 仍是 Python,這兩門語言如今霸佔了狀元和探花的位置。據我所知,Java 工程師和 Python 工程師的薪資待遇並無明顯的差異。若是不打算往人工智能和數據分析方向轉的話,抱緊 Java 這個大腿就好了。
就將來的發展前景來看,Java 也並無呈現出任何的頹勢。若是你有一部安卓手機,幾乎全部 App 都是用 Java 寫的。大型網站的後端,好比說淘寶、京東也都主要是用 Java 開發的。大型的企業級應用,好比 CRM 系統、ERP 系統也大多數是用 Java 開發的。愈來愈火的大數據,其主流框架 Hadoop 的開發語言也是 Java。
不過,從增加的百分比來看,Python 的增幅最大,這說明 Python 的潛力十足。若是時間充足的話,能夠自學,以備後患。反正我已經準備學習了。
至於阿堅同窗,也不必過於憂慮,三年畢業後還不至於找不到工做。畢竟 C++ 的底蘊仍是在的。何況,若是把 C++ 吃透的話,學習其餘語言也徹底不在話下。
選擇技術方向,選擇一門語言,本質上都是一種投資。
在突飛猛進的科技時代,沒有人敢打包票說將來幾年後必定流行什麼,不流行什麼。仍是那句話,技術更新迭代太快了!
那怎麼讓投資收益最大化呢?
說實話,我也沒有定論(皮一下)。
A:選擇年輕的語言(技術方向),意味着風險越大,由於它就像流星同樣,燦爛,但易逝。有句俗話,你也聽過:「風險越大,回報也許也大」。
B:選擇市場已經承認的語言,意味着越穩定,畢竟活得越久越須要能耐。
C:把浮躁的心安定下來,讓時間來證實一切。專一於你當下選擇的語言,深耕的同時注意擡頭看一看就好了。
好了,我說完了個人見解,說說你的吧?