Files
2026-04-04 17:10:03 -07:00

13 KiB
Raw Permalink Blame History

type, tags
type tags
note
写作

暑假到入学

  • 本科毕业准备入学
  • 本科学术背景
  • 兴趣爱好
  • 为什么要读博士
    • 读博的目标,期许?

第一阶段 - 上课,实现简单项目,听讲座,积累

  • 新同学,美本同学,从国内名校来的,博士研究生,感觉周围的人都很聪明
  • 新课程,比本科更加有趣,也更有挑战性
    • 学习任务也重,还经常熬夜
      • 上机器学习课,连续好几天从早写代码写到晚上,连续十几个小时
      • 任务太多,强迫自己只睡五个小时,不过只能坚持一个星期
  • 新博士学习内容
    • 找自己的兴趣的领域
    • 找导师
    • 导师下达第一个项目,导师叫我上他的课
      • 自动改分项目
        • 还去顶级大会作了海报演讲
          • 刚开始还没有主动去申请专门给新博士生的海报演讲的资金导师很不高兴还好系里面新博士生都有2000块
        • 特别紧张
        • 没有跟chris还有导师沟通好谁去演讲导致惹恼了chris最后说清楚了就没事了
    • 助教
  • 新生活
    • 一个人住,自由
    • 朋友也不多,专注学习
  • peer eval项目跟joe合作第二年同时在上机器学习课
    • 在google web app上面搭建了给几千人用的网页用来收集数据
      • 基本上没有出什么大问题
      • 有一个bug不过因为logging足够一个小时内就把问题解决了
    • 数据收集的不错
      • chris也指导我如何分析数据
      • 我们发现如果有同行评分的话,打分的质量也会提高
      • 投了KDD没中因为方法太简单
      • 接着投www中了2015年5月份演讲
        • 这是我第一次演讲,导师让我先给各个老师演讲一遍
          • 准备的时候自我感觉良好,因为大学的时候上过演讲课
          • present给老师的时候一团糟因为都10多分钟了都不知道我在做的是啥说的太抽象
          • 重新回去准备导师给了大概的演讲模版回去根据模版重新调整内容给chris练习了一遍基本上就没问题了
        • 后来去了意大利演讲
  • 代码补充项目,第三年
    • 导师帮忙想出来的一个算法,效果还不错
    • 自我感觉良好,问了一下导师博士的进度,导师回复说不错。当时在惠水

第二阶段 - 研究项目困难,停滞,不感兴趣

  • 继续做代码补充项目
    • 自己想了一下,目的就是要输出一个正确的能运行的程序
    • 然后自己还想了一些能让算法更快的小技巧
    • 可是之后很快就遇到了瓶颈,不知道下一步如何走
    • 开始考虑要不要从python换到C因为这样会有更多的类型去让算法更快
  • 导师开始提出我的不足之处
    • 不主动去听别人的演讲
      • 自己反思,主要是对别人演讲的内容不感兴趣
    • 不主动去各种关于研究的活动,社交
      • 不喜欢社交,不喜欢跟别人聊我的研究,主要是对自己研究的东西热情不高
    • 开始给自己接下来的博士生经历蒙上一层阴影
  • 导师突然拿到了darpa的筹款数额很多然后还有很多其他好学校一起合作
    • 我突然读到了关于游戏研究的论文,很兴奋,给导师发了邮件说想换方向
      • 导师没有马上反对叫我开始读关于逻辑AI的书还有论文
      • 导师开始把darpa的项目交给一个刚进组的同学XR做
        • XR是从研究生转的博士开始问了我好多导师还有博士的问题
      • 导师其实没有问我接下来到底想做什么东西,感觉就让我开始积累知识
      • 我也开始读相关论文,找找有什么问题可以做
      • 同时也开始上逻辑课,很难
      • 花了大概两三个月时间去思考项目
        • 本来还想做围棋AI被导师拒绝
        • 没想到过了大半年alphago就出来了
      • 后来实在想不到项目导师也问我能不能换回原来的项目XR进展也不是特别好他打算换导师于是我又重新接手代码补充项目
    • 导师提供的指导有点少了darpa那边也需要一些项目来证明成果
    • 拿到grammatech的实习机会其实就是去把代码补充项目重新做一遍目标程序语言从python换成c。这是第三年结束暑假2015年
      • 跟小橘子开三天车去cornell然后开去纽约
      • 花了一个多月的时间在grammatech做一个特别小的项目同时做代码补充项目给darpa交差
      • 实习也很累,白天上班,晚上回到家还要接着做代码补充项目,但是还是给自己留一个多小时的时间休息
      • 最终实习结束,跟小橘子开车回德州
    • 回去接着做darpa的作业做了几个月顺利交差
  • 可是代码补充项目依然没有大的进展
    • 算法没有什么改进
    • 目标就是选一些经典的算法代码来进行补充,然后算时间
    • 跟导师一起写了一篇论文
      • 投了顶会popl好像是可是没有中原因是算法太简单文章没有新颖的地方
      • 跟导师聊到底怎么改进
        • 我一点想法都没有,对于我来说这个项目根本就做不下去了
        • 导师也没有什么特别好的想法,他就一直问问题,估计想看看两个人能不能想出来什么好点子
        • 最后决定做做human study看看这个工具是不是到底能够增加编程效率
  • 第四年下半年开始准备博士资格考试2015年12月中拿到reading list
    • 导师问了其他老师然后给了一堆论文还有书籍让我学习2个月左右
    • 我也跟同学打听,同学就说你就拼命学,有的同学就说其实到时候不会很难
    • 我学的很慢,知识很难,而且系里面就我一个人在准备这个领域,没有同学问,没有任何反馈
      • 第一次考试,完全不知道老师们想问啥,我也只能很抽象的在那比划,希望能够大致上描述出来问题的答案。
        • 看着老师的表情,很明显能看出来这个不是他们想要的答案,每一题都是这样。
        • 毫无疑问,第一次考试完全考砸,导师当时也没有说什么,说之后找个时间聊聊
      • 跟导师一起吃了个饭,说我看论文根本就注意里面的细节逻辑,重点都找不到,之后每个星期都要跟我检查我学习的进度
        • 每个星期都会跟导师讨论,有反馈了就知道自己的进度
        • 可是内容还是有点多,时间有限,总是有学习不到的地方
          • 问了chris应该学啥他说了几个经典的问题可是我自己根本没时间去学后来考试他问了同样的问题我回答不上来
      • 第二次考试多加了一些内容,多加了一个大佬
        • 问了一些问题之前因为跟导师沟通过,回答上来了
        • 可是还有70%的问题答不上来,或者根本不知道他们问的是什么
      • 小橘子在门外等着我考完
      • 最后过了,可是导师把我叫到他办公室,说学习内容不要死记,要从论文里面把内容抽象出来,达到更深的理解。
        • 不就是透过现象看本质吗
      • 考完试,终于可以回到代码补完项目了

第三阶段 - 决定入业界,准备毕业

  • 资格考试结束再加上darpa的折腾决定入业界
    • 导师说毕业最低要求是要有三篇一作master之前的都不算。
    • 现在已经是第五年了,第一篇一作还没有发,还在改,第二篇还都没有开始想
    • 看到周围去学术界的同学他们毕业的时候都至少有4-5篇一作而且去的地方还不一定是最好的学校
    • 自己并不喜欢做研究
      • 不聪明
      • 不喜欢社交
      • 不喜欢旅行
      • 对自己研究的东西不热情
      • 回想之前的经历,最开心的时候还是写代码
    • 决定入业界,开始找实习
  • 接着修改代码补全项目,第五年
    • 开始加入human study到论文里面
    • 特别讨厌做human study因为要招人给补偿而且不一定还会有人愿意
    • 只能搭建一个特别简单的界面,一个一个办公室敲门,找同学去做
      • 最后大概找到10几个结果的确是有工具更快
      • 也是当然,因为我已经规定好了输入输出的格式,在这个框架之下,我的工具一定会让效率提高
      • 可是这个框架并不一定反应真实编程的环境,当然,这个我没有写到论文里面
    • human study在第五年下半年做完
      • 投到了ICSE软件工程顶会
  • 第五年下半年开始准备第二个项目, API refactoring
    • 一开始完全不知道如何找下一个项目
    • 导师指导说,第一个项目能改进的地方在哪儿
    • 我想了想第一个项目的缺点,找了一些可以改进的地方
      • 代码补全如果遇到了API不一样的话那就不能用
      • 如果能够给代码从一个API refactor到第二个API的话这个问题就会解决
      • 于是可以做api refactoring
      • 可以从一堆代码库里面学习不同api的映射
      • 然后通过映射可以做api转换
      • 于是开始分析代码库
  • 第五年也同时开始找实习
    • 投了各种大厂googlefacebookmozillaibmjetbrain
      • 同时一直在刷题
      • google电面问了binary search没有回答好几天之后被通知没有过
      • mozilla面的是研究员的职位过了电面第二面的时候问了一些博士经历
        • “你在博士的时候,最有挑战性的经历是什么”
        • “我在搭建代码补完项目的系统的时候,系统需要马上跑程序来判断生成的程序是不是正确的。然后我网上找了好多资料,试了很多的库,最后我还是写出来了一个很快的系统。
        • 后来就被通知没有过,后来回想了一下,估计我的答案一点都不想是做研究的,反而像是做程序员
      • jetbrain回了邮件给了一个面试项目目的是考核编程能力还有沟通能力
        • 我花了一个星期去准备,文档也写的很完备
        • 过了第一面,然后第二面是视频面试
          • 编程问题很简单面试的时候面试官还不知道为什么离开了一会让我自己在写面试官也很放松给我的感觉就是他很慢感觉不是很sharp像个老头
      • 同时facebook一直都没有消息小橘子劝我应该找找系里面的同学内推
        • 于是硬着头皮找了一个不熟的同学内推
        • 很快简历就过了,赶紧安排电面
        • 第一面的面试官是个中国人,能听得出来,问的问题也中规中矩,基本上都答得上来
          • 第一题之前刷题也刷到过,为了不暴露,稍微多花了点时间
        • 第二面也是中国人
          • 第一题跟第一面的第一题一摸一样,我心里面高兴了一下,很快就答完,赶紧开始之后的题目,
          • 最后结果也是中规中矩
          • 面完之后半个小时,面试官给我打电话,说第一题是不是之前问过。
            • 我说是的,他说为什么不提,我说我不知道是不是你们故意的,然后他说以后这种事情要说
            • 挂完电话我就分析了一下,如果他们不算第一题,那之后我也打对了之后的题,应该不会影响太多,但是还是稍微有点担心
        • 到最后还是拿到了实习机会
          • 看到包裹一个月五六千的工资还有免费食宿包机票。瞬间很期待去facebook实习
          • 一开始分配的实习组是做机器学习的不是很感兴趣后来跟导师打听正好他有个认识的同事做编程语言的也在facebook可以去找他
          • 跟导师的同事聊了聊发现挺适合然后他帮忙把我调到了flow组这下更加期待了
        • 最后我也拿到了jetbrain的实习机会可是facebook的包裹实在是太好于是婉拒了jetbrain
  • 开始在facebook实习
    • 刚开始遇到实习导师很紧张,介绍的项目也有趣,也有挑战性
    • 碰到了大学的同学chiam他来接机还帮我开了公寓的门
    • 代码质量不错,跟组员也有一些沟通,但是不多,因为自己的作息习惯跟大家不一样,经常自己吃饭
    • 中期评估,一切都不错,就是需要加强跟组的沟通,要跟大家吃饭,只有委屈自己跟大家多吃饭了
      • 周围的一些实习同学稍微有点压力,我还好,因为我最后不是很想来湾区,拿不到转正机会也没关系
    • 到最后,项目实验不是很成功,不过导师还是很给力的让我写了一个工具出来,给组里的人演讲了一下
    • 拿到了转正机会,可是不是很开心
      • 因为转正的地点是在湾区austin没有程序员的职位
      • 一开始不想去还投了austin本地的公司
        • 最后小橘子说服了我接了offer入职时间是19年初
        • 哭了一场,因为毕业了就要跟小橘子相隔更远了
  • 实习完,第六年
    • 代码补全项目终于中了ICSE的会议18年暑假演讲
    • 接着做第二个项目,抓紧时间写第二篇论文
    • 9-10月份要做博士毕业论文的proposal
      • 导师说基本上就是把毕业论文演讲一遍
      • 我就把slides都整理好加上第二篇api refactoring一起演讲了
      • 演讲完chris说那你的timeline呢
      • 我当时就愣了什么timeline
      • chris说propose的时候需要给timeline说下一个项目什么时候结束什么时候做毕业答辩
      • 因为我要准备毕业了所以给了一个不是很现实的timeline大概是18年初把第二个项目做完然后准备答辩

毕业,工作