两种提问

昨天拉黑了一个不断向我提问的本科生。事情开始于上周五,这位好学的同学向我索取论文相关的代码,我欣然提供代码并表示有新的idea欢迎讨论。收到代码后这位同学立刻表示自己不会Python,并问我有没有Matlab版本,在我还没有来得及回复的时候他又要求我给他一些提示。被反复提了很多关于细节的问题后我劝他先看懂论文,代码只是辅助理解算法,理解了自己实现也很容易。沉寂了一天后这位同学问了我一个非常细节、可以简单百度到的问题。为了节省双方的时间我选择拉黑了这位同学。

所以,关于向作者提问,我的结论已经比较清晰了。论文都是经过反复修改后发表的,对于新方法的描述是最清晰的第一手资料,读者应该可以自己实现算法。当然向作者提问也是挺常见的事,但是要保证自己已经尝试寻找答案未果,也可以说说自己对问题的猜测。一上来拍10个代码层面的算法无关问题,一般人都会选择拉黑,脾气差一些或者会发一个北大青鸟的链接回去;如果一上来拍10个气势汹汹的算法细节问题,那就是审稿意见了……

处于审稿中的文章当然没有发表后的完善,所以提上10来个问题也正常。审稿中多解决问题正式为了以后不受邮件问题轰炸。评审提问和上面的提问又不一样,评审一般是揣着明白装糊涂,让作者自己归谬文章的错误。比较高级的可以质问文章的理论贡献是否充足;中规中矩的可以要求作者验证文章中的前提假设;最不济的就是要求作者补充更多的实验验证方法性能。

这时刊发前后的两种提问。

可卡因的趣闻

在图书馆翻倒一本《可卡因传奇》,内容多是南美毒枭和政变的纪实,对南美历史政治不熟悉的读者看起来比较费劲也不太有趣。不过有些趣闻还是挺有意思的:

可卡因的自然形态是古柯叶子,当地人有特殊的咀嚼技巧。咀嚼古柯叶子可以提醒脑消除疲劳,所以千百年来广受好评,并没有出什么茬子,大概纯度实在不高。从作者描述来看,咀嚼古柯叶对脑力和体力都很有帮助,不禁让人想到电影《永无止境》是不是关于可卡因的隐喻。

古柯叶在南美普及程度甚高,古柯还作为一个时间单位。一“古柯达”是嚼一卷古柯叶的时间,大概是45分钟。

弗洛伊德做过关于可卡因的研究,并一度认为可卡因可以治疗海洛因上瘾。并在自己的朋友身上尝试过,短期的似乎有效之后朋友染上了两种毒瘾……

最好的操作系统是什么

几乎每台我用过的电脑都被我装过Linux。家里的台式机被我装过各种发行版;大一买的第一台笔记本刚到手就把硬盘格式化了;半年前手贱把MacBookPro上的OSX格了,现在运行着SUSE。

但是这个过程其实有些像强迫症,因为它并没有什么愉快可言。很多计算机初学者被笼罩在“学计算机就要用Linux”、“爱折腾才能学好东西”这样的言论里,所以半强迫地逼着自己在各种机器上装了Linux。

不可否认Linux在某些方面的确有一些便利,比如各种命令行工具和大多数发行版方便的包管理工具。但是缺点也是很明显的,就是不适合办公、上网、玩游戏等等;真正需要使用命令行组合各种复杂用途的人其实少之又少。

硬把Linux和计算机专业扯上关系也没什么道理。因为计算机系的所学范围很广,大多数时候和Linux不发生半毛钱也可以学得很好。

另外,Android就是手机届的Linux吧,各种打折“发烧”旗帜发布的安卓手机,买回来的后果往往就是在口袋里发烫、掉电、真要用的时候自动关系打不了电话。要舒舒服服用一台Android手机可能自己要花上不少时间研究。而研究得来的知识的有效期大概也就是一两年左右,因为之后手机又更新换代。

所以,除非你是操作系统厂商,那最好的操作系统应该是最好用最适合工作内容的系统。比如经常写办公文档显然用Windows最好了;想轻松用手机还是多花点钱买个iPhone。一个正经操作系统的目标应该就是好用,而不是煅炼人的无用技能。

倒着画人像

本科的时候买过一本《五天学会绘画》,虽然名字听起来很山寨,但是书籍评价很高,是一本有“干货”的书。

不过我前两天刚刚尝试翻开它。这本书是作者的培训班教材,的确就是五天的训练,可以让完全没有绘画基础的人脱胎换骨,画出像样的画。

这本书的第一课就是倒着画一副肖像画,因为这时候大脑无法意识到那是一副人像,因此只好仔细临摹。我花了半个小时,画得不怎么样,但似乎是比正着画好一些。

