六星源課堂:學(xué)會寫程序能從事哪些技術(shù)崗位?程序員需要多少英語和數(shù)學(xué)基礎(chǔ)?

IT工資真香,我也想月薪上萬!0基礎(chǔ)能不能轉(zhuǎn)行做程序員?
答案是:能。
但可能性有多大?英語和數(shù)學(xué)不好怎么辦?如何才能轉(zhuǎn)行成程序員?
先看一個(gè)數(shù)據(jù):中國目前的程序員總數(shù)大概為800萬;而科班出身,即本科或研究生是計(jì)算機(jī)專業(yè)的程序員大概為40萬。
也就是說:外行人不僅能轉(zhuǎn)行做程序員,而且現(xiàn)在從業(yè)的大多數(shù)程序員都并非科班出身。

學(xué)會寫程序能從事哪些技術(shù)崗位?
程序員這個(gè)詞算是一個(gè)統(tǒng)稱,百度百科上給的定義是:程序員(英文Programmer)是從事程序開發(fā)、程序維護(hù)的專業(yè)人員。
具體能從事的崗位大概有:
一、開發(fā)工程師
包括:前端開發(fā)工程師、后端開發(fā)工程師、算法工程師、移動(dòng)開發(fā)工程師、軟件開發(fā)工程師、嵌入式開發(fā)工程師等。
不嚴(yán)謹(jǐn)?shù)恼f法是:前端是用戶看得見的,比如瀏覽器的圖片、文字;后端是用戶看不見的,比如后臺數(shù)據(jù)。前端開發(fā)工程師是寫代碼給瀏覽器看的。后端開發(fā)工程師是寫代碼給服務(wù)器看的。

算法(Algorithm)是指解題方案的準(zhǔn)確而完整的描述,是一系列解決問題的清晰指令,算法代表著用系統(tǒng)的方法描述解決問題的策略機(jī)制。
一個(gè)不恰當(dāng)?shù)谋确?,算法工程師就像是科學(xué)家,做完研究之后把研究結(jié)果交付給后端開發(fā)工程師應(yīng)用。這個(gè)崗位對數(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ù)管理者都來源于一線,每7~10個(gè)技術(shù)人員中有一個(gè)技術(shù)管理崗位。
對于一線技術(shù)人員來說,有了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ù)儲備,類似專家的角色。他們不是把系統(tǒng)架構(gòu)搭建好之后就沒事了,普通技術(shù)人員解決不了的疑難雜癥都會交給架構(gòu)師解決。
架構(gòu)師比管理者數(shù)量更少,通常5~6技術(shù)崗位中配備一個(gè),小公司里面多由CTO或經(jīng)理兼任,大公司會有專門的架構(gòu)師,底下不帶人。

四、測試開發(fā)工程師
測試:查找軟件缺陷;開發(fā):開發(fā)工具、平臺系統(tǒng)。
厲害的測試開發(fā)工程師既能測試又能開發(fā)。因?yàn)榛ヂ?lián)網(wǎng)時(shí)代不像從前軟件刻盤賣的時(shí)候,需要把產(chǎn)品測試得非常完善才推出,而是可以在線快速修復(fù)bug,迭代版本。
五、運(yùn)維工程師
負(fù)責(zé)日常維護(hù),確保整個(gè)服務(wù)的高可用性,同時(shí)不斷優(yōu)化系統(tǒng)架構(gòu)提升部署效率、優(yōu)化資源利用率提高整體的ROI。
簡單來說就是保障業(yè)務(wù)長期穩(wěn)定運(yùn)行(如網(wǎng)站、游戲的服務(wù)器),同時(shí)保障數(shù)據(jù)安全可靠(如用戶名密碼、數(shù)據(jù))。
六、DBA(數(shù)據(jù)庫管理員)
一般意義上的數(shù)據(jù)庫管理員是一個(gè)負(fù)責(zé)管理和維護(hù)數(shù)據(jù)庫服務(wù)器的人,數(shù)據(jù)庫管理員負(fù)責(zé)全面管理和控制數(shù)據(jù)庫系統(tǒng),包括數(shù)據(jù)庫的安裝、監(jiān)控、備份、恢復(fù)等基本工作。
在大公司會專門設(shè)置DBA,而在小公司里由通常開發(fā)工程師代替。

程序員需要多少英語和數(shù)學(xué)基礎(chǔ)?
說起轉(zhuǎn)行做程序員,很多朋友就又要問了:程序員是不是英語和數(shù)學(xué)都特別好?總的來說,根據(jù)崗位和等級的不同,所需要的基礎(chǔ)也不一樣。
對于程序員來說,英語的主要用途有:
1.閱讀英文原文的手冊、資料和論文。
2.用英語進(jìn)行日常工作交流,包括文字交流和語言交流。
需要英語基礎(chǔ)的情況有:
1.工作中使用到比較前沿的技術(shù)或者框架,因?yàn)橄鄳?yīng)的技術(shù)文檔、論壇都是英文的。
2.在外企工作或者工作內(nèi)容主要是服務(wù)外企。
3.算法工程師對英語的要求需要至少達(dá)到GRE水平。
數(shù)學(xué)主要用途:
1.邏輯思維;
2.算法,特別是計(jì)算機(jī)的算法;
3.機(jī)器學(xué)習(xí)或者人工智能中的計(jì)算模型。
需要使用的情況
1.前端開發(fā)工程師和移動(dòng)開發(fā)工程師,在不涉及3D以及圖形學(xué)的前提下,需要的數(shù)學(xué)基礎(chǔ)最少。
2.一般的后端開發(fā)工程師需要掌握常規(guī)的算法和離散數(shù)學(xué)等知識。
3.算法工程師還需要掌握機(jī)器學(xué)習(xí)或者人工智能中的計(jì)算模型。

