Matt DeBoard:我是如何成為程序員的
來源:易賢網(wǎng) 閱讀:786 次 日期:2014-09-09 10:04:23
溫馨提示:易賢網(wǎng)小編為您整理了“Matt DeBoard:我是如何成為程序員的”,方便廣大網(wǎng)友查閱!

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

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

首先聲明兩點

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

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

我的故事

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

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

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

我并未做過的事情

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

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

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

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

來自郵件的問題:

問:你是通過網(wǎng)絡或書籍開始學習的嗎?

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

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

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

問:有人為你指導嗎?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

結(jié)論

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

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

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

● 努力工作;

● 運用互聯(lián)網(wǎng),多參加技術會議,多用Twitter和博客。多參加社交活動,向大家展示你對工作充滿熱情,是團隊的光榮;

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

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

更多信息請查看IT技術專欄

更多信息請查看網(wǎng)絡編程
易賢網(wǎng)手機網(wǎng)站地址:Matt DeBoard:我是如何成為程序員的

2025國考·省考課程試聽報名

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權所有:易賢網(wǎng)