對話 Jessica Hamrick:和 Django 的情緣是我前行的動力

OneAPM官方技術部落格發表於2015-12-18

本文出自 Your Django Story 系列,該系列主要突出那些貢獻 Django 的女性。點選檢視更多,本文系 OneAPM 工程師編譯整理。

Jess Hamrick 是加州大學伯克利分校心理學系研究生,其研究包括通過編寫程式模仿人類行為,以期瞭解人類如何認識世界的。從2008年起,Jess Hamrick 開始痴迷 Pythonista,並在其研究中重度使用。

對話 Jessica Hamrick:和 Django 的情緣是我前行的動力

你是如何走向程式設計之路的?

在我出生之前,我的父母都是程式設計師。儘管在我小時候他們就換了工作,但是家裡還是有電腦的。不知出於什麼原因,電腦一直吸引著我。兒時記憶中,曾坐在母親腿上使用一款名為 Corel Draw 的向量圖形程式。那時對於可以用它畫出不同的形狀和填充不同的模型非常著迷。

幾年後開始接觸遊戲,尤其喜歡 Game Boy,因為可以在上面玩新 Pokemon 遊戲。儘管父母不贊同我玩遊戲,不允許有自己 Game Boy 遊戲機,但是他們告訴我,如果我自己開發一個遊戲,就可以隨心所欲的玩了。當時這對我而言,真是動力十足。

現在我仍未開發出自己想玩的遊戲,但挑戰仍在繼續。在初中時代,我學會了 HTML 和 CSS,並與朋友一起建立了各種網站。在高中時,開始上程式設計課。最終在大學裡如願以償地專修電腦科學。

在成為一名程式設計師之前做過什麼?

我生活中的大部分時間都是以程式設計師的身份度過的,但絕非全部。孩提時代很長一段時間,也曾夢想過成為一名螞蟻科學家。

對於程式設計,你最喜歡的是?

我喜歡弄清楚如何將問題分割成其組成部分,對這些部分進行研究找到正確的方式再將它們重組回去。對我而言,程式設計是一種藝術:程式設計有很多方式,而且有的方式極盡優雅唯美。很多時候,當我解決一個問題時,總會想「難道沒有更好的解決辦法了嗎?」,有時候,也曾以自己的方式來解決一些問題,這種感覺非常好。比如「既然就是問題的解決方法,為什麼我會認為有其他方式呢?」弄明白如何從解決問題的第一種方案找到第二種解決方案是一個令人難以置信的挑戰,但是一旦成功,得到的回報也是異常豐富。

注:我從不認為程式碼可以永遠「正確」。通常在幾個月或者幾年後重讀以前認為「正確」的程式碼,看法都會發生變化。但對於我來說,這只是一瞬間的感覺,而非「正確」的客觀真理。

為什麼選擇 Django?

在我本科期間,曾住過 coop,每個學期都會有「工作周」或者「工作週末」,大家一起努力整理房間。在一次週末的工作中,我的任務是整理房間散落內數百本書。我們開始進行對它們進行分類整理,同是我意識到,如果整理後不能輕易搜尋目錄,整理就變的毫無意義。所以,我開發了一個 Django 應用,很容易地實現了新增新書和查詢現有書籍功能。Django 似乎是一個明智的選擇:(1)Python 曾是(現在仍然是)我使用的語言;(2)我知道程式需要在關聯式資料庫上進行編寫。我其實並不是很瞭解資料庫,所以對我來說這是一個很好的學習機會。

你目前或將來打算從事的比較「酷」的專案是?

自從本科畢業後,我越來越多的參與到 Scientific Python 社群中。特別是,我參與了 IPythonJupyter 專案。Jupyter notebook 是一個執行在瀏覽器上的程式設計環境,能將程式碼、文字、影像整合一起,使其滿足互動程式碼或資料探索的需求。它尤為適合完成課堂作業,因為同一個檔案下可在文字指令和程式碼練習間自由切換。在過去的一年裡,我一直忙於 nbgrader 專案,該專案是 Jupyter notebook 中的分級工具。至今它僅被用在少數幾個課堂(包括我的),但是很高興看到大家逐漸接受它。

最讓你自豪的是?

在去年春季,當我還是計算機認知科學這門課助教的時候。我們在 Jupyter notebook 中開發了分配選項,並且將超過200個學生連入 notebook 內,併為班級建立了一個伺服器叢集。 這就使得學生們無需自行安裝 notebook,便可登入使用。這是一個浩大的工程,我需要去學習之前從未聽說過的 Docker 和 Ansible 等工具。不過最後還是成功了,並且其工作執行十分流暢。這是一個令人難以置信的專案,我認為它確實給我們的學生帶來了不一樣的體驗。

你對什麼感到好奇?

作為一個自認為既是科學家又是工程師的人,我好奇的東西太多太多了。科學方面:我想知道人類是如何思考和認識世界的。工程方面:我對建立科學家用於研究的工具具有很大興趣。

平時空閒喜歡做些什麼?愛好是?

作為一個研究生,我並沒有很多空閒時間。大部分空閒時間,都用於在 IPython 這類開源專案上了。我也喜歡遊戲(現實遊戲和電子遊戲兩者都喜歡),喜歡在海灣地區騎自行車。

對於程式設計初學者,有什麼建議或者小技巧嗎?

選擇一個真正感興趣的專案,並嘗試著去解決該問題。程式設計教程固然不錯,但是可能會僵化你的思維:想要真正成為一個程式設計師,需要一個問題驅動你前進,尋求解決的方法。如果不知道如何從所選的問題下手,建議把重點放在某一方面。一旦解決一方面的問題,就可以用更復雜的方法繼續工作下去。這就是大多數程式設計師實際解決問題的方法:找到問題最簡單的部分加以解決,並繼續深入。最為重要的是,不要放棄!

謝謝Jess! :)

原文連結:http://blog.djangogirls.org/post/129569804938/your-django-story-meet-jessica-hamrick

OneAPM 能夠幫你檢視 Python 應用程式的方方面面,不僅能夠監控終端的使用者體驗,還能監控伺服器監效能,同時還支援追蹤資料庫、第三方 API 和 Web 伺服器的各種問題。想閱讀更多技術文章,請訪問 OneAPM 官方技術部落格

相關文章