本文出自 Your Django Story 系列顽腾,該系列主要突出那些貢獻 Django 的女性移剪。點擊查看更多篙挽,本文系 OneAPM 工程師編譯整理赶掖。
Jess Hamrick 是加州大學(xué)伯克利分校心理學(xué)系研究生,其研究包括通過編寫程序模仿人類行為达箍,以期了解人類如何認識世界的没龙。從2008年起,Jess Hamrick 開始癡迷 Pythonista缎玫,并在其研究中重度使用硬纤。
你是如何走向編程之路的?
在我出生之前赃磨,我的父母都是程序員筝家。盡管在我小時候他們就換了工作,但是家里還是有電腦的邻辉。不知出于什么原因溪王,電腦一直吸引著我。兒時記憶中值骇,曾坐在母親腿上使用一款名為 Corel Draw 的矢量圖形程序在扰。那時對于可以用它畫出不同的形狀和填充不同的模型非常著迷。
幾年后開始接觸游戲雷客,尤其喜歡 Game Boy,因為可以在上面玩新 Pokemon 游戲桥狡。盡管父母不贊同我玩游戲搅裙,不允許有自己 Game Boy 游戲機,但是他們告訴我裹芝,如果我自己開發(fā)一個游戲部逮,就可以隨心所欲的玩了。當時這對我而言嫂易,真是動力十足兄朋。
現(xiàn)在我仍未開發(fā)出自己想玩的游戲,但挑戰(zhàn)仍在繼續(xù)怜械。在初中時代颅和,我學(xué)會了 HTML 和 CSS,并與朋友一起創(chuàng)建了各種網(wǎng)站缕允。在高中時峡扩,開始上編程課。最終在大學(xué)里如愿以償?shù)貙P抻嬎銠C科學(xué)障本。
在成為一名程序員之前做過什么教届?
我生活中的大部分時間都是以程序員的身份度過的响鹃,但絕非全部。孩提時代很長一段時間案训,也曾夢想過成為一名螞蟻科學(xué)家买置。
對于編程,你最喜歡的是强霎?
我喜歡弄清楚如何將問題分割成其組成部分忿项,對這些部分進行研究找到正確的方式再將它們重組回去。對我而言脆栋,編程是一種藝術(shù):編程有很多方式倦卖,而且有的方式極盡優(yōu)雅唯美。很多時候椿争,當我解決一個問題時怕膛,總會想「難道沒有更好的解決辦法了嗎?」秦踪,有時候褐捻,也曾以自己的方式來解決一些問題,這種感覺非常好椅邓。比如「既然就是問題的解決方法柠逞,為什么我會認為有其他方式呢?」弄明白如何從解決問題的第一種方案找到第二種解決方案是一個令人難以置信的挑戰(zhàn)景馁,但是一旦成功板壮,得到的回報也是異常豐富。
注:我從不認為代碼可以永遠「正確」合住。通常在幾個月或者幾年后重讀以前認為「正確」的代碼绰精,看法都會發(fā)生變化。但對于我來說透葛,這只是一瞬間的感覺笨使,而非「正確」的客觀真理。
為什么選擇 Django僚害?
在我本科期間硫椰,曾住過 coop,每個學(xué)期都會有「工作周」或者「工作周末」萨蚕,大家一起努力整理房間靶草。在一次周末的工作中,我的任務(wù)是整理房間散落內(nèi)數(shù)百本書门岔。我們開始進行對它們進行分類整理爱致,同是我意識到,如果整理后不能輕易搜索目錄寒随,整理就變的毫無意義糠悯。所以帮坚,我開發(fā)了一個 Django 應(yīng)用,很容易地實現(xiàn)了添加新書和查詢現(xiàn)有書籍功能互艾。Django 似乎是一個明智的選擇:(1)Python 曾是(現(xiàn)在仍然是)我使用的語言试和;(2)我知道程序需要在關(guān)系數(shù)據(jù)庫上進行編寫。我其實并不是很了解數(shù)據(jù)庫纫普,所以對我來說這是一個很好的學(xué)習(xí)機會阅悍。
你目前或?qū)泶蛩銖氖碌谋容^「酷」的項目是?
自從本科畢業(yè)后昨稼,我越來越多的參與到 Scientific Python 社區(qū)中节视。特別是,我參與了 IPython 和 Jupyter 項目假栓。Jupyter notebook 是一個運行在瀏覽器上的編程環(huán)境寻行,能將代碼、文本匾荆、圖像整合一起拌蜘,使其滿足交互代碼或數(shù)據(jù)探索的需求。它尤為適合完成課堂作業(yè)牙丽,因為同一個文件下可在文本指令和代碼練習(xí)間自由切換简卧。在過去的一年里,我一直忙于 nbgrader 項目烤芦,該項目是 Jupyter notebook 中的分級工具举娩。至今它僅被用在少數(shù)幾個課堂(包括我的),但是很高興看到大家逐漸接受它构罗。
最讓你自豪的是晓铆?
在去年春季,當我還是計算機認知科學(xué)這門課助教的時候绰播。我們在 Jupyter notebook 中開發(fā)了分配選項,并且將超過200個學(xué)生連入 notebook 內(nèi)尚困,并為班級建立了一個服務(wù)器集群蠢箩。
這就使得學(xué)生們無需自行安裝 notebook,便可登錄使用事甜。這是一個浩大的工程谬泌,我需要去學(xué)習(xí)之前從未聽說過的 Docker 和 Ansible 等工具。不過最后還是成功了逻谦,并且其工作運行十分流暢掌实。這是一個令人難以置信的項目,我認為它確實給我們的學(xué)生帶來了不一樣的體驗邦马。
你對什么感到好奇贱鼻?
作為一個自認為既是科學(xué)家又是工程師的人宴卖,我好奇的東西太多太多了×谛科學(xué)方面:我想知道人類是如何思考和認識世界的症昏。工程方面:我對創(chuàng)建科學(xué)家用于研究的工具具有很大興趣。
平時空閑喜歡做些什么父丰?愛好是肝谭?
作為一個研究生,我并沒有很多空閑時間蛾扇。大部分空閑時間攘烛,都用于在 IPython 這類開源項目上了。我也喜歡游戲(現(xiàn)實游戲和電子游戲兩者都喜歡)镀首,喜歡在海灣地區(qū)騎自行車坟漱。
對于編程初學(xué)者,有什么建議或者小技巧嗎蘑斧?
選擇一個真正感興趣的項目靖秩,并嘗試著去解決該問題。編程教程固然不錯竖瘾,但是可能會僵化你的思維:想要真正成為一個程序員沟突,需要一個問題驅(qū)動你前進,尋求解決的方法捕传。如果不知道如何從所選的問題下手惠拭,建議把重點放在某一方面。一旦解決一方面的問題庸论,就可以用更復(fù)雜的方法繼續(xù)工作下去职辅。這就是大多數(shù)程序員實際解決問題的方法:找到問題最簡單的部分加以解決,并繼續(xù)深入聂示。最為重要的是域携,不要放棄!
謝謝Jess! :)
原文鏈接:http://blog.djangogirls.org/post/129569804938/your-django-story-meet-jessica-hamrick
OneAPM 能夠幫你查看 Python 應(yīng)用程序的方方面面鱼喉,不僅能夠監(jiān)控終端的用戶體驗秀鞭,還能監(jiān)控服務(wù)器監(jiān)性能,同時還支持追蹤數(shù)據(jù)庫扛禽、第三方 API 和 Web 服務(wù)器的各種問題锋边。想閱讀更多技術(shù)文章,請訪問 OneAPM 官方技術(shù)博客编曼。