Matt DeBoard:我是如何成為程序員的

openkk 13年前發布 | 15K 次閱讀 程序員

Matt DeBoard 本是一名退伍軍人。他在 12 周的時間內,由一名非程序員成長為一名專業開發者。對于如何成為一名程序員?他有著自己獨到的心得與學習經驗。他在博文《How I Became a Programmer》中介紹了自己成為一名程序員的學習經歷,并通過問答形式,分享了很多學習經驗和心得。譯文如下:

我昨天在"HackerNews"上發表了一個簡短的回應—— 有關于反對"Ruby on Rails"的八星期指導課能夠令你成為一名初級 RoR 開發人員的聲音。我沒有得到很多贊成票,所以我得到一個結論即是互聯網上的談話正越來越趨向于融入大眾輿論。你可以想象一下,當我在收集來自世界各地的少數有價值的郵件的時候,我是多么驚訝。這些郵件大多在問:我過去做了什么,我是怎么做的,以及我是怎樣得到一份工作的。我做了一個假設——由于在這些少數的郵件里面有來自遙遠的洪都拉斯,那么一定有很多人想知道應該怎樣去追尋一個程序員的職業生涯。

首先聲明兩點

請注意這個博客的標題是“我如何成為一名程序員”,而不是“你如何成為一名程序員”。我不是一名自學專家,也不是一名聰明、優秀程序員。而我在人生轉折點做了很有意義的事, 并獲得了成功。

和女朋友協商后,我傾注了所有時間,以期成為一名職業程序員,而這個過程僅用了 12 周,而非我之前說的 10 周。

我的故事

簡單來說,我在海軍陸戰隊服役 10 多年后,于 2010 年 7 月退伍。同年八月,我在一家國立彩票機構做 PR 的工作,于今年的二月中旬失業。今年五月中旬,我在“DirectEmployers”協會找到一份叫做“初級用戶體驗工程師”的兼職工作。八月末,我成了公司正式的“用戶體驗工程師”。

當我結束了那份 PR 工作時,我覺得自己已經受夠了,我想成為一名程序員。我拿出所有積蓄,并整日以方便面和水為食。我的家人(尤其是父親)簡直要急瘋了。今年的二月至五月期間,我連走路的時候都在學習編程,學習 Linux,學習計算機科學。我自學了 Python, Django, 并學會了一些函數式和命令式編程。此外,我對 Linux 的命令行已相當熟悉。

瞧,不再說廢話,接下來我要談談我并未做的事情,然后我會回答 Email 中的部分問題。

我并未做過的事情

Email 中問到最多的一個問題是:你如何在 11 周內學會了 Django?

在此我想澄清一下,起初我并非為了學習 Django 而學習 Django。Django 只是一個很不錯的抽象工具包,它可以幫助 Python 很容易地開發各種 Web 應用。我專注于學習 Django 只是件偶然的事情。

我過去,乃至現在都沒有期望成為一名 Django 開發人員。至今我也不確定自己是否喜歡被稱為 Python 程序員。

換言之,如果我過去為成為一名 Django 抽象層方面的專家而花費過度精力,而不是用心鉆研 Django 工作原理,那么如今我肯定不會獲得現在的能力。

來自郵件的問題:

問:你是通過網絡或書籍開始學習的嗎?

答:是的。Django 擁有豐富的說明文檔,StackOverflow 是更加綜合性的學習資源。此外,對于普遍的學習問題,我認為 MIT 的公開課“Introduction to Computer Science”視頻課程系列是非常棒的計算機科學資源。

問:你每天,每周投入多少時間來學習?

答:很多時間。有時 8 小時,有時 12 小時,有時甚至 16 小時。我計算機編程很狂熱,并如饑似渴地學習。我從不給自己偷懶和自我滿足的機會,并付出了比平時多十倍的努力。我不玩游戲機,不看電視,甚至整天不睡覺。我每天所做的事情只有學習代碼,黑客技術,編程和開發。

問:有人為你指導嗎?

答:有。有個非常聰明的人一直在指導我學習編程,雖然我現在有了很大進步不再需要過多依靠他了。他幾乎用了所有的方法,來引導我成為一名合格的程序員。在編程知識(尤其是 Python 和 Django 開發)、命令行、emacs & vim 的學習上,他都給予了詳細的指導。他是一個成功的、很受人尊重的、見多識廣的懷疑論者。

問:你之前的工作背景和經驗對你的自學有什么特殊的輔助作用嗎?

答:有一定作用吧。我之前是一個計算機極客,在 80 年代末泡過很多論壇,學習了 QBasic 和 VisualBasic,還斷斷續續地學了幾年的 Python。除此之外就沒有了。

問:你最初為什么選擇學習 Django?

答:一直作為我職業發展榜樣的人憑借 Django 獲得了成功。為此我也選擇了 Django。

問:介意分享一下你的學習過程嗎?

答:我想再次說明一下,我不是自學專家,也不特殊。我只是非常努力,因為我生活很艱苦,并將自己逼到了死胡同,我別無選擇,只能成功。我花掉了我所有可以花費的積蓄,就是希望可以找到一份我喜歡的職業。這就是我的學習過程。

問:請分享一下您學習 Django 的過程,及學習 Django(或者 HTML/CSS, JavaScript 等前端技術)的技巧、網站、書籍;

答:除了認真的學習這門技術外,我沒有其他技巧。為了學習 Django,我花費了大量的時間,其中也有很多樂趣。

正如我上面說的,我并不覺得“學會了 Django”,“學會了 Ruby on Rails”,或者“學會了 Noir”就成功了。我認為我之所以成功,因為我在學習這些語言的同時,還學習了這些語言背后的原理,之后我通過運用 Web 框架進一步深入學習了這些語言。框架也是在偶然機會學的。

閱讀一些 Django 文檔,加入 irc.freenode.net 中的#Django,經常在里面提問。這是我經常做的,感覺還不錯。坦白講,我不會死坐在那看這些東西,我會試著編寫一些程序以加深理解其中的概念,然后再閱讀來驗證我的結果。有些人可能覺得沒效果,但對我十分有用。用不用這種方法,最終由你決定。

現在 HTML&CSS 的學習資料非常多,它們也較容易學習。我學習了我能用到的所有 HTML&CSS 相關知識。我記不太清楚 HTML&CSS 的工作原理,比如語法&語義。我不知道如何創建“Gradient”,但我可以找到創建它的方法。我認為這是很重要的。

問:你是怎樣向公司展示你的技術技能的?是否給他們看過你之前的作品?

答:Github。我十分強調使用 Github。做一個項目,把它導入 Github,以此向大家展示你的激情、智慧和好奇心。

當然,還有網絡。參加一些技術會議;多和同行進行交流;要善于用 推ter、博客。多在自己專注語言領域的社區中進行交流;去認識更多的技術人員;同時向大家展示你是多么熱愛編程工作。在我得到第一份編程工作前的一個星期里,我在 Fabric 上發起了一個關于“Python 中 Capistrano”的小型對話。這件事讓我擁有了自己的人際小圈子。

結論

如果對我所做事情進行一個總結的話,我想說的是:

● 多提問,充滿好奇心,充滿熱情;

● 要努力學習一種語言,而不是 Web 框架;

● 努力工作;

● 運用互聯網,多參加技術會議,多用 推ter 和博客。多參加社交活動,向大家展示你對工作充滿熱情,是團隊的光榮;

● (可選項)把自己置于絕望的境地,除了成功,別無選擇。

我最后想表達的觀點是——我很幸運。我不是一個很了不起的程序員。今天結束后我仍然是一個新人,仍然有很多東西要學。我的職業生涯才剛剛開始。我通過努力改變了自己的人生,我感到十分自豪。希望我的經歷能夠幫助大家。

原文鏈接:How I Became a Programmer
      來自: CSDN

 本文由用戶 openkk 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!