仅代表个人观点,如有异议欢迎留言探讨与指正

关于我被美国山村博导收留这件事 ᕕ( ᐛ )ᕗ

美国PhD申请杂谈与我的本科四年回顾

作为本科生的学习和生活即将迎来尾声,迎面走来的是来自Clemson的Computer Engineering PhD Program

写在前面:

我的申请范围主要集中在CS Ranking 30~100的学校,且几乎不考虑竞争激烈的名校,相比起各位优秀的大哥我甘拜下风并主动退出竞争,人外有人,I just wanna be happy。

相比起城里,我更倾向于像我交换过的UC Santa Barbara一样的比较村的学校,这是因为我的娱乐需求很低且村里更亲近自然,在陕西的尘和霾里当了3年空气净化器(相比起我的家乡来说真的受不了一点),我希望从优美的自然环境中找补。

关于PhD申请

开门见山,对于看见标题点进来的读者,PhD申请应该是最受关注的话题。

我的三维:IELTS 7,無GRE,GPA 3.4,一篇期刊在投,很多CTF经历

从可量化的指标上来看(如GPA,GRE,有多少篇paper),不难看出我是一名条件很弱的PhD申请者。

PhD申请的评价体系

国人常陷入的惯性思维是:只有成绩好,应试能力强的学生才可以升学,并且进入更好的大学。这样的思维方式在国内的大环境下的形成是必然的,我们所有普通人家的孩子自小学到本科,从来都是以分数论英雄:分数高的人进入更好的学校,分数低的人次之,分数很低的人没有学上。但这种评价体系其实自国内本科阶段后便不再适用,也不应继续被使用。

PhD是一个学位的同时,也是一份工作和职业,而其本职工作便是深入了解某一个大领域(如:计算机中的AI、计算机架构、图形学,物理中的固体力学、流体力学、凝聚态)中的一个细分方向(对于AI,如:Trustworthy AI,NLP,CV,ML System),并尝试在这个细分方向中的一个更细的某一个点上尝试进行突破。我认为下图对于“人类在不同学位时对应的知识范围”总结得非常到位(图片来源:Twitter):

既然已知PhD的工作与应试能力关系不大,成绩与分数唯一能反映的便是学生对于其知识掌握的牢固程度,而这其实并不是PhD这一位置最需要的能力。一名PhD导师并不希望招来的学生仅仅是一群无情的刷题机器,这也是校方对于PhD学生的GPA要求都非常低(大多是高于3.0即可)的原因;相反,学校和导师更希望学生拥有对科研本身以及导师的研究方向有十足的热情与自驱力,并且有较强的科研能力,这也是我们在浏览导师们的招生条件时常看见要求学生“self-motivated”的原因。

