• 留学Monash访谈
  • 与澳大利亚 Monash 大学 Earo Wang 聊(tu)聊(cao)博士生的日常

今天我们有幸请到 Monash 大学的博士生 Earo Wang(王奕如,@earowang)来统计之都作客,和大家一起吐槽博士生的日常。Earo 的更多信息可以从她的个人主页 https://earo.me 找到,我就不太详细介绍了。

如果我没记错的话,Earo 首次在统计之都亮相是 2014 年由 @fyears 翻译的 Rob Hyndman 的采访稿。我本人在今年 5 月底受我的博士导师 Di Cook 大人之邀去墨尔本参加了一个数据科学方面的会议,并且在那里第一次见到 Earo,对她推荐的川菜馆感到非常满意,我也是在那里头一次知道“冒菜”。

闲话少说。今天的主题是聊聊统计博士生的日常,确切来说,可能应该是澳洲特色的统计博士生的日常,因为我感觉澳洲的教育体系跟美国似乎还不太一样。说实话,我也不确定这位小主是否有代表性……自从我看见她打开 Z shell 哗啦啦敲代码,我就惊呆了。这是我见到的第一位用 zsh 的人(我知道有很多人用),我自己从来都是系统默认啥我就用啥,比如 bash。

我先简单来个开场问吧。请问“垂死病中惊坐起,哀家还得写代码”是你的博士生活常态吗?

“垂死病中惊坐起”相对应的是“哀家还得写论文”。Di一看我在那苦逼地写论文,她就笑得特开心?,一看我在那开心地敲代码,她就愁眉苦脸?。哀家恨不得写代码,最近三个月几乎每天都在Github上打卡。土澳的博士是三年,感觉时间hin是不过用。我们是计量经济系,并非统计,虽然两个老板其实是统计出生。

和谢老大的第一次交集可以追溯到13年的4?,我在twitter上写了篇关于knitr的haiku,你还点赞了。然后就是Rob的采访了。再然后就是今年的线下“会晤”。哈哈。

谢老大算是我的R领路人。当时还在纠结究竟学哪门统计语言,还是因为读了你写的那篇关于人大学弟学妹若干建议(?)的文章,最后决定试着学R。