尝试以一个民科的水平解释一下,大脑有负责人脸识别的专门区域,其他一些平日常见的目标可能也有一定的区域——尽管没有人脸对应的区域那么发达。这些大脑细胞如此发达以至于人还没看清目标时已经识别了目标。而倒着画的好处是这些区域不再能正常工作,大脑只要从视觉通路一步步处理,这样可以在画面每个细节长时间观察,并告诉手去临摹图像。也就是说,画画——至少画画入门的难点并不是绘画的技巧,而是观察的技巧。抛弃成见——以往识别事物的方式——可以更理性地对待目标。

了解信息和学习技能也是。在深入了解一件新事物前,别人只言片语的意见会很大的妨害自己看事物的方式。比如读研前听说读研就是给老师打工、或者读研就是多点时间出去实习等等,其实都不对。最好的方式是自己去看,读研干什么其实取决与自己想干什么和导师研究什么,自己看清楚了之后都是可以选择的。写论文之前听说要会这个算法那个算法、也有说要把PRML先看完的,其实也根本不用,一篇论文才一个实验,所以即使用到再学也可以发出文章。倒着画人像,其实就是用理性去观察。

计算机适合识别什么

模式识别现在似乎是个万灵药,找什么工作总可以和模式识别扯上点关系。而事实上只要牵涉到识别、估计的任务都的确可以用机器学习试一试。比如识别物体的ImageNet比赛、估计股价的量化模型等等。

这样技术似乎突破了十年前人们对计算机的印象,现在的计算机不但算数比人快,识别任务居然也可以做了。然而并不是,比如前阵子很火的百度拍照翻译,声称可以拍照识别图像中的目标,但基本上只是一个错的离谱的娱乐功能。另一方面,在某些情况下计算机的确能识别一些东西,例如从表情中识别人的情绪等等。那计算机究竟适合识别什么呢?目前看来是这样的:的确有迹可循、但是需要大量数据和经验积累的模式。

例如从表情和动作识别人的情绪、是否说谎等等。多年经验的老刑侦也许一年就能看穿嫌疑犯是否说谎,但是普通人一般是做不到的。而经验本身是可以从数据中获得的,只要给充分的数据,模式识别技术很容易完成这样的任务。

再如识别唇语。人脑有专门的人脸识别区域和表情识别区域,这是人的社交需求导致的自然选择,计算机要通过大量数据和简单算法在这些任务上超过人类很难,即使超过了意义也不特别大(大多数人不需要计算机告诉自己什么是笑、或者回到家里告诉自己谁是爸爸谁是妈妈,少数脑部损伤患者可能会需要这样的辅助),但唇语识别能力不是与生俱来的,没有脑部区域负责这样的任务,因此计算机只要做到百分之六七十的准确率就可以轻松超过人类。

行业研究员通过研究新闻、公司公告分析证券的未来走势,对投资者给出建议。而机器在处理本文的内涵信息方面也许稍弱,但是处理速度和内容覆盖面远远超过人类。因此也很有可能取代一部分人的工作。

各行各业应该都有这样极端以来经验的工作。正如依赖体力的工作被机器取代那样,未来依赖简单经验的工作也很容易被机器所取代。

《理科生的人生设计指南》

前阵子压抑繁忙没有看书,昨天终于有空把这本搁置很久的书翻完。作者是日本庆义塾大学的教授,他的经历作为有志于走学术道路的本科生博士生的职业规划很有益。

即使不读博士不做教授,还是有不少可以借鉴的地方:

提前规划

走学术研究的道路,一个重要的目标是取得教授职称,这需要提前规划,长期执行;
走学术研究的道路,薪资基本是透明的,养5个孩子似乎是不够的。如果提前规划,有计划地开源节流,也可以达到财务自由的状态。
就最近找工作的经历来看,提前一年了解行情并优化经历和技能的同学取得的结果是最佳的。如果想从事别的行业的工作,提前找目标行业实习、哪怕是打杂,最后找到的工作也会比随波逐流混在自己的对口专业更理想。

愿望要说出来

作者说,如果要当教授,一定要大声说出来,让自己和身边的人都听到。对于一个博士毕业的青年教师来说,评上教授是很困难的。但是如果说出来,身边人会在有机会的情况下给予帮助或者建议;更重要的是,说出来也给自己带来心理暗示,把目标提上日程,时时努力去逼近它。
这和前阵子看的《秘密》一书有些像,那本书说愿望需要用力地去想,在心中使之具象化,全宇宙的神秘力量就帮助你实现它。当然这本书风评较差(太神棍,不讲道理……),但是勇敢地去接近愿望总比害怕失败要好。

幸运的人会更幸运