已知:导师希望招收科研能力强并且自驱力强的学生,问:如何展示你的科研能力以及自驱力?

  • 科研能力
    • 这一方面其实非常简单,参与科研即可。作为本科生,你可以尝试联系本校中你感兴趣的课题组,作为”本科科研实习生“加入课题组,做一些力所能及的工作,运气好人缘好的话还能挂几篇论文的名,可以作为申请PhD时的噱头。为什么我说”噱头“?那是因为多数本科生就算成功加入了课题组,通常也难以获得接触核心工作的机会(如写关键实验的代码,提出或修改实验的核心思路与方法),我听说的最多的工作就是洗洗数据之类的打杂工作。适量的打杂对本科生而言其实非常有益,但前提是你自己不能把自己限定在”我只能打杂“的框架内,积极读paper并思考,多找与教授交流的机会,你的目标是”让教授对你刮目相看,并有把你当成研究生培养的意识“。
    • 我在这方面比较幸运,因为我是实验班的学生,校方对我们都算是重视和给面子,所以在大二中间给了我们一次参与导师/企业的双向选择的机会,即根据自己毕业后的发展规划(深造or就业)提前参与相关工作。我有幸与彭老师进行了一次合作,虽然没有进组,但得到了一个相对简单的课题一个人单干。现在看来我很庆幸:
      • 选择了一位年轻且没有特别特别忙的老师合作,这使我得到了更多与老师单独谈话与获得指导的机会;
      • 有一个独立的课题并且全部活儿都由我一个人做(读paper调研,做实验,写paper等),这使我拥有了体验科研中的每一个部分并且走一遍完整科研流程的机会,也避免了进组天天被老师手下的博士生带然后还要求写读paper笔记的压迫感(真人真事,在我与其他实验班同学的闲聊中了解到)
      • 我大二下选择的导师居然在我大三下学期带我们实验班的一门必修课?这下想逃避也不行咯
  • 自驱力
    • 这一部分就非常抽象了,我个人认为,为了展示你的“自驱力”,你应该尝试向你的申请对象传达出”我对这个领域真的很感兴趣“这件事,那么如何提供相应的事实依据呢?你总不能期待教授在看到你邮件中的”我有很强的自驱力“或”我对XX领域很感兴趣“就相信你吧?自驱力和兴趣保证了你在PhD期间不会因为学术上面临巨大困难和挫折就放弃和消极应对,是保证你顺利攻克课题的重要内驱力,因此,越是关键的命题就越需要你提供强而有力的证据来证明其真实性。但证明”我对XX感兴趣“对于广大国内普通学生来说其实还是挺难的,退一步说,你真的有一个”兴趣“吗?在应试教育中高压烹饪初、高中6年后,很难想象大多数学生还能对”深入学习XX领域“保持兴趣。
    • 每个人对于“兴趣”的理解应该都有所差异,在这里就聊聊我理解的“兴趣”。打游戏、刷视频等娱乐对于我这一代的年轻人来说应该都是“兴趣”之一了,虽然这不是什么好的兴趣(相比起体育运动或者艺术类活动之类的),但这可以非常好地引出“兴趣”的特征,我个人将其狭义地总结为:当你做这件事时你沉浸其中,当你做这件事时或这件事后你感受到正向积极的情感(满足感、快乐、成就感),这件事不是生理必须的(如吃东西,性,睡觉),这件事最好需要一定程度的付出与代价(这也是娱乐难以作为一种“兴趣”被社会认可的原因,因为娱乐中的成本与代价是人为设计的或是没有成本的)。对我而言,码代码大概就是我非常朴素的兴趣之一了,对我来说可以被称为新型“电子海洛因”了,属于是沉浸进去之后就根本停不下来,特别是后来还染上了CTF,因为比赛是限时的,经常既被迫又主动地通宵码代码解题(健康杀手,还是少这么做)。所以对我来说,我的科研课题和paper、令我印象深刻的AI安全相关的CTF题目都是我重要的给我申请的老师们展示的我拥有“强自驱力”的证据。

PhD攻读时间计算

在美国,直博(direct entry)相比于其他地区而言是更加常见的。例如我的项目(CE PhD),项目描述中的预期毕业年限是4~5年(通常对于很能发paper的直博学生和有硕士科研的学生而言是4年,对于普通直博学生是5年或以上),而美国的硕士(master)毕业年限通常为2年。因此,如果已经决定了要读PhD,那么最好就尽早准备并直接直博,否则读博前先读硕士将让你多花两年学费并且还通常比起直博的学生而言晚一年毕业;尽管如此,先读一个master也并非没有好处,对于本科没有科研经历的学生,先读一个master并尝试做做RA(research assistant),既能获得审视自己是否真正热爱科研的机会,还能有效提高自己的竞争力,在master结束后,通常可以在PhD阶段申请到更好的院校;同时,master由于读书时间短,所以相较于PhD而言也更加灵活,读完两年master后可能觉得经济好、行情好就直接进入市场求职。但值得注意的是:美国,包括欧洲的master大多数都是“授课型”硕士,也就是说不像国内必须参与科研并有几篇paper才能毕业,所以如果你在海外master期间不主动寻找RA机会,你的竞争力将不比你本科毕业时高多少。

我的PhD申请过程

一句话总结:学会自我营销并保持真诚

