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