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