其实我的PhD申请开始时间算是很晚的,由于之前提到的我与彭老师合作的课题在11月中旬才完全结束(写paper太痛苦了),所以我为了在我套磁时有完整的科研经历和“在投(under review)”的噱头(为了能快速证明我的科研能力和自驱力),直到我完成了论文投稿我才开始套磁与申请。如果你有条件,那你最好是可以在10月左右就开始套磁(因为美国很多学校的申请DDL在12月中旬),当然,对于DDL相对靠后的学校(比如也有一些学校会在1月甚至2月DDL),你可以适当延后套磁。通常招人的教授会在他计划的招人DDL(这个DDL通常是教授参考学校的DDL和自己这边的实际情况而定的,所以很看缘分)截止前先等待一段时间,然后分批次把所有他感兴趣的申请者都聊一遍(因此如果你没有被教授单独邀请非正式的面试,那可以说大多数情况下你被offer砸中的概率会很渺茫),最后对申请者进行排序并开始逐一发offer(关于强committee,排名靠前的名校通常采取这种录取方式,即你需要先通过committee的严格审核后才能被教授选择,这种学校的套磁的主要作用就不是admission了,而是确保你通过了committee后能进到意向中的组)。

由于我是网络安全背景并且打CTF的学生,尽管我有一篇关于CV应用的paper且我的CTF背景其实做的都是AI安全的题,我在AI的其他方向中(如NLP、CV等)还是会显得非常非常弱,所以我一开始尝试套磁的一些NLP、CV,以及multi-modal的组的反馈都很弱。因此,毫不避讳地说,我一开始的套磁时间都花在了一些我很难得到青睐的方向上(但这也并非全是坏处,当时并没有期待在这些方向上首战告捷,主要的想法是迈出实验性的第一步,为后续的套磁积累经验)。虽然在此过程中也得到了一些普普通通的反馈和面试,但我也立刻明白了:就算我进入了这些教授的waiting list,我的排位也一定是相对靠后的。因此我开始寻找我自己的核心竞争力,毕竟你为什么要用你的弱项去碰别人的强项呢?很显然,1. 我拥有安全方面的背景,2. 我希望参与AI方面的研究,既然是AI+安全,那么答案呼之欲出:trustworthy AI(考虑到我的CTF经验,如果教授组里有adversarial ML相关的课题或者项目,则我的竞争力将更上一层楼)。

于是我开始针对性地寻找做trustworthy AI并且明确说明对AI的security和privacy感兴趣的教授。不得不说由于这个方向并不热门,有的学校我就是把他的CS和ECE的faculty list都翻烂了也找不到一个打着这些tag的教授。但最终我套磁的做AI安全相关的教授也都给我安排了面谈并对我给予了高度肯定,可见对自己竞争力的正确认知(即尽量把重心放在自己最相关的方向的套磁上)以及对教授招人心理和目的的把控(即分析你的能力在进了该教授的组后是否能直接立刻开始干活?这个教授的个人主页中展示的课题和项目中有没有你一看就知道你可以帮上忙的内容?)至关重要。

所以这个迴圈大概是:

  1. 通过信息源获悉招生信息(如一亩三分地上有很多华人教授,或是直接去学校官网faculty list翻找)
  2. 仔细浏览教授的个人主页,重点关注教授的research interest、funding(如果有展示),以及学生水平(如果附上了学生的信息或个人网站)(我记得我在找教授时看到过一个毕业于复旦的教授手下的学生也全是复旦毕业的,对于这种组如果你不是复旦的那最好就别考虑了)
  3. 写出你的第一封套磁信或是基于你的上一份套磁信进行针对性修改,并在发出套磁信之前多读几遍(我曾经有一封套磁信因为改完之后懒得仔细读,导致教授的姓氏忘了改了哈哈哈哈)并尝试改良,每次都改良一点点,你的套磁信就会变得越来越好
  4. 等待教授回复,通常有以下几种结果:石沉大海(两周后仍然不回则可以考虑重发或放弃),象征性回复(只告诉你你真棒,然后鼓励申请),约面谈时间(恭喜你这表示你成功引起了教授的注意和兴趣)
  5. 循环往复,注意这个流程可以多线程并行

套磁信的写作

因人、因项目、因方向而异,我的评价是:真诚且条理清晰就好。不要海投完全没有针对性的邮件,这毫无诚意,哪怕你只是稍微花个十分钟点进教授的主页了解一下,并针对性地修改一下你的套磁信模板,也会显得真诚得多,核心思想就是让教授认为你有用心了解过他的组(不一定要读paper,但你可以浏览一下paper标题了解一下该教授的组大致的方向,我从来没有在面试结束前去详细读教授的任何一篇paper,时间不允许,也没必要);不要写一大堆无法分开阅读的文字,教授的时间有限,他不是来看你展示你的文学功底和听你讲小时候的梦想的,你需要通过如小标题、序号等hint来引导教授进行高效的阅读,让教授在最短的时间内就能获取到他最需要的信息。以下是其中一篇我用于套磁的冷邮件,仅供参考(通常还需要附上各种成绩单以及简历的附件):