那么前端和后端工程師適不適合新手轉(zhuǎn)行呢?
其實(shí),轉(zhuǎn)行初級的前端或后端工程師,你所做的動(dòng)作是使用一個(gè)普通的框架,學(xué)大眾化的技術(shù),理論上不需要英語基礎(chǔ)都可以學(xué)會的。
當(dāng)然,在任何情況下,有良好的英語基礎(chǔ)總比不會強(qiáng)。
所以,對于想轉(zhuǎn)行做程序員的伙伴來說,可以先轉(zhuǎn)行成為前端工程師,再逐步提高自己的英文水平和學(xué)習(xí)后端或算法工程師的知識。
這里并不是說前端工程師的工作簡單,而是相較于后端工程師,其知識對于外行人來說更直觀更便于理解,也更容易成功轉(zhuǎn)行。
如何才能成功轉(zhuǎn)行?
那么想要轉(zhuǎn)行成為程序員該怎么做呢?這里給大家推薦一個(gè)“五步法”。
這五步分別是:
1.確定要從事的職業(yè)
2.根據(jù)職業(yè)確定技術(shù)棧
3.用6個(gè)月左右的時(shí)間學(xué)習(xí)基礎(chǔ)知識
4.刻意練習(xí)
5.求職就業(yè)
1.確定要從事的職業(yè)
在轉(zhuǎn)行選職業(yè)的時(shí)候有一個(gè)策略:選擇薪水還不錯(cuò),但有一定技術(shù)門檻的工作。
對于轉(zhuǎn)行者來說前端工程師是一個(gè)不錯(cuò)的選擇。數(shù)量大、需求大,而且門檻相對比較低。
在這里我們把“五步法”再發(fā)展一下:找工作或轉(zhuǎn)行時(shí),選擇需求大、上限高、有一定門檻的崗位(這個(gè)門檻你得夠得著)。
需求大,意味著工作容易找;上限高,意味著有精進(jìn)的空間,可以干很長時(shí)間,甚至一輩子;有一定門檻,則不是誰都可以做,競爭人數(shù)相對少,可替代性較弱。
2.根據(jù)職業(yè)確定技術(shù)棧
技術(shù)棧:IT術(shù)語,某項(xiàng)工作或某個(gè)職位需要掌握的一系列技能組合的統(tǒng)稱。
不論是不是程序員,我們都會遇到一個(gè)問題:“想要在某個(gè)領(lǐng)域上有所提升,該學(xué)什么?”
用游戲來打比方,技術(shù)棧就類似游戲中的職業(yè)技能樹,法師有法師的技能樹,戰(zhàn)士有戰(zhàn)士的技能樹,不能“點(diǎn)錯(cuò)技能”。
那么就要了解自己要從事職業(yè)的技術(shù),就像有了一張地圖,知道自己要去哪,要干什么,就可以把好鋼用在刀刃上,把自己的時(shí)間、精力、金錢用在需要和重要的事情上。

3. 用幾個(gè)月左右的時(shí)間學(xué)習(xí)
通常來說,報(bào)班培訓(xùn)學(xué)習(xí)的話,需要4-5個(gè)月的時(shí)間。
但對于已經(jīng)工作的伙伴來說,可以選擇線上學(xué)習(xí),不會給自己造成經(jīng)濟(jì)壓力,影響生活和學(xué)習(xí)的狀態(tài)。
建議在正常上下班之外,每天花3~4小時(shí)學(xué)習(xí)。這樣大概需要學(xué)習(xí)8~10個(gè)月的時(shí)間。
4. 刻意練習(xí)
刻意練習(xí)包括:實(shí)戰(zhàn)和面試刷題。
刻意練習(xí),指有目的性地大量重復(fù)性地練習(xí),并獲得反饋。其核心包含:要有特定的目標(biāo)、主動(dòng)練習(xí)、專注、走出舒適區(qū)、大量的重復(fù)性練習(xí)、獲得到反饋并調(diào)整、巨量時(shí)間的投入。
5. 求職就業(yè)
學(xué)習(xí)練到什么程度能去找工作呢?兩條標(biāo)準(zhǔn):
1.能過面試
2.能干活。
保證自己能過面試和試用期。我們找工作時(shí)還經(jīng)常有一個(gè)思維誤區(qū):“沒有工作經(jīng)驗(yàn)?zāi)苻D(zhuǎn)行嗎?”當(dāng)然可以,要不然咱說了這么多不都是廢話了嗎。
其實(shí),“沒有經(jīng)驗(yàn)”只是用人方委婉拒絕你的借口,人家不好意思明說你技術(shù)不行。只要技術(shù)過硬,沒經(jīng)驗(yàn)也能轉(zhuǎn)行。
人這一輩子最幸運(yùn)的事,大概就是做著自己喜歡的事,還順便把錢賺了。
愿你之后的每一次選擇,都是不斷接近夢想的勇往直前,而不是被生活所迫的無奈之舉。共勉!
以上就是本次分享的全部內(nèi)容,想學(xué)習(xí)更多Python技巧,歡迎持續(xù)關(guān)注六星源課堂!