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