关于中介与代写

别指望你请的中介比你更了解你的field和你的research经历。

在强导师的情况下,PS(或者说SOP)我怀疑甚至可能没人会在意,这种情况下文书一定不是你申请是否成功的决定性因素(强committee和申请master中文书则非常关键),你不如多打磨一下简历,毕竟这是要随着你的套磁信一起发出去的。

关于论文代写以及买科研经历:如果你能买,别人也能买。教授很有可能会从你意想不到的角度提出关于你科研经历的问题,是不是切身参与、是不是做了实事、你到底清楚哪些内容,只要教授想,通过30分钟的面谈都能给你翻个底朝天。所以,请保持真诚。

思考与回顾

感觉本科四年回顾的内容放在PhD申请杂谈中怪合理的,毕竟本科毕业和下一步的升学是几乎同时发生的,且本科阶段的经历决定了我的PhD申请,所以我大胆假设可能会有读者也会接着浏览关于我的本科回顾部分的内容吧。

教育杂谈

教育体制

对于大多数普通的国内青少年,在高中毕业之前,几乎没有除了努力之外的选择和做出相应选择需要的能力与眼界。在家长们还在认为高考考取一个好本科就能获取一个很好的发展时,中国社会已经进入硕士都找工难的版本了,于是乎,当代父母不得不违背当初“考上大学了你就轻松了”的“诺言”,并开始叮嘱孩子在本科卷出好的GPA保研或者在考研前尽早做好准备。但同时也有部分家长和大部分年轻人终于看透澈了:无休无止的卷,卷到什么地步是个头?我们都被要求相信延迟满足,延迟有了,而且延迟的时间已经很长了,那满足什么时候来?中国大学生现在面临的是大家都留在学校读硕士的时代,那等到真的大家都有硕士学历之后,又和曾经的大家都有本科学历的状况有什么区别呢?我们就算接受了再高等的教育,大多数人也还是难逃成为打工人的命运,毕竟教育从来就不是通向如财富自由、商业成功的道路,教育给普通人带来的经济利好仅是提高了受教育者的薪酬中位数。在欧美,你不见得需要进入一个好大学才能获得一份好工作,欧美大学的学费高是一方面,但更多的是大多数人对于“高等教育”有着更加清晰的认知,这是为了科研而生的一套教育体系,而不是主要为了就业而服务的。因此我的评价是,应润尽润,在国内深造发展不一定能赶上国外的技术突破,但你在国外读完了书却可以根据毕业时的世界形势决定你未来的发展(回国or留下来),所以尽可能把路走宽,提高全球意识,多给自己留些选择,避免梭哈。

卷还是躺

那我们还要努力、还要内卷吗?对于普通人而言,我的观点是:必须努力,但别内卷。虽然现在有把内卷和努力划等号的趋势,但我认为其两者仍然能从内在动机层面上区分开来:当作兴趣的努力可以认为是正面意义的努力,为了赢过别人的努力可以认为是负面意义的内卷。举个例子,你非常享受绘画的过程,且你绘画的根本目的不是为了画得比某人或某个市场平均值画得更好,这样的努力通常是幸福且快乐的;相反,在我这个年龄段上过大学的人都理解“青轴喊麦我安然入睡,深夜翻书我彻夜难眠”的感受,便不需要我再对“内卷”一词做过多解释了。我自从上了大学就不是一个认真上课的人,我当时这么做有以下几个原因:

  1. 我刚进大学时的打算是就业为导向的,所以与其每天预习、复习,并在期末的时候把你本来就已经基本掌握的东西花很多时间在边际效益递减明显的情况下刷题到滚瓜烂熟,我单纯认为不值得;多学点语言特性、多折腾一下自己博客对我来说性价比更高,更何况我还发自内心地觉得这些事儿非常有趣。不是高分拿不起,而是做自己喜欢的事更有性价比。
  2. 从直觉上反感内卷,卷是一种恶性竞争,且不是以人为本的。举个例子,在一个保研率非常清晰的学院中,当某一门课的期末考试时间提前了,而你这门课的好哥们同学因为某些原因对此浑然不知,那么此时你是为了排除掉一个竞争对手而不主动告知,还是看在好兄弟的情谊上告诉他?你如何回答取决于你的人格和品性,但这个体制和大环境本身的最优解却只能是前者。有的人也许会想,所有竞赛都是这样的筛选机制,那么这些机制也都如此不堪吗?但我认为本质的不同就在于中国的问题是这样的竞争氛围是贯穿年轻人十几二十年的,量变引起质变了。对于良性的竞争,咱就说我接触最多的CTF,从我管中窥豹的观察来看,那真是复古地回到了最朴素的原初互联网精神:开放、平等、协作、分享。
  3. 我不太认可大部分国内本科的课程安排和教学质量,这话在我大四来UC Santa Barbara交换体验了美国本科教育之后更加肯定了。这个问题的根本我认为有两个方面,一是学生层面,很多学生压根就没有他感兴趣的学科,你教得再好他也只是被动地接受而不是积极思考并渴望知识;二是教授层面,这个问题简直就是养老问题的一个克隆,即本科扩招了,但其实无法掏出那么大量的优秀师资来承担本科教学,因为在之前培养出来的教授总量只有那么多,要找补则只能横向往不那么优秀的师资伸手。

