六星教育:科普篇!程序員都有哪些工種和類型呢?

現(xiàn)存的一個(gè)事實(shí)是程序員之間的差異其實(shí)是非常大的,只有很了解程序員的人才能完全了解這一點(diǎn)。雖然有大多數(shù)的高層管理者對(duì)所有的程序員都一視同仁,還是有企業(yè)是把程序員當(dāng)做工具、資源看待,做個(gè)頭腦清醒的程序員,你的職業(yè)生活會(huì)更精彩。本文,六星教育就詳細(xì)講解一下程序員的工種和類型,帶你了解程序員的職業(yè)發(fā)展方向。

一、程序設(shè)計(jì)工種
這其實(shí)是常用也是比較簡單的方式去理解關(guān)于程序員這份職業(yè),就是分析他們的程序設(shè)計(jì)工作可以歸為哪些類型:
客戶端程序員
服務(wù)器端程序員
數(shù)據(jù)庫程序員
Web 開發(fā)人員及其他腳本編寫者
其實(shí)有許多特殊的程序員工作其實(shí)很難歸類到某種類型。但是總的來說,這 4 種類型就可以覆蓋世界上的絕大多數(shù)程序員,每一種程序員擅長的問題解決方法、使用的工具以及側(cè)重的產(chǎn)品方向都不一樣。
1、客戶端程序員
大部分程序員都屬于客戶端程序員。個(gè)人電腦 (computer)、移動(dòng)設(shè)備 (iphone、iPad )等消費(fèi)電子設(shè)備的出現(xiàn)催生了無數(shù)的 “客戶端程序 “ ,所做的包括Office 系列、電子表格處理程序、游戲APP等等。
客戶端程序員的任務(wù)范圍通常是有限的,需要交付的產(chǎn)品也是明確的。因此,客戶端程序員/團(tuán)隊(duì)的工作職責(zé)是會(huì)很清晰,除了服務(wù)器端傳來的數(shù)據(jù)外幾乎不依賴其他東西。
2、服務(wù)器端程序員
服務(wù)器端(server)不僅指出了程序所在的位置,還表明編寫程序的目的通常是向遠(yuǎn)程客戶端傳輸信息和數(shù)據(jù)。
在互聯(lián)網(wǎng)時(shí)代,構(gòu)建系統(tǒng)通常離不開各個(gè)服務(wù)器系統(tǒng)與程序之間進(jìn)行接口轉(zhuǎn)發(fā)、數(shù)據(jù)傳輸與同步的工作。這些都是服務(wù)器端端程序員的工作內(nèi)容。
3、數(shù)據(jù)庫程序員
數(shù)據(jù)庫程序員通常是對(duì)終端或應(yīng)用程序所使用或產(chǎn)生的數(shù)據(jù)進(jìn)行組織、存儲(chǔ)和提取工作?,F(xiàn)在的大數(shù)據(jù)工程師可以歸屬于此類。
有個(gè)很好的比喻,把數(shù)據(jù)庫程序員比作汽車修理工。你可能隨便找個(gè)汽車修理工幫你換輪胎或者雨刮器,但是對(duì)于保時(shí)捷汽車上的重要問題,你絕對(duì)不會(huì)讓一個(gè)完全不了解保時(shí)捷的修理工來做,數(shù)據(jù)庫程序員也是如此。阿里在 Oracle 時(shí)代就著力培育了很多優(yōu)秀的 DBA。
4、Web 開發(fā)人員及其他腳本編寫者
不同于其他程序員,使用 C、C++、Java 等核心程序設(shè)計(jì)語言,Web 開發(fā)人員通常使用格式化 HTML 語言(如 HTML、CSS)和腳本解釋語言(如 PHP「全宇宙最好」、JavaScript「一統(tǒng)天下 」)。
這其實(shí)意味著只從事 Web 開發(fā)的程序員雖能夠從正規(guī)的計(jì)算機(jī)科學(xué)訓(xùn)練中收益,但并不依賴正規(guī)的計(jì)算機(jī)專業(yè)「科班出身」。
二、程序員的類型
還有另外一種看待程序員的方法,我們經(jīng)常也會(huì)遇到,比如經(jīng)常看到某些程序員的簽名是成為架構(gòu)師。所以從技術(shù)知識(shí)、實(shí)踐經(jīng)驗(yàn)和程序員的專長去考慮也非常重要:
系統(tǒng)工程師/架構(gòu)師
系統(tǒng)程序員
應(yīng)用程序員
非真正意義上的程序員
1、系統(tǒng)工程師/架構(gòu)師
系統(tǒng)工程師/架構(gòu)師往往都是最有技術(shù)和經(jīng)驗(yàn)的。要想理解所有相關(guān)的系統(tǒng)組件(操作系統(tǒng)、通信系統(tǒng)、數(shù)據(jù)庫、在線/離線訪問、安全性、硬件等等)之間復(fù)雜的關(guān)系,需要對(duì)這些技術(shù)和系統(tǒng)有豐富的專業(yè)知識(shí)和經(jīng)驗(yàn)。
2、系統(tǒng)程序員
架構(gòu)師一般都是從系統(tǒng)程序員做起的,系統(tǒng)程序員負(fù)責(zé)編寫與硬件交互的設(shè)備驅(qū)動(dòng)程序,創(chuàng)建能夠?yàn)樵O(shè)備驅(qū)動(dòng)運(yùn)行程序和應(yīng)用程序執(zhí)行提供運(yùn)行環(huán)境的操作系統(tǒng),為其他程序員創(chuàng)建編譯器和調(diào)試工具。
3、應(yīng)用程序員
在專業(yè)程序員、學(xué)生以及自稱為程序員的業(yè)余愛好者中,絕大部分屬于應(yīng)用程序員。
應(yīng)用程序員開發(fā)的程序包括我們常見的桌面客戶端應(yīng)用和 App Store 中的軟件和游戲等。
還有一些應(yīng)用程序員能夠跳出代碼本身的束縛,從用戶的角度看問題,來把握可視化、交互式的設(shè)計(jì)之間的細(xì)微差別。這種人比較適合從事用戶界面(UI)開發(fā)。
4、非真正意義上的程序員
開發(fā)團(tuán)隊(duì)中有一些被稱為 “程序員” 的技術(shù)人員其實(shí)并不是真正意義上的程序員。
這些 “程序員” 與真正的程序員之間的主要差別在于:他們使用現(xiàn)有的工具或應(yīng)用程序,而不是自己直接寫代碼。
這類 「程序員」 有其重要性和價(jià)值,但他們的技術(shù)深度通常不會(huì)太高。而且隨著程序設(shè)計(jì)工具的出現(xiàn)和日益強(qiáng)大,這樣的程序員會(huì)越來越多?,F(xiàn)在主要從事測試等。
程序員的“江湖”很大,但人生的時(shí)間很短,何不趁年華正好,尋一把“好劍”,肆意“江湖”?
以上就是本次分享的全部內(nèi)容,想學(xué)習(xí)更多編程技巧,歡迎持續(xù)關(guān)注六星教育!