美國一半碼農(nóng)都沒有計(jì)算機(jī)學(xué)位,學(xué)編程一定要上大學(xué)?
去年,美國的程序員問答網(wǎng)站Stack Overflow曾向用戶提問,他們是否有計(jì)算機(jī)科學(xué)專業(yè)的學(xué)位。在這項(xiàng)“2015年開發(fā)者調(diào)查”中,26086名程序員中有近一半回答稱,他們沒有計(jì)算機(jī)科學(xué)學(xué)位。
本文引用地址:http://2s4d.com/article/201604/290387.htm這是否意味著,不需要大學(xué)學(xué)位就可以成為程序員?簡(jiǎn)而言之,答案是肯定的。不過,對(duì)非專業(yè)出身的人士來說,程序員之路要相對(duì)困難。
人力資源機(jī)構(gòu)Robert Half Technology高級(jí)總監(jiān)約翰·里德(John Reed)表示,許多知名科技公司用大學(xué)學(xué)歷作為門檻來過濾求職者簡(jiǎn)歷。例如,谷歌(微博)不會(huì)面試沒有計(jì)算機(jī)科學(xué)學(xué)位的入門級(jí)工程師。
如果情況如此,那么為何許多程序員沒有計(jì)算機(jī)科學(xué)學(xué)位?一個(gè)重要的外部因素是大學(xué)學(xué)費(fèi)正日益高漲。例如在美國,最便宜的公立兩年制大學(xué)每年學(xué)費(fèi)平均為11438美元,而最昂貴的選擇,即私立的非盈利四年制大學(xué)每年學(xué)費(fèi)平均為43921美元。這些費(fèi)用中還沒有包括生活費(fèi)。
其他因素也在造成影響。一方面,速成的在線課程和培訓(xùn)班正在興起。你可以在實(shí)踐中學(xué)習(xí),而不必等待幾年時(shí)間才能畢業(yè)。
因此,如果你沒有計(jì)算機(jī)學(xué)位,同時(shí)又決定成為程序員,那么以下是幾點(diǎn)建議:
1.不要閉門造車
請(qǐng)找個(gè)地方,與其他程序員一同工作,而無論你們是否從事同一個(gè)項(xiàng)目。
獨(dú)自一人編程所面臨的最嚴(yán)重挑戰(zhàn)在于,關(guān)于你不清楚的細(xì)節(jié),你將毫無頭緒。只有將自己的代碼與他人的代碼進(jìn)行比較,你才能知道哪里出了問題。
IEEE的巴里·博姆(Barry Boehm)的一項(xiàng)研究顯示,無論是否采用結(jié)對(duì)編程模式,與他人一同進(jìn)行代碼評(píng)審相對(duì)于獨(dú)立工作將可以多發(fā)現(xiàn)60%的代碼錯(cuò)誤。
眾創(chuàng)空間或許可以給你提供這樣的場(chǎng)所。在這里,你可以與有著類似追求的人一同工作。
2.良好的關(guān)系網(wǎng)比優(yōu)秀的編程能力更重要
閉門造車還會(huì)帶來一個(gè)壞處,這就是你無法在職業(yè)生涯初期建立自己的關(guān)系網(wǎng)。這樣的關(guān)系網(wǎng)能在日后帶來巨大幫助。
通過這樣的關(guān)系,其他程序員可以評(píng)估你的技能,幫你逐步提高自己的能力。
3.自學(xué)大學(xué)計(jì)算機(jī)專業(yè)的內(nèi)容
云文件共享創(chuàng)業(yè)公司Egnyte高級(jí)產(chǎn)品總監(jiān)格雷格·諾斯塔特(Greg Neustaetter)承認(rèn),如果沒有大學(xué)計(jì)算機(jī)專業(yè)的背景,那么將會(huì)出現(xiàn)一些嚴(yán)重的知識(shí)缺失。
這種學(xué)習(xí)的好處在于,如果你掌握了6到8本書的基本知識(shí),那么就會(huì)成為一名基本功扎實(shí)的程序員。推薦的學(xué)科包括離散數(shù)學(xué)的應(yīng)用、設(shè)計(jì)模式或J2EE設(shè)計(jì)模式,以及算法設(shè)計(jì)等。
如果你參加在線課程或培訓(xùn)班,那么建議是從頭開始學(xué)習(xí),除非你有過一定的編程經(jīng)驗(yàn),或是對(duì)技術(shù)有著天生的直覺。
自頂向下的模式“將程序員置于應(yīng)用或框架中,鼓勵(lì)他們將自己的知識(shí)拼接在其中”。而自底向上的模式則是“從基礎(chǔ)開始,逐步培養(yǎng)能力”。
對(duì)入門者來說,自底向上的方式值得推薦。因?yàn)檫@將厘清許多概念。
例如,關(guān)于Ruby on Rails的教程就存在不清晰的概念。這本書的第一章就提到了MVC模型,但卻沒有介紹一些基本概念,例如面向?qū)ο蟮木幊獭?/p>
4.持續(xù)練習(xí)
無論是否有學(xué)位,多參與項(xiàng)目不僅對(duì)未來的職業(yè)生涯發(fā)展很重要,也是幫你積累更多經(jīng)驗(yàn)的有效方式。
如果你不打算拿到計(jì)算機(jī)科學(xué)學(xué)位,那么這一點(diǎn)尤為重要。這些項(xiàng)目將成為你的主要經(jīng)歷,可以展示你的能力。一種很好的起步方式是開發(fā)移動(dòng)應(yīng)用。這使你方便地展示最終成果,并從用戶那里直接獲得反饋。
如果你考慮開發(fā)移動(dòng)應(yīng)用,那么建議是學(xué)習(xí)iOS平臺(tái)的Swift或Objective C,Android平臺(tái)的Java,以及Windows Phone平臺(tái)的C#、VB或JavaScript。
此外,你也可以使用Phonegap和Titanium等技術(shù),開發(fā)運(yùn)行在所有三大平臺(tái)上的應(yīng)用。這些技術(shù)基于HTML、CSS和JavaScript,開發(fā)的應(yīng)用可以在各處運(yùn)行。
你還可以通過GitHub參與開源項(xiàng)目。
5.找一個(gè)副業(yè)
最開始從事編程時(shí),你可能無法獲得足夠的收入去保障生活。即使你關(guān)于某款應(yīng)用的想法價(jià)值2萬美元,但由于你沒有成功經(jīng)歷,因此很少有人會(huì)相信。換句話說,你需要找個(gè)副業(yè)去謀生,而這樣的副業(yè)最好也能有助于你培養(yǎng)能力。
根據(jù)編程水平的不同,你可以參與創(chuàng)業(yè)公司,從事質(zhì)量保障工作,或是從事自由職業(yè)。
創(chuàng)業(yè)公司通常愿意冒險(xiǎn),雇傭一些沒有太多經(jīng)驗(yàn)的人士。不過對(duì)于“足夠好”的程序員,它們有自己的標(biāo)準(zhǔn)。盡管你不一定需要開發(fā)出復(fù)雜的、可維護(hù)的代碼,但至少需要證明,你開發(fā)的東西能被用起來。
如果你做不到這一點(diǎn),那么可以從事質(zhì)量保障的工作,這能幫你加強(qiáng)技術(shù)能力。質(zhì)量保障的工作內(nèi)容是找出產(chǎn)品中的問題,并建議如何修改。這也是程序員解決問題時(shí)的核心基礎(chǔ)。從事這類工作將有助于增強(qiáng)你對(duì)技術(shù)能力的自信心,而大學(xué)學(xué)位對(duì)這類工作而言并非必需的。
最后一個(gè)選擇是自由職業(yè),只要職業(yè)能滿足你的生活需求。類似Upwork的網(wǎng)站列舉了許多與技術(shù)相關(guān)的職位,包括網(wǎng)頁開發(fā)、移動(dòng)開發(fā),以及設(shè)計(jì)和營銷等。
評(píng)論