因此,再次申明,我提倡努力但不提倡内卷,应该将精力更多地放到自己的兴趣上,而对于GPA这东西,别被退学就行。你可能会对你努力的方向产生怀疑,但可以看看乔布斯在斯坦福的演讲,尤其是对于他提到的“书法课”一事(大学退学前修了一门书法课,多年后贡献到苹果的字体设计中),即当下的付出可能会对未来的发展产生意想不到的作用,也算是机会总是留给有准备的人的一种解释和一个案例吧。

概率与采样

总的来说,在人生的尺度上,一切未发生的事都有一个概率分布,当我们的人生来到那一个特定的节点时,我们便根据这个概率分布进行了一次随机采样。小明努力准备考研,每次自测都能稳在很高的分数,也架不住考研那天因为疫情感冒发烧;小红努力准备高考,他的模拟考分数就像是在一个区间内均匀分布的随机数rand(580, 650),那么他将会非常焦虑,因为他无法控制高考时这个随机数会取到什么值。抗压能力和对概率本身的认知非常重要,我们能做的也只有:

  1. 尽可能广泛地获取信息并根据信息构建对环境的认知
  2. 赌一个通过分析得出的高回报率的长期目标,也就是找到回报的期望最大的那个方向,没必要过度分析,除非您是拉普拉斯妖
  3. 开始为了这个目标做实际的事情,切分成很多短期目标分而治之也好,多线展开也好,总之开始做事
  4. 当认知发生重大改变时返回①

由于任何事情都是一次采样,我们可以尽情调整在②中的“分析”的深刻程度:深刻的分析意味着我们相信通过我们的分析,我们可以较为精确地对环境进行建模;浅显的分析或者甚至不进行分析意味着我们相信作为人类的个体完全无法预测未来,无法对环境哪怕建立一个粗糙的模型。因此在不同的建模尺度下,应该针对认知和建模对象对此参数进行调整。

回顾

大学之前

由于我在高中毕业前为数不多的“合法”(在父母眼中合法)长时间使用电脑的时间仅为在校内的时间,我全权包揽了12年的高中毕业前的班里的多媒体管理职务,为我自己争取到了每天都能捣鼓捣鼓电脑的机会。高考结束后第一件事就是买一台笔记本了,由于受到视游戏为洪水猛兽的思潮限制,最终只能选择了轻薄本才能有合家欢的happy ending,现在看来我推荐任何准大学生购买自己的第一台笔电时考虑全能本或性能再往上的选择。高考结束之后我直接解除封印在高中毕业的那个假期把C#稍微学了一下,做了一个非常简陋的以本地excel作为数据库的类似墨墨背单词的窗体应用,做这个的主要动机是当时有使用墨墨背高考的单词,觉得他这一套交互逻辑和使用体验都挺不错的,于是希望把这样的背书模式扩展到其他科目,并支持一下如图片之类的显示。结局是好不容易像搭积木一样堆了大概1k+行代码之后发现放在PC端完全不能利用上碎片化的时间,同时也不如手机上使用着那么顺手,总之最后是作为黑历史吃灰了。

