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