成功的重要因素之一是幸运,确切地说是觉得自己幸运。觉得自己幸运的人会对周围的人抱有感恩之心,能帮助别人时总是愿意帮助别人;同时自觉幸运的人也会更乐观。还是就最近找工作的体验来说,至少面试中保持乐观是面试成功的重要一环……

高速运动的咖啡豆

从进大学开始喝咖啡变成习惯,从速溶灌装的升级到自己买咖啡豆研磨后自制咖啡。

经常碰到有人问“卡布奇诺算不算好咖啡”这样的问题,这是一个很难用是或者不是回答的问题,因为这个问法不太对。

先介绍下咖啡豆的分类。大致分为两种,罗布斯塔豆和阿拉比卡豆。前者廉价后者贵,后者又可以细分为好多好多品目。

首先我把咖啡饮品分成三类,一种是速溶咖啡或者灌装咖啡,有奶有糖有咖啡味就对了。从咖啡豆种类上说这通常是罗布斯塔豆,比较廉价(好豆子做成灌装的味道估计也差不多,浪费了)。

第二种是拿铁、卡布奇诺、espresso等等,这些都是以espresso为基础只做的意式咖啡(espresso除外,其他可以叫花式咖啡),而espresso是意式咖啡机通过高温高压只做的浓缩咖啡。制作意式咖啡的咖啡豆通常是多种咖啡豆混合的,里面有罗布斯塔豆也有阿拉比卡豆,称为拼配。各家咖啡店可能都有自己的配方,理论上有独特的风味。现在也有单一种类咖啡豆作的espresso,成为SOE(Single Origin Espresso)。

第三种是单品咖啡,也就是一种豆子只做的咖啡,比如耶加、曼特宁等等,传奇的蓝山也是其中之一,这些都是阿拉比卡豆。当然罗布斯塔豆做的也叫单品咖啡,味道有点类似大麦茶;此外传奇的猫屎咖啡也是印尼的麝香猫吃了罗布斯塔豆拉出来的……喝单品咖啡通常是去品味这种豆子自身的风味,当然烘焙过程也参与了风味的塑造。制作方式很多,最简单的是法压壶,跟一种常见的泡茶壶有些类似,用金属网滤掉咖啡渣就可以喝了,不过法压终究会有一些残留的咖啡渣;手冲咖啡,这就是各种“精品咖啡”的主打了;虹吸壶,一套很神棍的玻璃设备,原理就是虹吸。

上面的分类并不非常完整,还有些咖啡制作方式比较独特。比如越南咖啡,本身也有一套设备,但通常是指用越南壶只做后加入炼乳的咖啡;还有摩卡壶,虽然是比较简单的家用咖啡壶,但也是意式咖啡的雏形,利用到了高压。

最后再回来说说咖啡豆,优质的阿拉比卡豆要求高海拔、高温等环境,所以集中在赤道附近,那一带也可以叫咖啡带。如果要用一个标准评判咖啡豆的好坏,那就是绕着地轴高速运动的就是好豆子。

慢跑

昨天小跑了3公里,今天大腿肌肉有点酸痛,而春节前一阵子我一般可以跑个10公里也不会太累,这就是训练量导致的差别吧。

高中和本科期间我慢跑耐力都挺差的,跑五百米就喘得不行,所以难以想象马拉松是怎么回事。读研后自由时间多了些,偶尔会跑跑步,但还是跑一段就感觉喘不过气,强行跑三公里一度就是极限了。直到有一天我发现了慢跑的秘诀——那就是慢……觉得喘不过气就深呼吸几口气,减慢速度,很快就可以继续下去。

所以对跑步的信心逐渐增强,不过马上遇到了第二个问题,就是关节容易受伤,有时跑到五公里后髋关节就开始疼痛,或者膝盖无法伸直,需要休息一周才能回复正常。去医院被告知这就是关节炎。至今没搞明白怎么避免关节炎,也许与跑步姿势有关,但是自己跑又没人录像,所以难以知道自己跑步姿态有什么问题。所以只能控制跑量,感觉到轻微疼痛就停止跑步,用骑车等其他有氧运动代替一阵子。所以跑步的第二个秘诀就是想法设法避免受伤。

一阵子不跑再恢复运动一般会受限于心肺能力,所以跑个三五公里也就到头了,但是这足以让肌肉酸痛起来。网上搜索一下就知道这是乳酸作怪,也就是运动过量进入无氧运动状态产生了乳酸并堆积。不用管,几天就会好。不过想快些好的话也有办法,就是继续运动。有些反直觉,它的原理是有氧运动能更快的消耗乳酸,所以只要保证不再进入无氧状态,轻微的运动能更快地让人摆脱肌肉酸痛。理论归理论,我并没有类似的体验,一般忍者疼多跑几天也就适应了。

