現(xiàn)存的一個事實是程序員之間的差異其實是非常大的,只有很了解程序員的人才能完全了解這一點,雖然有大多數(shù)的高層管理者對所有的程序員都一視同仁,還是有企業(yè)是把程序員當做工具、資源看待,做個頭腦清醒的程序員,你的職業(yè)生活會更精彩。
程序設(shè)計工種
這其實是常用也是比較簡單的方式去理解關(guān)于程序員這份職業(yè),就是分析他們的程序設(shè)計工作可以歸為哪些類型:客戶端程序員、服務器端程序員、數(shù)據(jù)庫程序員、Web 開發(fā)人員及其他腳本編寫者。
其實有許多特殊的程序員工作其實很難歸類到某種類型 1 大部分程序員都屬于客戶端程序員。個人電腦 (computer) 客戶端程序員的任務范圍通常是有限的,需要交付的產(chǎn)品也是明確的 2、服務器端程序員 服務器端(server)不僅指出了程序所在的位置,還表明編寫程序的目的通常是向遠程客戶端傳輸信息和數(shù)據(jù)。 在互聯(lián)網(wǎng)時代,構(gòu)建系統(tǒng)通常離不開各個服務器系統(tǒng)與程序之間進行接口轉(zhuǎn)發(fā)、數(shù)據(jù)傳輸與同步的工作。這些都是服務器端端程序員的工作內(nèi)容。 3、數(shù)據(jù)庫程序員 數(shù)據(jù)庫程序員通常是對終端或應用程序所使用或產(chǎn)生的數(shù)據(jù)進行組織、存儲和提取工作。現(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ī)的計算機科學訓練中收益,但并不依賴正規(guī)的計算機專業(yè)「科班出身」。 程序員的類型 還有另外一種看待程序員的方法,我們經(jīng)常也會遇到,比如經(jīng)?div id="d48novz" class="flower left"> 系統(tǒng)工程師/架構(gòu)師 系統(tǒng)程序員 應用程序員 非真正意義上的程序員 1、系統(tǒng)工程師/架構(gòu)師 系統(tǒng)工程師/架構(gòu)師往往都是最有技術(shù)和經(jīng)驗的。要想理解所有相關(guān)的系統(tǒng)組件(操作系統(tǒng)、通信系統(tǒng)、數(shù)據(jù)庫、在線/離線訪問、安全性、硬件等等)之間復雜的關(guān)系,需要對這些技術(shù)和系統(tǒng)有豐富的專業(yè)知識和經(jīng)驗。 2、系統(tǒng)程序員 架構(gòu)師一般都是從系統(tǒng)程序員做起的,系統(tǒng)程序員負責編寫與硬件交互的設(shè)備驅(qū)動程序,創(chuàng)建能夠為設(shè)備驅(qū)動運行程序和應用程序執(zhí)行提供運行環(huán)境的操作系統(tǒng),為其他程序員創(chuàng)建編譯器和調(diào)試工具。 3、應用程序員 在專業(yè)程序員、學生以及自稱為程序員的業(yè)余愛好者中,絕大部分屬于應用程序員。 應用程序員開發(fā)的程序包括我們常見的桌面客戶端應用和 App Store 中的軟件和游戲等。 還有一些應用程序員能夠跳出代碼本身的束縛,從用戶的角度看問題 4 開發(fā)團隊中有一些被稱為 “程序員” 的技術(shù)人員其實并不是真正意義上的程序員。 這些 “程序員” 與真正的程序員之間的主要差別在于:他們使用現(xiàn)有的工具或應用程序 這類 「程序員」 有其重要性和價值