每一個(gè)程序員都是自學(xué)成才
為什么CS學(xué)位并非是成為開發(fā)人員的***路徑,因?yàn)槊總€(gè)開發(fā)人員在工作于他們的項(xiàng)目時(shí)學(xué)到了很多很多。
除了CS學(xué)位,還有很多成為程序員的方法。如果你正行進(jìn)在一條非常規(guī)的道路上,那么你可能會想知道你該追上那些有學(xué)位的人。你該怎么和那些在課堂上花了很多時(shí)間學(xué)習(xí)計(jì)算機(jī)和編程的人競爭?

從我的經(jīng)驗(yàn)來看,競爭的要點(diǎn)不在于學(xué)位:關(guān)鍵在于你會如何利用你所掌握的技能。條條大路通羅馬。事實(shí)上,從學(xué)校里是學(xué)不到如何做一個(gè)web開發(fā)人員或Android開發(fā)人員的。
每個(gè)使用計(jì)算機(jī)技術(shù)的程序員大多靠自學(xué)成才,在工作中和自己的空閑時(shí)間提高技能。我在完成我的電氣工程學(xué)位的同時(shí),去上了很多與計(jì)算機(jī)相關(guān)的課程, 但其中很少是專門講web開發(fā)的。也許你會上過一兩堂課,或選修這類科目,但當(dāng)你使用的時(shí)候,這方面的知識很有可能已經(jīng)過時(shí)了。
好吧,如果學(xué)位不能教你如web編程或移動(dòng)開發(fā)這些有用的東西,那么學(xué)位還有什么用?學(xué)位的作用是讓你對編程和計(jì)算機(jī)相關(guān)的知識有一個(gè)全面的了解。有助于你了解更多相關(guān)的學(xué)科,例如數(shù)學(xué)、數(shù)據(jù)庫、算法、網(wǎng)絡(luò)、編程模式和語言。
你不需要成為任何這些學(xué)科的專家:但你需要知道它們的存在,并完善這些技能,并且在現(xiàn)實(shí)世界中使用這些技能以便于讓這些技能能夠?qū)ξ覀冋嬲杏?。?一方面,所有這些技能就是一個(gè)有用的工具箱,當(dāng)你啟動(dòng)項(xiàng)目并需要解決新問題的時(shí)候,便是你的好幫手。你可以使用你已經(jīng)學(xué)到的知識作為出發(fā)點(diǎn)去挖掘更深層次 的東西,并根據(jù)需要提升自己。
如果你不曾在學(xué)校里學(xué)到這一點(diǎn),那么你還可以從其他途徑獲取,例如在線課程或書籍。和那些從學(xué)校獲得的知識沒什么不同:雖然說在學(xué)校里學(xué)習(xí)更容易集中注意力,進(jìn)度更快,但你自學(xué)也完全可以。
當(dāng)你開始使用這些技能來完成實(shí)際項(xiàng)目時(shí),這些技能才會漸漸變成你的東西,否則就只是紙上談兵而已。根據(jù)興趣、工作或?qū)iT的計(jì)劃,特定地去學(xué)習(xí)某些領(lǐng) 域,然后一步步前進(jìn)。作為團(tuán)隊(duì)的一員,每個(gè)人都有必要構(gòu)建不同的技巧和知識體系。如果每個(gè)人的技能集完全一樣,那這個(gè)團(tuán)隊(duì)該是多么枯燥和低效??!
而且你在學(xué)校中學(xué)的東西是不完整的。你需要工作于一些小型的項(xiàng)目,以掌握具體的概念,但在現(xiàn)實(shí)生活中,在你運(yùn)行了你的***個(gè)版本之后,你就會不由自 主地繼續(xù)前進(jìn)。你會繼續(xù)學(xué)習(xí)如何維護(hù),如何修復(fù)bug,如何部署以及如何在眾多規(guī)則的框框架架中完成團(tuán)隊(duì)工作。你會在你工作的每一個(gè)項(xiàng)目和你修復(fù)的每一個(gè) bug中不斷學(xué)到新的技能。
我們最重要的是學(xué)習(xí)如何學(xué)習(xí),這樣才能在需要時(shí)迅速掌握相關(guān)學(xué)科和一門新的技術(shù)。如果你能一直保持學(xué)習(xí)的態(tài)勢,那將更方便你學(xué)習(xí)新的東西,并且建立一個(gè)學(xué)習(xí)的好習(xí)慣,永遠(yuǎn)是亡羊補(bǔ)牢,猶未晚矣。
譯文鏈接:http://www.codeceo.com/article/every-programmer-self-taught.html
英文原文:Every Programmer Is Self-Taught