跑步益处还挺多的,强身健体之类的慢性益处就不敢说了,最直观的就是跑完后的畅快感和完成感。

番茄工作法

番茄工作法是一种GTD(Getting Things Done)实施技术。具体做法是设定一个15分钟的计时器,在此期间只做一件手头的事,不分心做别的。就我的个人经验看,番茄工作法结合任务列表在任务千头万绪的时候很管用。

首先,番茄工作法是对任务的拆分。将目标从“完成某事”,暂时更改为“15分钟内集中精力做一件事”。前者是一个有失败概率的大任务,而后者是一个不可能失败的简单任务。所以进行中几乎没有心理压力。

其次,工作是一个良性循环,顺利完成一部分工作会更有信心(或许是暂时)摆脱拖延症,加速工作节奏。

另外,番茄工作法使得工作量具体化。只要数数自己完成了几个番茄,就知道自己集中精力工作了多久。而完成感带来多巴胺,稳定的番茄产出也是好心情的来源。

长远看,更重要的是番茄时间的记录对了解自己的工作效率很有参考价值。比如我看一篇水文大约是15分钟,写一篇博客大概30分钟。而对工作效率的认识是估算和安排工作量的依据。

并不是所有工作都适合番茄工作法。以个人经验看,琐碎、容易分心、承受失败焦虑和恐惧的任务最适合用番茄工作法拆分完成。这些工作涵盖了研究生的大部分工作:读论文、写报告、做PPT等;而码代码、较深入的阅读等就不太适合。

校招求职

从准备实习开始,电话面试和现场面试总加起来大概参加了20多场,职位包括三大类:软件开发、数据挖掘、量化投资。有顺利的地方也有坑,现在算是临近尾声了,写个小结。

准备简历

应届生没有工作经验,简历写的无非是参加过的项目/研究,以及实习经历。我自己做过小项目不少,包括各种比赛和实习,大一点的课程项目也算在内;论文发了一篇,在审的两篇,在写的一篇,不算少。但是简历上的每一条既是你的亮点,也可能坑了你。面试官会就着论文/项目问问你在这里面做了什么、学到什么。如何长篇累牍的项目经验最终证实没什么技术含量,或者对项目相关的技术一问三不知,基本就是坑了自己。所以选择项目往简历上写时需要预备好一场与面试官的交谈,确保能展示自己的强项(其实并不是掩盖弱项,因为没有展示的都可以默认为弱项)。

简历避免过长的篇幅。我之前的简历可能有两三页,根据上述的规则精简了大部分项目,同时把可有可无的三等奖学金、优秀学生去掉,合并到现在的一页。

笔试

大规模校招一般有笔试,笔试只是最基本的筛选方法。对于本专业对应的职位一般不会在笔试里就被筛掉。笔试的准备主要就是知识点,涵盖在面试的准备中。

面试着装

技术职位一般不要求正装,但是穿正装一般不会是减分项(除非面试表现非常糟糕,也许会给人以着装都不“在行”的感觉吧)。另外有时候HR会提醒需要着装整洁,对于什么风格算整洁没把握的话穿正装肯定不会错了。另外穿正装也有自我心理暗示的作用。总之利大于弊。

自我介绍

面试的第一步一定是自我介绍。除了姓名学校学历外,我一般直接开始说研究生期间做的研究工作(估计也不会有技术面试官想知道面试者业余兴趣)。这时候可以看看面试官脸色,因为毕竟大多数面试官从事的工作与研究没关系。如果面试官露出疑惑的表情,可以讲讲研究工作的应用层面,从普通人的角度阐述自己做了什么,大概是什么难度。如果面试官仍然提不起兴趣,干脆换个话题讲讲别的项目,或者自己为什么对这份工作有兴趣。

面试问答

我经历的面试主要是技术面试,问题来自两个方向:1)基础知识,包括数据结构算法,概率论,模式识别算法等等;2)简历内容,也就是你做过什么就问些什么。

对于基础知识,可以提前准备。读研三年不怎么写代码其实把数据结构都忘光了,但复习还是挺快的。推荐下《程序员面试金典》,对于复习或者学习数据结构都不错。刷leetcode太费时,而且题库本身并不能提供什么知识结构,除非初学数据结构并且有时间,否则不太值得去做。
概率论也是类似。
模式识别一般不太会要求什么都会。能熟悉一两个算法的推导,另外对大部分算法有了解就够了。

对于简历提及的项目,掌握程度也是你会什么面试官问什么,所以有所准备就可以。

上述是一些找工作的经验总结。其实经历过的人都有体会,还没经历过的人多少也能猜测一些。个人认为最重要的还是提前计划,比如我所了解最成功的应该是提前一年就确定目标还是不断准备的同学,并不是研究工作最成功,或者项目做得最好的。