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