現(xiàn)存的一個事實是程序員之間的差異其實是非常大的,只有很了解程序員的人才能完全了解這一點,雖然有大多數(shù)的高層管理者對所有的程序員都一視同仁,還是有企業(yè)是把程序員當做工具、資源看待,做個頭腦清醒的程序員,你的職業(yè)生活會更精彩。
程序設(shè)計工種
這其實是常用也是比較簡單的方式去理解關(guān)于程序員這份職業(yè),就是分析他們的程序設(shè)計工作可以歸為哪些類型:客戶端程序員、服務(wù)器端程序員、數(shù)據(jù)庫程序員、Web 開發(fā)人員及其他腳本編寫者。
其實有許多特殊的程序員工作其實很難歸類到某種類型。但是總的來說,這 4 種類型就可以覆蓋世界上的絕大多數(shù)程序員,每一種程序員擅長的問題解決方法、使用的工具以及側(cè)重的產(chǎn)品方向都不一樣。
1、客戶端程序員
大部分程序員都屬于客戶端程序員。個人電腦 (computer)、移動設(shè)備 (iphone、iPad )等消費電子設(shè)備的出現(xiàn)催生了無數(shù)的 “客戶端程序 “ ,所做的包括Office 系列、電子表格處理程序、游戲APP等等。
客戶端程序員的任務(wù)范圍通常是有限的,需要交付的產(chǎn)品也是明確的。因此,客戶端程序員/團隊的工作職責是會很清晰,除了服務(wù)器端傳來的數(shù)據(jù)外幾乎不依賴其他東西。
2、服務(wù)器端程序員
服務(wù)器端(server)不僅指出了程序所在的位置,還表明編寫程序的目的通常是向遠程客戶端傳輸信息和數(shù)據(jù)。
在互聯(lián)網(wǎng)時代,構(gòu)建系統(tǒng)通常離不開各個服務(wù)器系統(tǒng)與程序之間進行接口轉(zhuǎn)發(fā)、數(shù)據(jù)傳輸與同步的工作。這些都是服務(wù)器端端程序員的工作內(nèi)容。
3、數(shù)據(jù)庫程序員
數(shù)據(jù)庫程序員通常是對終端或應(yīng)用程序所使用或產(chǎn)生的數(shù)據(jù)進行組織、存儲和提取工作?,F(xiàn)在的大數(shù)據(jù)工程師可以歸屬于此類。
有個很好的比喻,把數(shù)據(jù)庫程序員比作汽車修理工。你可能隨便找個汽車修理工幫你換輪胎或者雨刮器,但是對于保時捷汽車上的重要問題,你絕對不會讓一個完全不了解保時捷的修理工來做,數(shù)據(jù)庫程序員也是如此。阿里在 Oracle 時代就著力培育了很多優(yōu)秀的 DBA。
4、Web 開發(fā)人員及其他腳本編寫者
不同于其他程序員,使用 C、C++、Java 等核心程序設(shè)計語言,Web 開發(fā)人員通常使用格式化 HTML 語言(如 HTML、CSS)和腳本解釋語言(如 PHP「全宇宙最好」、JavaScript「一統(tǒng)天下 」)。
這其實意味著只從事 Web 開發(fā)的程序員雖能夠從正規(guī)的計算機科學(xué)訓(xùn)練中收益,但并不依賴正規(guī)的計算機專業(yè)「科班出身」。
程序員的類型
還有另外一種看待程序員的方法,我們經(jīng)常也會遇到,比如經(jīng)??吹侥承┏绦騿T的簽名是成為架構(gòu)師。所以從技術(shù)知識、實踐經(jīng)驗和程序員的專長去考慮也非常重要:
系統(tǒng)工程師/架構(gòu)師
系統(tǒng)程序員
應(yīng)用程序員
非真正意義上的程序員
1、系統(tǒng)工程師/架構(gòu)師
系統(tǒng)工程師/架構(gòu)師往往都是最有技術(shù)和經(jīng)驗的。要想理解所有相關(guān)的系統(tǒng)組件(操作系統(tǒng)、通信系統(tǒng)、數(shù)據(jù)庫、在線/離線訪問、安全性、硬件等等)之間復(fù)雜的關(guān)系,需要對這些技術(shù)和系統(tǒng)有豐富的專業(yè)知識和經(jīng)驗。
2、系統(tǒng)程序員
架構(gòu)師一般都是從系統(tǒng)程序員做起的,系統(tǒng)程序員負責編寫與硬件交互的設(shè)備驅(qū)動程序,創(chuàng)建能夠為設(shè)備驅(qū)動運行程序和應(yīng)用程序執(zhí)行提供運行環(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è)計之間的細微差別。這種人比較適合從事用戶界面(UI)開發(fā)。
4、非真正意義上的程序員
開發(fā)團隊中有一些被稱為 “程序員” 的技術(shù)人員其實并不是真正意義上的程序員。
這些 “程序員” 與真正的程序員之間的主要差別在于:他們使用現(xiàn)有的工具或應(yīng)用程序,而不是自己直接寫代碼。
這類 「程序員」 有其重要性和價值,但他們的技術(shù)深度通常不會太高。而且隨著程序設(shè)計工具的出現(xiàn)和日益強大,這樣的程序員會越來越多?,F(xiàn)在主要從事測試等。
1華信智原名師大講堂2323期:如何快速入門前后端分離項目開發(fā)
3【教學(xué)測評】華信智原三輪模擬面試,究竟有什么獨到之處?
1【行業(yè)秘笈】2024 年平面設(shè)計趨勢有哪些?
2【職場秘笈】前端和后端究竟有什么區(qū)別?到底應(yīng)該怎么選呢?
3【職場秘笈】面對職業(yè)“低谷”期,除了焦慮、抱怨,我們還能做些什么?
4【職場秘籍】沒靈感,設(shè)計總監(jiān)是怎么設(shè)計Logo的?
5華信智原春季師資培訓(xùn)圓滿落幕|技術(shù)賦能教學(xué),助推品質(zhì)課堂
6【職場秘笈】學(xué)會這幾招,再也不用為簡歷的項目經(jīng)歷發(fā)愁!