对话 Jessica Hamrick:和 Django 的情缘是我前行的动力
本文出自 Your Django Story 系列,该系列主要突出那些贡献 Django 的女性。点击查看更多,本文系 OneAPM 工程师编译整理。
Jess Hamrick 是加州大学伯克利分校心理学系研究生,其研究包括通过编写程序模仿人类行为,以期了解人类如何认识世界的。从2008年起,Jess Hamrick 开始痴迷 Pythonista,并在其研究中重度使用。
你是如何走向编程之路的?
在我出生之前,我的父母都是程序员。尽管在我小时候他们就换了工作,但是家里还是有电脑的。不知出于什么原因,电脑一直吸引着我。儿时记忆中,曾坐在母亲腿上使用一款名为 Corel Draw 的矢量图形程序。那时对于可以用它画出不同的形状和填充不同的模型非常着迷。
几年后开始接触游戏,尤其喜欢 Game Boy,因为可以在上面玩新 Pokemon 游戏。尽管父母不赞同我玩游戏,不允许有自己 Game Boy 游戏机,但是他们告诉我,如果我自己开发一个游戏,就可以随心所欲的玩了。当时这对我而言,真是动力十足。
现在我仍未开发出自己想玩的游戏,但挑战仍在继续。在初中时代,我学会了 HTML 和 CSS,并与朋友一起创建了各种网站。在高中时,开始上编程课。最终在大学里如愿以偿地专修计算机科学。
在成为一名程序员之前做过什么?
我生活中的大部分时间都是以程序员的身份度过的,但绝非全部。孩提时代很长一段时间,也曾梦想过成为一名蚂蚁科学家。
对于编程,你最喜欢的是?
我喜欢弄清楚如何将问题分割成其组成部分,对这些部分进行研究找到正确的方式再将它们重组回去。对我而言,编程是一种艺术:编程有很多方式,而且有的方式极尽优雅唯美。很多时候,当我解决一个问题时,总会想「难道没有更好的解决办法了吗?」,有时候,也曾以自己的方式来解决一些问题,这种感觉非常好。比如「既然就是问题的解决方法,为什么我会认为有其他方式呢?」弄明白如何从解决问题的第一种方案找到第二种解决方案是一个令人难以置信的挑战,但是一旦成功,得到的回报也是异常丰富。
注:我从不认为代码可以永远「正确」。通常在几个月或者几年后重读以前认为「正确」的代码,看法都会发生变化。但对于我来说,这只是一瞬间的感觉,而非「正确」的客观真理。
为什么选择 Django?
在我本科期间,曾住过 coop,每个学期都会有「工作周」或者「工作周末」,大家一起努力整理房间。在一次周末的工作中,我的任务是整理房间散落内数百本书。我们开始进行对它们进行分类整理,同是我意识到,如果整理后不能轻易搜索目录,整理就变的毫无意义。所以,我开发了一个 Django 应用,很容易地实现了添加新书和查询现有书籍功能。Django 似乎是一个明智的选择:(1)Python 曾是(现在仍然是)我使用的语言;(2)我知道程序需要在关系数据库上进行编写。我其实并不是很了解数据库,所以对我来说这是一个很好的学习机会。
你目前或将来打算从事的比较「酷」的项目是?
自从本科毕业后,我越来越多的参与到 Scientific Python 社区中。特别是,我参与了 IPython 和 Jupyter 项目。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 官方技术博客。
对话 Jessica Hamrick:和 Django 的情缘是我前行的动力的更多相关文章
- 「Python-Django」Django中使用数据库的 9 个小技巧
Django 中使用数据库的 9 个小技巧. 1. 过滤器聚合 在 Django 2.0 之前,如果你想得到“用户总数”.“活跃用户总数”等信息时,你不得不使用条件表达式. Django 2.0 中, ...
- IT部门能力评估...
IT运行成本和变化成本越来越高,IT部门是否上了一些对企业无价值的系统,是否充分利用了已有系统的价值? 随 着IT应用不断深入,庞大的企业IT系统日积月累,各种隐患渐渐显露.IT系统变得越来越复杂,运 ...
- 再访贺利坚(一):IT毕业生去培训机构,这件事很正常(转载)
转载自: 再访贺利坚(一):IT毕业生去培训机构,这件事很正常 导语:与烟台大学计算机学院贺利坚副教授相识,还是在2012年年底,那个时候我在为社区之星专访栏目寻找合适的采访人.在社区运营的推荐下,我 ...
- 【求建议】毕业之声——信院IT类毕业学子经验分享交流会
一:缘由 在和非常多学子交流,及上课的经历中,发现一个非常普遍的现象:部分大一学生即失去了对学习.对专业的兴趣.有人在迷茫之后奋起直追.从而珍惜利用不多的大学时光努力提高自己.有人在迷茫中沉沦,沉迷于 ...
- 《Django By Example》第四章 中文 翻译 (个人学习,渣翻)
书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:祝大家新年快乐,这次带来<D ...
- Cenos(6.6/7.1)下从源码安装Python+Django+uwsgi+nginx到写nginx的环境部署(一)
梳理下这几个的关系: centos是redhat的社区版操作系统. Python2.7.5是开发语言(centos6.5下自带的python是2.6.6版本,所以需要源码更新,而centos7.1下面 ...
- 5 个最受人喜爱的开源 Django 包
导读 Django 围绕“可重用应用”的思想建立:自包含的包提供了可重复使用的特性.你可以将这些可重用应用组装起来,在加上适用于你的网站的特定代码,来搭建你自己的网站.Django 具有一个丰富多样的 ...
- 微信开发python+django两个月的成功经历,django是个好框架!
时间:大三 上学期没有用微信内置浏览器而纯对话开发,坑了自己好一下. 下学期选错bottle框架,以为轻量好,谁知开发中什么都自己来很痛苦. 选对了框架django,终于在大三最后的个把月里写 ...
- django框架介绍
主要内容 1. Django框架发展 2. Django架构,MTV模式 3. 开发流程 4. 开发实例——Poll python下各种框架 一 ...
随机推荐
- NoSQL选型
传统“关系型数据库”在应付互联网WEB2.0应用已显示的力不从心,由其是超大规模和高并发的SNS类型的WEB2.0网站.主要需要应对以下三方面难题: 1.对数据库高并发读写的要求. 2.对数据库高可扩 ...
- centos_Error: Protected multilib versions_解决方法
在yum命令后面加入忽略参数:--setopt=protected_multilib=false you can also use --setopt=protected_multilib=false ...
- (转)css3前缀
CSS3的前缀是一个浏览器生产商经常使用的一种方式.它暗示该CSS属性或规则尚未成为W3C标准的一部分.看看都有哪些前缀: -webkit(chrome) -moz(firefox) -ms(ie) ...
- 有关line-height的见解
line-height:简单的说就是行高,是两行文字之间基线的距离.基线是指在英语的书写的4线3格中,从上往下数的第三条线 1.line-height与行内框盒子模型 所有内联元素的样式表现都与行内框 ...
- js 拼接参数
htmlString += "<td><button type=\"button\" onclick=\"artdel('"+pro ...
- sqlserver 理解数据集
数据集分四类: 1.A∩B,既是所求数据集既在A中,又在B中 2.A∪B,既所求数据在数据集A中,或在数据集B中 3.A-B,既所求数据在数据集A中,不在数据集B中 4.B-A,既所求数据在数据集B中 ...
- 2.1 JavaScript应用开发实践指南
创建交互层 循环 示例代码如下: var people = family, peopleCount = items.length, i; if(peopleCount>0){ for(i=0; ...
- 信鸽推送.net 服务端代码
//推送代码 private void send() { #region 安卓推送 XingeApp app = new XingeApp("accessId", "se ...
- javascript 第28节 jQuery事件、迭代、样式
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- There is no Action mapped for namespace [/] and action name [user] associated with context path
从c++转到java,初学struts,竟然碰到一个因写错单词而造成的错误,structs --> struts