大一

卡线进了西电,当时大多数人能选的西电就三个大类:自动化、电子信息、计算机,于是不出意外录了自动化,当时自我安慰说这是“万金油”,但这也属于是将古早的刻板印象带到新的时代,刻舟求剑了。虽然西电入学后在大一开始的时候有一个卓越班筛选考试,但不出意外地竞争不过河北之类的内卷大省,河北省室友确实强,进了电子信息,而我们剩余的三人便只有等到大一结束时专业分流的份了,跨大类是很难的了(当时确实是这么想的)。进校第一件事当然是广泛参加一些校内的活动和组织了,一开始主要参与了浪潮俱乐部和学生会,浪潮俱乐部挺好,对我也产生了不小的影响,但关于学生会,只能说这种无实体价值交换的社交在我看来还是太魔幻了。在技术导向的组织(如浪潮俱乐部,网安协会)中,如果一名新成员真的有很强的技术实力,那么他就真的大概率会成为整个组织的焦点,但是对于学生会吧,在我的视角中,熟人圈内的继承各种部长会长,熟人圈外的只有幸苦打杂的份,评价为起码不适合我。在大一上学期快结束时,我因为偶然去听了一次浪潮中一名网安实验班学长的分享会,了解到了大一结束时居然还有少量实验班选拔可以作为转专业机会,我印象中只有网安实验班和空间科学实验班是这个时期选拔的,每个班招40人左右。而在后来和这位学长的深入交流中,我得知了CTF这种网安方向的赛事活动以及网安实验班的选拔流程,也属于是在大多数人得知这一转专业机会前就了解到了这些信息,打了个信息差。除此之外,这些浪潮的分享会还启发了我建立自己的博客页面,这也是作为读者的您能在此时此刻阅读到这些文字的原因。

于是大一的寒假我开始天天刷bugku(一个提供CTF赛题的国内平台),主攻web题(当时记录的web学习笔记)。直到大一下开学时,感觉自己已经多少有了一些CTF的能力,才去给XDSEC(西电网安协会)发了邮件申请加入。最终在校方准备的像狗屎一样的CTF机试中侥幸存活,并成功加入了实验班换了专业。在大一结束之前,XDSEC还办了一个校内CTF,mini L CTF,用于筛选一批日活高和有潜力的玩家加入"里世界",也就是L team,一个代表西电参加更大规模、更正式的CTF的专业团队(貌似是否受官方认可一事还存在争议,但这无疑已经是西电唯一的CTF正规军了)。所以意料之中地,既然我都已经写了这些内容了,我便的确被邀请进入了L team这个里世界。不仅在L team这边活跃,我在浪潮俱乐部,作为代码能力在一众新生中还算稍微有点基础的,被学长(或者更准确地说是当时的浪潮俱乐部社长或者主席,现在去了清华图形学直博,之前看了一眼貌似是在做虚拟人物的骨骼控制相关的机器学习模型,很强的学长)邀请加入由他亲自指挥部署的机器学习小组参与学习(大概是渴望体验一把带学弟学妹的快乐,并将自己学到的知识分享出去吧)。当时主要的学习模式就是暑假保持看吴恩达的机器学习公开课,并将算法(线性回归、逻辑回归、如何正则化等)不调库地用Python实现然后push到小组的github仓库中去。说实话整个小组的学习效果只能用惨淡来形容,虽然学长计划了每周的腾讯会议线上交流学习成果和向他提问的时间,但只能说果然大家放假了还是更想开摆,收效甚微,参与的人越来越少。最后的结果是只有加上我不超过3个同学在他的带领下完成了这些学习,不得不说这个假期的学习为后来我深入这一领域埋下了种子。

对于我其他自动化室友的专业分流(我们虽然入学时室友是可以自主选择的,但寝室楼层是按照入学时的大类划分的,因此我能一块住的室友都是入学时就是自动化大类的同学),一名比我更卷、GPA更高的同学进入了机械,另一名非常摆、GPA比我更低的同学也进入了机械,上界和下界都已确定,夹在中间的我如果没有成功转专业,那多半也是一起进了机械(不是,你自动化大类为什么机械200多人,自动化才五六十人?你怎么不直接叫机械大类?)。我的大一便在不用担心专业分流分到自己不喜欢的细分专业中的愉悦心情中结束了(同时还没少和室友开黑打游戏哈哈哈哈,Overwatch、The Forest、L4D2等等,太快乐了)。