欢迎大家一起来分享博士僧的生活/心得。?

    改版后的论坛太赞?了,居然有点舍不得走,编辑框好美,忍不住多些几句。

      earowang 你不说我都已经忘了那首俳句。我对俳句的兴趣主要来自于樱友藏(也就是樱桃小丸子的爷爷),他的俳句很蹩脚,而在码农界俳句通常很搞笑。两个月前,有认真的读者告诉我说俳句得是五七五形式(我以前也不知道),你得返工改改。

      我当年跟 Di 读博士的时候,大部分时间也在敲代码,但敲着敲着就敲歪楼了。刚开始写 knitr 的那阵子,没敢跟她说太多,每次都是去见她之前的一个小时或半个小时赶紧把她本来叫我做的事情做做(cranvas),然后在她办公室一脸窘迫地跟她你看看我我看看你,无话可说。时间一周一周过去,每次都没什么动静。好在她最终也忍了,没有掐死我,我挂着羊头终于准备好了卖狗肉。前段时间我们统计之都内部在讨论严师的爱与虐的话题,我感觉多数人都觉得老师严厉一点督促学生是好事,而我觉得幸好她当时没逼我,否则我们还得在 Sweave 的暗黑世界中苟延残喘。

      我那篇关于统计软件的建议文章我现在都不敢再看(多数我早年的文章我都不敢看),那时候毕竟是图样图森破,什么话都敢说。尽管如此,我还是建议大家,在年少时与其保持谦虚低调沉默,还不如出来多吼两声,说错了也没事,人迟早会犯错,晚错不如早错。很荣幸你听了我的忽悠,踩了 R 坑,不然你博士应该早就毕业了。

      继续发问:

      1. 你的拖延症严重吗?我就不用问有没有了,我还没听说过不拖延的人,这是个时代病。你有没有觉得拖延症在研究生群体里格外严重?你有治疗过吗?

      2. 你是什么时候以及怎样扔掉 Windows 系统的?可否给我们分享一下你的黑客经验?玩代码的有趣之处在哪里?

      earowang 我看上并等了一年又一年的论坛系统,得到这样的评价岂能不得意。这是你们澳洲人写的 PHP 系统,那位核心开发者还在上学,所以迟迟不能推出正式发行版,我们现在是提着人头在用一个测试版。这个论坛真的是蛮厉害的,开发者真的懂得什么是论坛的核心,什么是装饰品。比如最流行的 Discourse 系统我就很不喜欢,觉得它好臃肿。

        yihui 我很认真得数了数,的确是五七五格式啊。英文的haiku不是指五七五个元音么?

        私以为Di是严师,因为她标准很高。虽然不会一直督促,但时不时旁敲侧击。因材施教,如果学生内在动机很强,她就采取放养策略。毕竟修行靠个人。每个学生性格也不一,有些人话不多,但很有想法,她就需要花些时间来了解。

        1. 不喜欢被时间追着跑的感觉,只在写论文的时候会轻度拖延。然后,然后就没词了。(对此问题表示无能为力?‍♀️
        2. ⬇

        我第一次接触的系统是DOS(暴露年龄),小时候打超级玛丽都是敲命令行进去,后来没用多久就升级成了98,离CLI日渐遥远。弃掉Windows,转投Ubuntu的阵营契机是因为开始接触R,接着知道了Command Line 和Vim,印象中Windows下的GVim很难用,索性买了个低配的笔记本,折腾起了Ubuntu。轻量高效,是我对Ubuntu的首要印象。轻量,因为逃离各种弹窗和花里胡哨的界面;高效,因为在全屏的vim里码字,只关注文本。当下各种写作软件都在强调极简和无干扰模式,其实那些上古的编辑器一直如此。

        素来崇尚黑客精神,慕名读了Hackers and PaintersJust for fun。黑客在我的字典里是玩,酷,创造。程序媛的乐趣在于一点点地搭建积木,成品出来之时,非常有成就感。如果语言和文字存在忽悠的可能性(比如过度包装),那源代码是朴实的可爱,简洁有力的代码深藏功与名。

          earowang 在下输了,而且一连输了两回。我以为俳句是数单词数目的,然后想想发现你是对的,应该数音节。受教了!请不要笑得太大声。

          居然真的没有拖延症。我又输了。我也没词了。摊手尬聊。

          居然还看过 Learn Python the Hard Way,是个猛人。我曾经一度想看 Learn C the Hard Way,然后发现这五个词对我来说只剩下了 Hard,每次只能忍痛看到打印 "hello world" 然后就没有然后了,至今都对指针一知半解。我生平写的唯一一点 C 代码也被别人无情嘲笑了一番,然后扔垃圾桶了。

          原来你就是那种传说中的“我还在玩泥巴的时候你已经在敲代码了”的人。我接触 Ubuntu 大约是 05 年的时候,从我们人大 BBS 上看见别人说的,因为没玩过 Linux,所以很好奇。那时候 Ubuntu 刚出来不久,他们还在满世界免费邮寄安装光盘,我当时填了一个申请表,然后过了一段时间我就收到了我生平第一个从国外(荷兰)寄来的包裹,里面是十张 Ubuntu 4.10(Warty Warthog)的盘。我在一台破旧得不行的老台式机上装了(跟你用低配的笔记本一样),那台式机的显示器就是像老式电视机的球面显示屏,鼠标接口是PS/2接口,当时为了捣鼓怎么能识别接口我还费了好大劲。即便如此,当时还是觉得跟 Windows 比起来,Ubuntu 眉清目秀的。其实在那之后我仍然是以用 Windows 为主,大概到 2011 年左右才正式转向 Ubuntu,后来他们脑残摒弃了 GNOME 投奔 Unity,让我非常火大,至今不能释怀。

          你就是从那时候遁入了 Vim 空门然后一直没出来过?其实你们的极简和无干扰模式本质上也就是把图形界面从屏幕上搬到了脑子里,对吧。如果多数时间只在一个文件中工作,或者记性超级好,那我觉得把图形界面省掉也无所谓;像我这种记性普通又懒得记、而且通常在多个文件中跳来跳去的人,实在不想敲一百遍 ls 来提醒自己一个目录下有哪些文件,所以有个文件导航栏放旁边就挺好的,转动一下眼珠子就知道了。你上次在 Vim 里的工作模式让我印象非常深刻,尤其是导航,比如从一个单词跳到下一个匹配某种特征的单词,或者从当前行往上下跳多少行,这种事情我只能用最笨的点鼠标或玩命摁住方向键的办法去做。在 vi 界有句名言:“用 vi 的人都不知道怎么退出”。这是双关语。你当然会敲 :q,那你感觉是不是用了 Vim 之后就很难适应别的编辑器了?

          你看的两本书 Hackers and Painters 和 Just for fun 是啃的英文版吗?好厉害。能否稍微展开谈谈读后感?

          深切同意你的“代码表意比人类语言文字精准”的观点,另一种精准的语言是数学公式。这大概也是为什么写代码容易而写文档难的原因。有时候我写文档真的是写得想跳楼,恨不得丢下一句“众卿去看朕的源代码”算了,可能看代码比看文字描述理解起来反而更快。

          那你从小玩计算机,后来是如何入了统计的坑的?

          1 年 后

          earowang 上周刚开始看《黑客与画家》(我英语阅读比较矬,所以看的是阮一峰翻译的中文版),现在看完前三篇,只能用四个字形容我目前的感受:相见恨晚!

          ? 插一句 谢大可以考虑一下让有基础但是没参与开发工作的人写文档啊,这样写文档的人大概就明白思路差异在哪里了。我们也能明白写完代码身心俱疲的感觉,但是小白没有文档真的很难生存啊,最近真是感觉python众包的文档太友好了

            donk3yzz 可以啊,我最需要人帮忙改进或添加的就是文档和测试,简直太多包都需要完善这两方面了。比如把 knitr 文档中的老旧 Sweave 例子都换成 R Markdown,或者给 blogdown / xfun 等包添加测试代码。这样的任务我可以坐这儿指派一整天。