程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 更多關於編程 >> Matt DeBoard:我是如何成為程序員的

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

編輯:更多關於編程

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

    我昨天在"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,以此向大家展示你的激情、智慧和好奇心。

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

    結論

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

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

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

    ● 努力工作;

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

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

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

    原文鏈接:How I Became a Programmer

    譯文出處:CSDN

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved