去年,美國的程序員問答網(wǎng)站Stack Overflow曾向用戶提問,他們是否有計算機(jī)科學(xué)專業(yè)的學(xué)位。在這項“2015年開發(fā)者調(diào)查”中,26086名程序員中有近一半回答稱,他們沒有計算機(jī)科學(xué)學(xué)位。
這是否意味著,不需要大學(xué)學(xué)位就可以成為程序員?簡而言之,答案是肯定的。不過,對非專業(yè)出身的人士來說,程序員之路要相對困難。
人力資源機(jī)構(gòu)Robert Half Technology高級總監(jiān)約翰·里德(John Reed)表示,許多大型科技公司用大學(xué)學(xué)歷作為門檻來過濾求職者簡歷。例如,谷歌(微博)不會面試沒有計算機(jī)科學(xué)學(xué)位的入門級工程師。
如果情況如此,那么為何許多程序員沒有計算機(jī)科學(xué)學(xué)位?一個重要的外部因素是大學(xué)學(xué)費(fèi)正日益高漲。例如在美國,較便宜的公立兩年制大學(xué)每年學(xué)費(fèi)平均為11438美元,而較昂貴的選擇,即私立的非盈利四年制大學(xué)每年學(xué)費(fèi)平均為43921美元。這些費(fèi)用中還沒有包括生活費(fèi)。
其他因素也在造成影響。一方面,速成的在線課程和培訓(xùn)班正在興起。你可以在實踐中學(xué)習(xí),而不必等待幾年時間才能畢業(yè)。
因此,如果你沒有計算機(jī)學(xué)位,同時又決定成為程序員,那么以下是幾點建議:
1.不要閉門造車
請找個地方,與其他程序員一同工作,而無論你們是否從事同一個項目。
獨(dú)自一人編程所面臨的嚴(yán)重挑戰(zhàn)在于,關(guān)于你不清楚的細(xì)節(jié),你將毫無頭緒。只有將自己的代碼與他人的代碼進(jìn)行比較,你才能知道哪里出了問題。
IEEE的巴里·博姆(Barry Boehm)的一項研究顯示,無論是否采用結(jié)對編程模式,與他人一同進(jìn)行代碼評審相對于獨(dú)立工作將可以多發(fā)現(xiàn)60%的代碼錯誤。
2.良好的關(guān)系網(wǎng)比出挑的編程能力更重要
閉門造車還會帶來一個壞處,這就是你無法在職業(yè)生涯初期建立自己的關(guān)系網(wǎng)。這樣的關(guān)系網(wǎng)能在日后帶來巨大幫助。
通過這樣的關(guān)系,其他程序員可以評估你的技能,幫你逐步提高自己的能力。
3.自學(xué)大學(xué)計算機(jī)專業(yè)的內(nèi)容
這種學(xué)習(xí)的好處在于,如果你掌握了6到8本書的基本知識,那么就會成為一名基本功扎實的程序員。推薦的學(xué)科包括離散數(shù)學(xué)的應(yīng)用、設(shè)計模式或J2EE設(shè)計模式,以及算法設(shè)計等。
如果你參加在線課程或培訓(xùn)班,那么建議是從頭開始學(xué)習(xí),除非你有過一定的編程經(jīng)驗,或是對技術(shù)有著天生的直覺。
自頂向下的模式“將程序員置于應(yīng)用或框架中,鼓勵他們將自己的知識拼接在其中”。而自底向上的模式則是“從基礎(chǔ)開始,逐步培養(yǎng)能力”。
對入門者來說,自底向上的方式值得推薦,因為這將厘清許多概念。動力節(jié)點創(chuàng)新推出國內(nèi)Java零基礎(chǔ)培訓(xùn)班,想打好計算機(jī)基礎(chǔ),可以先上基礎(chǔ)班再到就業(yè)班。
4.持續(xù)練習(xí)
無論是否有學(xué)位,多參與項目不僅對未來的職業(yè)生涯發(fā)展很重要,也是幫你積累更多經(jīng)驗的很好方式。
如果你不打算拿到計算機(jī)科學(xué)學(xué)位,那么這一點尤為重要。這些項目將成為你的主要經(jīng)歷,可以展示你的能力。一種很好的起步方式是開發(fā)移動應(yīng)用。這使你方便地展示成果,并從用戶那里直接獲得反饋。
如果你考慮開發(fā)移動應(yīng)用,那么建議是學(xué)習(xí)iOS平臺的Swift或Objective C,Android平臺的Java,以及Windows Phone平臺的C#、VB或JavaScript。
此外,你也可以使用Phonegap和Titanium等技術(shù),開發(fā)運(yùn)行在所有三大平臺上的應(yīng)用。這些技術(shù)基于HTML、CSS和JavaScript,開發(fā)的應(yīng)用可以在各處運(yùn)行。
想學(xué)Java就來動力節(jié)點,口口相傳的Java黃埔軍校,實現(xiàn)你的高薪夢!