大二

虽然加入了XDSEC,也进入了里世界L team,但我在不断的CTF赛事中逐渐意识到我的能力根本就无法和团队中的旗舰级web选手比较,当我还在纠结某个题的出题点到底是什么时,我们的web一哥二哥已经把题目给AK了(all clear)。于是我便开始消极摆烂了,这还真不是我不思进取,而是我知道我和他们之间的技术力差距过大,我在学习的时候他们也在学习,除非我能以非常快的速度学习并达到接近团队中旗舰选手的水平,否则永远被大哥压一头的感觉还是很难受的,我将很难得到正反馈并将“学习->做出题目->得到成就感并激励学习”的循环启动起来。

于是我开始做一些奇奇怪怪但对我来说非常有趣的东西,毕竟我渴望正反馈嘛。比如关于怎么在命令行中用字符绘制超立方体、玩玩Unity 3D这个游戏引擎并做做和Unity相关的程序(蚁群算法鱼群模拟),甚至是根据B站的教程拼一台自动写字机来帮我抄物理实验报告和一些水课笔记,属于是梦回机械了哈哈哈(后来证实这其实是相比手写更慢的,这玩意儿老故障,很折腾,但作为一个上手把玩的玩具它是合格的)。下面请看VCR:

在此期间,我还正好看到了Nova独游社(大概就是个热衷于游戏开发的社团)的Game Jam宣传(game jam是一种关于游戏开发的活动形式,参加者需要在很短时间内,通常是两三天,针对组织者发布的一个特定主题攒出一个可以入得了眼的游戏出来),但由于这个Game Jam是针对新人开放的,好多人甚至还不太会写代码就来参加活动试水了,所以Nova组织方很人性化地将这个Game Jam的制作时间拉长到了大约是两三个周的长度。但KY的我作为大二“老人”没有意识到这一点,直接跟我高中时的一好哥们对这个活动一起进行了996高强度爆肝,可以说这个活动是我当时挂大学物理的原因之一(临近期中考试,然而相比起预习物理我选择继续捣鼓Unity;后来期末又因为在捣鼓神经网络也没好好预习;好孩子别模仿),当然后来补考过了(这一次之后一想到根本不用考虑保研了就更加放飞自我了),这用心程度,那些新人哪受得了(捂脸)。所以不出所料地成为了Game Jam展会时全场唯一的画面乍一看还像那么回事的3D游戏(起码多了全局光照烘焙、正确使用材质和模型、写出类似起源引擎移动手感的运动脚本,虽然最后比起正统起源引擎完全不像就是了),尽管当时还有很多创意、关卡设计,或是机制设计比我优秀的游戏被展示,但大家也许是看到画面层面的噱头,也可能是对工作量的认可,最终我与我的好哥们(远程参与)荣幸地获得了由Nova颁发的一等奖。

我在Nova Game Jam上的游戏展示


