如何開始學習編程?
最近有很多關於學習編程的爭論。不僅僅是因為與軟體開發公司公開的待應聘的職位數量相比較符合招聘要求的人遠遠無法滿足缺口,編程也是工資最高和工作滿足感最強的眾多職業之一。也難怪越來越多的人都想進入這個行業。
但是你要怎麼做才能正確地入行呢?「我應該怎麼學習編程?」是初學者常見的一個問題。儘管我沒有這些問題的全部答案,但是我希望這篇文章能夠給你提供相關指導來幫助你找到最適合你的需求和自身情況發展的解決辦法。
你的學習方式是什麼?
在你開始學習編程之前,你需要考慮的不僅僅是你的方向選擇,還要更多的考慮下你自己。古羅馬人有句諺語, γνῶθι σεαυτόν ,意思是「認識你自己」。投入到一個大型的編程學習過程中難度不小。足夠的自我認識是非常有必要的,這能夠確保你做出的選擇通向成功的機會非常大。你需要思考並誠實地回答接下來的這些問題:
- 你最喜歡什麼樣的學習方式?怎麼做你才能學到最好?是通過閱讀的方式嗎?還是聽講座?還是主要通過動手實踐?你需要選擇對你最有效的方法。不要僅僅因為這種學習方法流行或者有其他人說過這種方法對他們很有用就選擇了這種方法。
- 你的需要和要求是什麼?你為什麼想學習如何編程?是因為你只是想換一份工作嗎?如果是這樣的話,你需要多次時間才能完成呢?你要牢記,這些是需要的 ,不是想要的 。你可能想要下周就換份新工作,但是需要在接下來的一年裡供養你正在成長的家庭。當你在人生的道路上面臨方向的抉擇時,時間的安排特別重要。
- 你能獲取的參考資料有哪些?當然,重返大學並獲得一份計算機科學專業的學位證書可能也不錯,但是你必須對你自己實事求是面對現實。你的生活必須和你學習相適應。你能承受花費幾個月的時間和不菲的費用去參加集訓嗎?你是否生活在一個可以提供學習機會的地方,比如提供技術性的聚會或者大學課程?你能獲取到的參考資料會對你的學習過程產生巨大的影響。在打算學編程換工作前先調查好這些。
選擇一門編程語言
當你打算開始你的編程學習之路和考慮你的選擇的時候,請記住不管其他人說什麼,選擇哪門編程語言來開始你的編程學習關係不大。是的,是有些編程語言比其他的更流行。比如,根據一份調查研究,目前 JavaScript,Java,PHP, 和 Python 處於 最受歡迎最流行的編程 中的前排。但是現在正流行的編程語言有可能過幾年就過時了,所以不用太糾結編程語言的選擇。像那些方法,類,函數,條件,控制流程和其他的編程的概念思想等等,不管你選的哪門編程語言,它們的底層原理基本是一致的。只有語法和社區的最佳實踐會變。因此你能夠用 Perl 學習編程,也可以用 Swift 或者 Rust。作為一個程序員,你會在你的職業生涯里用很多不同的編程語言來工作。不要認為你被困在了編程語言的選擇上。
試水
除非你已經涉足過這個行業或者確信你願意花費你生命的剩餘時光來編程,我建議你最好還是下水之前先用腳趾頭來試試水溫之類的來判斷這水適不適合。這種工作不是每個人都能做的。在把全部希望都壓在學習編程之前,你可以先嘗試花費少量時間金錢來學習一小部分知識點來了解自己是否會享受這種每周起碼花費 40 個小時來編碼工作的生活。如果你不喜歡這種工作,你不太可能完成編程項目的學習。即便你完成結束了編程的學習階段,你也會在你以後的編程工作中感到無比痛苦。人生苦短就不要花費你人生三分之一的時間來做你不喜歡的事了。
謝天謝地,軟體開發不僅僅需要編程。熟悉編程概念和理解軟體是怎麼和他們結合在一起的是非常有用的,但是你不需要成為一個程序員也能在軟體開發行業中找到一份報酬不菲的工作。在軟體開發過程中,另外的重要角色有技術文檔撰寫人、項目經理、產品經理、測試人員、設計人員、用戶體驗設計者、運維/系統管理員和數據科學家等。軟體成功的啟動需要很多角色之間相互配合。不要覺得學習了編程就要求你成為一個程序員。你需要探索你的選擇並確定哪個選擇才是最適合你的。
參考的學習資料
你對學習參考資料的選擇是什麼?可能正如你已經發現的那樣,可供選擇的參考資料非常多,儘管在你的那片區域不是所有的資料都能夠獲得。
- 訓練營:最近這幾年像 App Academy 和 Bloc 這樣的訓練營越來越流行。訓練營通常收費 $10K 或者更多,他們宣稱在幾周內就能夠把一個學生培訓成一個稱職的程序員。在參加編程集訓營前,你需要研究下你將要學習的項目能確保正如它所承諾的那樣,在學生學完畢業後能夠找到一個高薪的長期供職的職位。一方面花費了數目不小的錢財,而且時間也花費了不少——通常這些都是典型的全日制課程並且要求學生在接下來的連續幾周里把其它的事先放在一邊專心課程學習。然而時間金錢這兩項不菲的消耗通常會使很多未來的程序員無法參加訓練營。
- 社區學院/職業培訓中心:社區學院常常被那些調研自己學習編程的方式的人所忽視,不得不說這些人該為自己對社區學院的忽視感到羞愧。你在社區學院或者職業培訓中心能夠接受到的教育是和你選擇其他方式學習編程的學習效果一樣有效,而且費用也不高。
- 國家/地方的培訓項目:許多地區都認識到在他們的地區增加技術投資的經濟效益,並且已經制定了培訓計劃來培養受過良好教育和準備好的勞動力。培訓項目的案例包括了 Code Oregon 和 Minneapolis TechHire。檢查下你的州、省或自治區是否提供這樣的項目。
- 在線訓練:許多公司和組織都提供在線技術培訓項目。比如,Linux 基金會致力於通過開源技術使人們獲得成功。其他的像 O'Reilly Media、Lynda.com 和 Coursera 在軟體開發涉及的許多方面提供培訓。Codecademy 提供對編程概念的在線介紹。每個項目的成本會有所不同,但大多數項目會允許你在你的日程安排中學習。
- MOOC:在過去的幾年裡,大規模開放在線課程的發展勢頭已經很好了。像 哈佛、斯坦福、MIT 和其他的一些世界一流大學他們一直在記錄他們的課程,並免費提供在線課程。課程的自我指導性質可能並不適合所有人,但可利用的材料使這成為一個有價值的學習選擇。
- 專業書籍:許多人喜歡用書自學。這是相當經濟的,在初步學習階段後提供了現成的參考資料。儘管你可以通過像 Safari 和 Amazon 這樣的在線服務訂購和訪問圖書,但是也不要忘了檢查你本地的公共圖書館。
網路支持
無論你選擇哪一種學習資源,有網路支持都將獲得更大的成功。與他人分享你的經歷和挑戰可以幫助你保持動力,同時為你提供一個放心的地方去問那些你可能還沒有足夠自信到其他地方去問的問題。許多城鎮都有當地的用戶群聚在一起討論和學習軟體技術。通常你可以在 Meetup.com 這裡找到。專門的興趣小組,比如 Women Who Code 和 Code2040,在大多數城市地區經常舉行會議和黑客馬拉松活動,這是在你學習的時候結識並建立一個支持網路的很好的方式。一些軟體會議舉辦「黑客日」,在那裡你可以遇到有經驗的軟體開發人員,他們能夠幫助你解決你所困擾的一些問題。例如,每年的 PyCon 會議都會提供幾天的時間來讓人們聚集在一起工作、研討。一些項目,比如 BeeWare,使用這些短暫的時間來幫助新程序員學習和對這些項目做貢獻。
你的網路支持不需要來自正式的聚會。一個小的學習小組可以有效地保持你的學習積極性,並且可以像在你最喜歡的社交網路上發布邀請一樣容易形成。如果你生活在一個沒有大量軟體開發人員社區所支持的聚會和用戶組的地區,那麼這一點特別有用。
開始學習編程的幾個步驟
簡單的來說,既然你決定學習編程,可以參考這幾個方法給自己一個儘可能成功的機會:
- 將你的需要/需求和參考學習資料列出清單並進行收集
- 搜尋在你的當地那裡能夠可用的選擇
- 放棄不能符合你的需求和參考學習資料的選擇
- 選擇最符合你需求的和最適合你的學習參考資源
- 找到一個能夠得到支持的網路
務必牢記:你的學習過程永遠不會結束。高速發展的軟體產業,會導致新技術和新進展幾乎每天都會出現。一旦你學會了編程,你就必須花時間去學習適應這些新的進步。你不能依靠你的工作來為你提供這種培訓。只有你自己負責自己的職業發展,所以如果你想保持最新的技術和工作能力,你必須緊跟行業最新的技術。
祝你好運!
作者簡介:
VM (Vicky) Brasseur - VM (aka Vicky) 是一個技術人員,也是項目、工作進程、產品和企業的經理。在她的長達 18 年的科技行業里,她曾是一名分析師、程序員、產品經理、軟體工程經理和軟體工程總監。目前,她是惠普企業上游開源開發團隊的高級工程經理。她的博客是 anonymoushash.vmbrasseur.com,推特是 @vmbrasseur。
via: https://opensource.com/article/17/4/how-get-started-learning-program
作者:VM (Vicky) Brasseur 譯者:WangYueScream 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive