聊聊過去十年新出現(xiàn)的一些開發(fā)職位
前幾天和老友聊天,我們都再次感慨互聯(lián)網(wǎng)和軟件行業(yè)發(fā)展之快,這些年出現(xiàn)了一些我們之前根本都無法想象的開發(fā)職位。
首先就是前端開發(fā)。
在我和老友的“古老”記憶當(dāng)中,Web系統(tǒng)還都是通過“套模板”的方式來創(chuàng)建的,簡(jiǎn)單來說就是美工把頁面用Photoshop之類的軟件做好,然后變成HTML頁面,Web開發(fā)人員把動(dòng)態(tài)的代碼添加進(jìn)去,調(diào)試通過就大功告成。
這里根本沒有前后端之分,都是現(xiàn)在的后端程序員在折騰,頁面的一些炫酷的效果也是后端程序員通過調(diào)用類似jQuery之類的類庫來生成的。
當(dāng)我***次聽到前端這個(gè)概念的時(shí)候,心里是打了一個(gè)問號(hào)的,不就是JavaScript, CSS,HTML嗎? 還能搞出什么花樣來?
沒想到的是前端和后端這么快地分離了:后端專注于提供數(shù)據(jù), 前端專注于交互,快速響應(yīng)UI變化。
現(xiàn)在看來對(duì)前端程序員的要求是非常高的:
- HTML/CSS/JavaScript
- 層出不窮的開發(fā)框架,Angular JS, React JS, Vue......
- 模塊化開發(fā),項(xiàng)目構(gòu)建
- 代碼質(zhì)量/風(fēng)格
- 單元測(cè)試
- 自動(dòng)化測(cè)試
- 跨瀏覽器測(cè)試
- 各種調(diào)試工具
- 版本管理
- SEO
- 文件壓縮合并
- Web安全
- 移動(dòng)Web
- 可視化的圖形圖表,動(dòng)畫
- ......
要求的技能這么多,薪水肯定也水漲船高了。
第二個(gè)就是App開發(fā)。
我在10年前還學(xué)過諾基亞的塞班系統(tǒng)的開發(fā), 那叫一個(gè)麻煩,我甚至覺得諾基亞就是為了提高準(zhǔn)入門檻,故意刁難開發(fā)者。
然而,喬布斯的蘋果開啟了移動(dòng)互聯(lián)網(wǎng)時(shí)代以后,一切都變了,守舊的諾基亞像斷崖一樣跌落,迅速消失。
無論是App Store還是最早的Android Market , 無不期待著大量的App入駐。
這直接導(dǎo)致了一個(gè)新的開發(fā)崗位--App開發(fā)--的無比繁榮, 在***時(shí)期,每個(gè)公司都想要自己的App, 但是沒有足夠的人去開發(fā)啊 !
老友感慨說:你不知道最熱門的時(shí)候想招聘?jìng)€(gè)Android/iOS開發(fā)有多難,薪水多高??!
國(guó)內(nèi)培訓(xùn)機(jī)構(gòu)趁勢(shì)忽悠很多人入坑, 成批地推出了大量Android和iOS程序員。***形成了一個(gè)尷尬的局面: 初學(xué)者太多,抱怨工作不好找,而公司要求的中高級(jí)開發(fā)者又太少,抱怨招不到人。
第三個(gè)就是運(yùn)維
我剛畢業(yè)的時(shí)候, 做的系統(tǒng)相對(duì)簡(jiǎn)單,通常只是部署在一個(gè)機(jī)器的一個(gè)軟件組件上,部署的時(shí)候就是往一個(gè)機(jī)器上復(fù)制文件,開發(fā)人員輕松兼任。
現(xiàn)在的系統(tǒng)越來越復(fù)雜,從技術(shù)上看,使用的軟件組件越來越多,像什么ngnix, keepalived, HAProxy, redis , mysql ,elastic search,rpc框架,分布式文件系統(tǒng),cdn...... 等等,還經(jīng)常需要搞高可用的集群,主從備份等等。光是把一個(gè)系統(tǒng)搭建起來就很不容易。
從業(yè)務(wù)上看,把所有的東西放在一起也不可能了,業(yè)務(wù)也做了分家,放到了不同的機(jī)器上,或者虛擬機(jī)/容器中。 由于業(yè)務(wù)之間還需要互相調(diào)用,這又涉及到復(fù)雜的配置。
數(shù)量眾多的業(yè)務(wù)系統(tǒng)+ 數(shù)量眾多的軟件組件構(gòu)成了一個(gè)巨大的挑戰(zhàn), 這些系統(tǒng)和軟件組件需要安裝、配置、維護(hù)、監(jiān)控,單靠開發(fā)人員兼職折騰是不太現(xiàn)實(shí)了。
于是運(yùn)維人員就橫空出世了!
運(yùn)維要做的事情上面已經(jīng)有所描述,可以看出對(duì)運(yùn)維的技能也很高:
- Linux 基礎(chǔ)
- 各種軟件(Ngnix, Redis, Mysql等)的安裝和配置
- 網(wǎng)絡(luò)基礎(chǔ)服務(wù): DNS, DHCP, FTP......
- 各種自動(dòng)化的運(yùn)維工具
- 安全
- 各種腳本語言
- ......
在機(jī)器眾多的情況下,手工根本是搞不定的, 關(guān)鍵點(diǎn)就是要做自動(dòng)化, 自動(dòng)化的安裝,自動(dòng)化的部署,自動(dòng)化的監(jiān)控和分析。
第四個(gè)是大數(shù)據(jù)相關(guān)的崗位
剛工作那會(huì)兒,看到一個(gè)表里幾千萬行的記錄,感覺很嚇人,覺得不可能超越了。
沒想到的是這才過了幾年, 拜互聯(lián)網(wǎng)尤其是移動(dòng)互聯(lián)網(wǎng)所賜,現(xiàn)在的互聯(lián)網(wǎng)系統(tǒng)都要面對(duì)海量的用戶和海量的數(shù)據(jù), 數(shù)據(jù)量之大,導(dǎo)致傳統(tǒng)的數(shù)據(jù)庫和文件系統(tǒng)竟然無法存儲(chǔ),傳統(tǒng)的單機(jī)竟然無法在合理的時(shí)間內(nèi)處理!
你聽音樂的時(shí)候,讀電子書的時(shí)候,上網(wǎng)瀏覽的時(shí)候,聊天的時(shí)候,使用手機(jī)的時(shí)候,網(wǎng)上購物的時(shí)候.... 無時(shí)不刻都在產(chǎn)生數(shù)據(jù),再加上手機(jī)拍的照片,聊天記錄,很難想象你在網(wǎng)上的活動(dòng)不產(chǎn)生數(shù)據(jù)的。
數(shù)據(jù)的存儲(chǔ)必須分布式,數(shù)據(jù)的多樣化讓關(guān)系型數(shù)據(jù)庫舉步維艱。數(shù)據(jù)的處理也必須想辦法分布式,對(duì)海量的數(shù)據(jù)進(jìn)行分析、“挖掘”, 找出其中的價(jià)值, 這就導(dǎo)致了大數(shù)據(jù)相關(guān)系統(tǒng)以及工作機(jī)會(huì)的誕生。
在這個(gè)領(lǐng)域Hadoop是無可爭(zhēng)議的王者,對(duì)大數(shù)據(jù)的分析和處理也是很熱門的崗位,想象一下,若是有機(jī)會(huì)處理和分析存儲(chǔ)在成百上千臺(tái)機(jī)器上的數(shù)據(jù),是不是也很有成就感?
還有一個(gè)不得不提的是人工智能,2017年大熱,由于數(shù)學(xué)和算法的關(guān)系,導(dǎo)致門檻較高,還未像前面幾個(gè)職位那樣,基本普及了。機(jī)器學(xué)習(xí),深度學(xué)習(xí)什么時(shí)候能“飛入尋常百姓家”,讓我們拭目以待!
總而言之,技術(shù)的發(fā)展在不斷創(chuàng)造出新的機(jī)會(huì),對(duì)從事軟件開發(fā)的人來講,是壞事也是好事,想在這個(gè)行業(yè)里呆下去,只有一個(gè)“秘訣”:快速地、持續(xù)不斷地學(xué)習(xí)。
【本文為51CTO專欄作者“劉欣”的原創(chuàng)稿件,轉(zhuǎn)載請(qǐng)通過作者微信公眾號(hào)coderising獲取授權(quán)】