大概也就是在相近的时间,在作为web选手摸鱼潜水了几个月后,我在L team中的定位也迎来了转折。首先是在TCTF 2021 Rising Star(也就是马化腾家给高校办的CTF)的杂项题(杂项题,Miscellaneous,简称MISC,一般是一些隐写术、编码、或者奇奇怪怪的知识点组成的一组题目)中混进了一个AI题,他用了一个人脸识别的包,并部署了一个后端,然后选手的目标貌似是构造一张能骗过这个人脸识别后端的人脸图像。我一看,啪一下啊:“我去这么有意思的题目,太黑阔辣!”然后当时只会一些浪潮俱乐部那边学的回归算法的我就兴致勃勃地开始狂日这个题,结果自然是只能以random随机加噪音把这个题提交了(好歹是做出来了,虽然非常不优雅,甚至有点暴力)。后来,在2021的西湖论剑CTF中,我又在杂项里看到了AI题,感觉是个缘分,就上手试了一下。但这次的题就不是我这种三脚猫功夫的半吊子能用随机数爆出来的了,他这大概可以算个论文题,即你需要根据题目要求抽象出问题后通过查资料发现之前有人发过paper解决过类似的问题,于是你的任务就变成复现论文了,故曰“论文题”(论文题一般在AI和密码方向比较常见)。最终,很遗憾地,这个题对于当时连神经网络都捋不清楚的我可以说是完全做不了一点,也正是这个题激发了我一定要把神经网络弄明白的斗志和决心。此时大二上的期中应该刚过,于是为了弄懂这个题目到底在干嘛,我又开始了在神经网络中的梭哈式学习(看博客的时间记录貌似是一直持续到了大二上的期末,GPA低这件事看来是破案了),并最终总算从里到外地浅显地理解了神经网络的方方面面(全连接神经网络学习笔记,可惜当时不会LaTeX,公式写得很抽象),学习成果大概就是只调用numpy和一些基础库手搓一个全连接神经网络。这便是我们推崇CTF to learn的原因,即,CTF选手多半可以陷入下面这样积极的循环中:

  1. 你遇到一个你不会的题目
  2. 你在比赛前因为没有系统地学习过相关的知识,没能在比赛中完全把这个题弄明白
  3. 你的好奇心和好胜心被激发,在比赛后激情四射地把这个领域知识点给拿下
  4. 也许在下一场CTF中(大大小小的CTF赛事举办密度非常高),你又遇到了相似的知识点,你熟练地把题目拿下,赢得队友夸夸和吹捧
  5. 至此,一个人在自主(不受约束,可以自由选择,在CTF中体现为你可以选择任何一个题目、任何一个方向下手)、关联(与他人产生联系,获得他人的肯定)、胜任(掌握技能,克服挑战)三个方面的需求都得到了充分的满足
  6. 你终将会又遇到一个你不会的题目,然后回到①

至于大二下,我继续参与了各式各样的CTF,并如预期地遇到了更多的AI相关的CTF题目,属于是在AI题这一个板块顺利成为咱们小团队里的第一人了,虽然有很多CTF根本就没AI题就对了哈哈哈哈,所以我其实基本属于是当某个CTF赛事中出现了AI题时才被call的AI题专员。当然,由于我也有Unity 3D的开发经验,所以有的和游戏相关的题也会向我呼叫增援。虽然我们这个CTF圈天天同行互吹,但是被吹到点子上还是忍不住截了一个图(这个Star CTF应该是在大三的时候的,当时说实话科研做实验很忙,要不是大白兔会长这彩虹屁放得这么香,我是真不会来帮忙的,最后的结果就是我把我该做的game题和AI题都拿下咯):

在大二下,学院还为我们实验班学生创造了和导师进行一次双向选择的机会(说实话这双选来得太晚了,人家人工智能卓越班大一下就搞完双选了),我有幸与我们网信院的彭老师进行合作,关于这部分内容可以回到“关于PhD申请->PhD申请的评价体系->科研能力”查看细节。

大三

大三就真的没多少可以叙述的内容了,基本都沉浸在更多的CTF和科研中。由于轻薄本跑不动CNN的训练,于是在大三上结束时攒了一台4080的台式用来跑模型,说实话那段时间寝室电费感觉确实掉得比以往快一些,老是因为电费欠费了被迫停电,但由于我自己也不知道到底是不是我天天训练模型的原因,所以我也不敢说。

大三下的时候我报名了我们学校国际交流部宣传的一个UC Santa Barbara的GAPP交流项目,也就是大四最后一年出去读,体验一下美国的本科教育,并尝试着争取一些推荐信和RA机会。

大四

也就是现在了,我写这篇博客文章的时候。正如我之前所说的,我和彭老师合作的课题直到11月才做完,所以为了方便补一些实验,我其实把那台4080的台式机也给托运到美国来了。美国大多数学校貌似采用学季制,即一个学年分成三个学季上课,但上课的周数仍然和学期制保持一致。学季制的好处是,因为每门课的持续时间相对更短了,所以同样是一年过去,学季制上的课的要比学期制的课种类更加丰富,数量上也更多。

UCSB的交流项目中,学生所属的部门是UCSB Extension,所以说实话参加交流项目的同学在选课上还是低人一等的,需要等正规军选完了后我们才能选;但好在UCSB每学期开设的课程都足够多样且都很优秀,所以对我来说,我总能找到没被选满的且我感兴趣的课程。

然后,关于PhD申请之类的话题,本篇博客之前也已经说过啦,在这里就不重复了。

杂七杂八画廊

Comments

⬆︎TOP