*目前的程序員總數(shù)大概為800萬(wàn);而科班出身,即本科或研究生是計(jì)算機(jī)專業(yè)的程序員大概為40萬(wàn)。也就是說(shuō):外行人不僅能轉(zhuǎn)行做程序員,而且現(xiàn)在從業(yè)的大多數(shù)程序員都并非科班出身。科迅教育下面帶大家詳細(xì)了解一下。
程序員這個(gè)詞算是一個(gè)統(tǒng)稱,百度百科上給的定義是:程序員(英文Programmer)是從事程序開發(fā)、程序維護(hù)的專業(yè)人員。
具體能從事的崗位大概有:
一、開發(fā)工程師
包括:前端開發(fā)工程師、后端開發(fā)工程師、算法工程師、移動(dòng)開發(fā)工程師、軟件開發(fā)工程師、嵌入式開發(fā)工程師等。
不嚴(yán)謹(jǐn)?shù)恼f(shuō)法是:前端是用戶看得見(jiàn)的,比如瀏覽器的圖片、文字;后端是用戶看不見(jiàn)的,比如后臺(tái)數(shù)據(jù)。前端開發(fā)工程師是寫代碼給瀏覽器看的。后端開發(fā)工程師是寫代碼給服務(wù)器看的。
算法(Algorithm)是指解題方案的準(zhǔn)確而完整的描述,是一系列解決問(wèn)題的清晰指令,算法代表著用系統(tǒng)的方法描述解決問(wèn)題的策略機(jī)制。
一個(gè)不恰當(dāng)?shù)谋确?算法工程師就像是科學(xué)家,做完研究之后把研究結(jié)果交付給后端開發(fā)工程師應(yīng)用。這個(gè)崗位對(duì)數(shù)學(xué)和邏輯思維能力有很高的要求。
移動(dòng)開發(fā)工程師跟前端開發(fā)工程師類似,移動(dòng)開發(fā)工也稱為手機(jī)開發(fā),或叫做移動(dòng)互聯(lián)網(wǎng)開發(fā)。是指以手機(jī)、PDA、UMPC 等便攜終端為基礎(chǔ),進(jìn)行相應(yīng)的開發(fā)工作。
軟件開發(fā)工程師一般指從事軟件開發(fā)職業(yè)的人。軟件工程師跟一般程序員的分別,在于一個(gè)程序員的工作是按照指定的規(guī)格進(jìn)行編碼,而軟件工程師的工作則需要設(shè)計(jì)和規(guī)劃。
嵌入式開發(fā)是指在嵌入式操作系統(tǒng)下進(jìn)行開發(fā),包括在系統(tǒng)化設(shè)計(jì)指導(dǎo)下的硬件和軟件以及綜合研發(fā)。
二、技術(shù)管理者
包括:主管、經(jīng)理、技術(shù)總監(jiān)、CTO等。
技術(shù)管理者都來(lái)源于一線,每7~10個(gè)技術(shù)人員中有一個(gè)技術(shù)管理崗位。
對(duì)于一線技術(shù)人員來(lái)說(shuō),有了3-5年經(jīng)驗(yàn)之后轉(zhuǎn)管理是一個(gè)比較好的契機(jī)。
三、架構(gòu)師&復(fù)合開發(fā)工程師
包括:前端架構(gòu)師、后端架構(gòu)師、全棧(前端+后端)、后端+算法等復(fù)合開發(fā)工程師。
架構(gòu)師跟普通開發(fā)工程師的區(qū)別是:開發(fā)工程師做的是一線的工作,而架構(gòu)師更多的情況是作為技術(shù)儲(chǔ)備,類似專家的角色。他們不是把系統(tǒng)架構(gòu)搭建好之后就沒(méi)事了,普通技術(shù)人員解決不了的疑難雜癥都會(huì)交給架構(gòu)師解決。
架構(gòu)師比管理者數(shù)量更少,通常5~6技術(shù)崗位中配備一個(gè),小公司里面多由CTO或經(jīng)理兼任,大公司會(huì)有專門的架構(gòu)師,底下不帶人。
四、測(cè)試開發(fā)工程師
測(cè)試:查找軟件缺陷;開發(fā):開發(fā)工具、平臺(tái)系統(tǒng)。
厲害的測(cè)試開發(fā)工程師既能測(cè)試又能開發(fā)。因?yàn)榛ヂ?lián)網(wǎng)時(shí)代不像從前軟件刻盤賣的時(shí)候,需要把產(chǎn)品測(cè)試得非常完善才推出,而是可以在線快速修復(fù)bug,迭代版本。
五、運(yùn)維工程師
負(fù)責(zé)日常維護(hù),確保整個(gè)服務(wù)的高可用性,同時(shí)不斷優(yōu)化系統(tǒng)架構(gòu)提升部署效率、優(yōu)化資源利用率提高整體的ROI。
簡(jiǎn)單來(lái)說(shuō)就是保障業(yè)務(wù)長(zhǎng)期穩(wěn)定運(yùn)行(如網(wǎng)站、游戲的服務(wù)器),同時(shí)保障數(shù)據(jù)安全可靠(如用戶名密碼、數(shù)據(jù))。
六、DBA(數(shù)據(jù)庫(kù)管理員)
一般意義上的數(shù)據(jù)庫(kù)管理員是一個(gè)負(fù)責(zé)管理和維護(hù)數(shù)據(jù)庫(kù)服務(wù)器的人,數(shù)據(jù)庫(kù)管理員負(fù)責(zé)全面管理和控制數(shù)據(jù)庫(kù)系統(tǒng),包括數(shù)據(jù)庫(kù)的安裝、監(jiān)控、備份、恢復(fù)等基本工作。
那么前端和后端工程師適不適合新手轉(zhuǎn)行呢?其實(shí),轉(zhuǎn)行初級(jí)的前端或后端工程師,你所做的動(dòng)作是使用一個(gè)普通的框架,學(xué)大眾化的技術(shù),理論上不需要英語(yǔ)基礎(chǔ)都可以學(xué)會(huì)的。
如果一個(gè)技術(shù),市場(chǎng)上只有少于30%的公司在使用,那么建議不要學(xué)習(xí)它。因?yàn)閷W(xué)完之后當(dāng)你找工作時(shí),一百家公司里面只有二三十家公司可以選擇,對(duì)于轉(zhuǎn)行的人來(lái)說(shuō)很難。而如果學(xué)的技術(shù)市場(chǎng)上有30%以上公司都在使用,那么它肯定有中文的文檔和論壇,那么不需要會(huì)英文也能學(xué)習(xí)。
所以,對(duì)于想轉(zhuǎn)行做程序員的伙伴來(lái)說(shuō),可以先轉(zhuǎn)行成為前端工程師,再逐步提高自己的英文水平和學(xué)習(xí)后端或算法工程師的知識(shí)。
這里并不是說(shuō)前端工程師的工作簡(jiǎn)單,而是相較于后端工程師,其知識(shí)對(duì)于外行人來(lái)說(shuō)更直觀更便于理解,也更容易成功轉(zhuǎn)行。