【程序員上下50年】程序員:諸神之戰
你看那個人,格子衫,雙肩包,禿頭……

是個程序員沒跑了。
才怪!
因為程序員跟程序員也是不同的!

- 我想讓你看啥,你就得看啥!
比如他們,他們決定了我們能看到什么樣的內容。我們作為普通用戶能看到、能操作的所有東西都是拜他們所賜。他們叫做前端工程師,善用HTML、CSS、JavaScript、Flash等技術。如果開一家餐廳,他們就是服務生、收銀員、裝修隊,決定了這家餐廳裝修、格調、氛圍、環境 的具體實現。

- 好好跟我講話,不然抹了你的數據!
有前端,自然也有“后端”。服務器開發工程師決定著我們能得到什么樣的內容。各種數據都是他們幫忙保存好的,負責幫我們處理數據的也是他們。他們是餐廳廚師,你吃到滿漢全席還是咸菜土豆,全在他們一念之間。

- 我規定的,咋了?
下面登場的這群人就有點抽象了。他們更多的工作內容是在建模,他們需要將各種現實問題抽象成一個個的數學模型,然后再選擇合適的算法來解決這個問題。沒錯,他們就是算法工程師。他們是規則的制定者,他們不光懂得如何用最少最便宜的食材做成最美味的菜肴,還一并規定了餐廳中的各項服務標準。

- 這個別放這兒,放那邊兒!
不管什么程序,數據必然是重中之重,數據庫的地位也不言而喻。有這樣一群人,他們運維管理著數據庫管理系統,他們叫做數據庫管理員(DBA)。俗話說的好:巧婦難為無米之炊。他們掌握著菜窖的鑰匙,為廚師提供最干凈、最完美、最準確的食材。

- 我康康,又有新鮮的數據來了?
既然數據是很重要,那么數據怎么來的就要問問大數據開發工程師了。他們從事大數據采集、清洗、分析、治理、挖掘等技術研究,并加以利用、管理、維護和服務。在餐廳里最貼切的工作應該就是采購了,所有的食材都是他們跑遍了全世界菜市場才買到手的。在大量采購經驗的加持下,他們還會將這些食材經過篩選和優化。

- 這樣太浪費了,得重來!
也許只靠上面這群人,已經可以完成一個項目了。但需要有人操心整個服務的高可用性、部署效率、資源利用率,操心這些的人就是運維工程師。操心的他們理所應當的做上了餐廳的后勤,無論鍋碗瓢盆哪個摔了,還是煤氣空調哪里壞了,就連衛生環境,他們也都一并承擔下來。

- 這邊可以了,那邊不行!
一個項目需要有一個靈魂,這個靈魂就是系統架構師。他們需要最終確認和評估系統需求,給出開發規范,搭建系統實現的核心構架,并澄清技術細節、掃清主要難點。他們主導這家餐廳的選址、裝修、定位,由整個團隊將他們構想的餐廳模樣最終實現。

- 你這BUG咋回事兒啊,小老弟?
在程序正式跟我們見面之前,還要經過測試工程師的檢查。他們需要對產品的功能進行測試,檢查軟件有沒有bug,測試軟件是否具有穩定性、安全性、易操作性。他們承擔了試菜的重任,不光是口味的問題,食物中毒也得他們來處理。

- 防止內訌:移動端萬歲!
最后出場的是一對相愛相殺的程序員——IOS工程師和Android工程師。他們專注于移動端,從系統到應用,從開發到優化。除了語言之外,他們還得對平臺有足夠深刻的理解。對一家餐廳而言,這就是兩家分店。

當然,這只是從工作內容這一個角度出發的區分。
要是按照別的標準來區分。
比如,有女朋友的和沒有女朋友的……

光棍節已過,該脫單了!


