我的硕士前半生

news2024/9/25 7:18:29

本篇文章属于随笔类,它可能无法对你起到直接帮助,它只是我这个普通学生一年半以来的一些足迹与思考。本文首发于我的个人博客 Forever Young

我的本科像硕士,有实验室有工位,桌子超级大,有老师带有学长可以问。

我的硕士像本科,没有实验室,工位真的是公共座位,导师放养,没有直系学长,开题毕业求职差不多纯靠自己

本文约有6k字,阅读大约需要15min,请提前准备好爆米花,感谢你花时间阅读此文,但凡它能对你有丁点帮助都是我的荣幸。(本文图片的图床用的是GitHub,可能需要读者准备个🪜)

我的硕士前半生

22年11月底,马上要离开成都了,离开这个自己没什么感觉甚至是有些厌恶的城市(吃不习惯、听四川话听到PTSD),刚好也是读研读了一半,遂写此文当作纪念

23年1月中旬回家高铁上伴着窗外大雪写了一部分

除夕当天在个人博客上发布本文

迷茫

研一刚入学还是有些迷茫的,这种迷茫不是那种无头苍蝇式的迷茫,大体方向是准备实习找工作,落实到具体细节却并没有做好

先是没有吸取大学的经验,都准备去找互联网工作了,竟然还准备去参加班干部选举(幸亏没选上😂,要不然就被学校绑死了

然后发现了学校政策其实不是那么完善,奖学金和国奖有漏洞,花时间和钱就一定能拿,但这样拿了又有什么意义

和本科实验室的阿里学长聊了下该学什么,简单规划路线后就开始学了

image-20221130002234746

GSoC

缘起

准备过程说起来也很简单,就是正常的学,刷题、八股。

忘记了是因为什么想起了GSoC,算是为了圆梦吧,第一次认识它也是在知乎,来自那篇广为流传的文章

Google 编程之夏(GSoC):海量优质项目,丰厚报酬,你竟然还不知道?

image-20221130002505050

我还记得再次读到这篇文章还是觉得很酷,是那种不同于其他比赛、竞赛、活动的酷,于是踏上了准备GSoC的路

查找资料

确定参加后就开始查找资料,国内国外中文英文资料都在搜。

也收集了很多前人的经验,认识了各个组织和社区,了解了开源的“玩法”,这些也为后面我编写 《开源小册 》做了良好的铺垫。

image-20230115084608758

因为官网的搜索并不是很好用,我的主要技术栈是 Java,于是想从一些Java社区入手,在官网上搜索 Java,结果会连 Javascript 的社区也一并搜索出来,我觉得这很不方便,于是将官网2021年的项目信息爬下来,存到数据库里。

image-20230115085238470

然后用 SpringBoot 读取出来做些简单数据处理输出到MD文件中,也就产生了早期的 gsoc-analyse 项目,本意是为了更好的查找符合自己技术栈的项目。

image-20230115091940709

Casbin 奇遇

gsoc-cn有一个gitter群(一个聊天室,可以查看很久之前的信息),我查找资料的时候,翻看了近2年的所有聊天记录,发现了 Casbin 的罗老师有在收人,也就是 Casbin明日之星预选生计划-Talent for Casbin 2022, 我去加了群,也给罗老师发了简历。

因为我当时比现在更菜,简历上也没什么能看的,硕士还写了个电子信息,让罗老师误以为是 EE (Electronic Engineering ) 而不是 CS (Computer Science ),这也给我提了个醒,看简历的人不一定和写简历的人有相同的知识背景,只是大致相等,对于部分可能出现误会的地方应该标识/解释清楚。

image-20230115092924970

然后我又和罗老师围绕着我简历交流了一些其他问题(后来才知道罗老师是两届GSoC学生,北大博士,跪了

最后罗老师还是友善的给了建议,其实一直知道自己菜,但没能完全找到自己的弱点。如果是想一直靠技术吃饭,但活到老学到老是必然的。即时是想先进个好点的厂打工,知识的深度也是要远比广度重要的。

后面在开源相关的事上也请教过很多次罗老师,后面GSoC开始申请前还有幸以采访的形式写了一篇文章:Google Summer of Code谷歌编程之夏活动流程全解析(上), 罗老师对问题的回答真的是高屋建瓴,每次阅读都有新的收获。

申请维护GSoC QQ群

我感觉gitter上交流没有群聊方便,gsoc-cn之前的QQ群也没人维护了,我建立了新的QQ群,并发到Gitter上,又在GitHup上的GSoC-CN仓库上提交了issue,申请把QQ群加入到他们的readme中,让更多的人加入到群里。
仓库的reviewer也同意了我的请求,让我提交pr,然后快速的学习了下pr之类的操作提交了第一个pr。

image_1637688000050

算是迈出了个人开源的一小步

前期准备及提交申请

这部分细说起来要写很多,就不详细写了

大致就是我先选了一个社区,社区不是很活跃(一个博士课题组的社区,他们都很忙,一个pr得审好久好久),我没有收到正反馈以及不知道能做些什么,也就放弃了这个社区。

也是运气使然,我后来的mentor 在群里发布了社区的项目,我一开始不知道他是mentor,先加了他微信,看了社区的项目,发现有一个是自己还敢尝试一下的,然后在github上发现了项目导师的联系方式

巧的是,我已经加了他的微信(在不了解项目时加了联系方式,后面选的项目刚好是他当导师😂

因为之前看了很多经验贴,建议不要在没了解过项目的前提下和导师交流

后面也就开始了贡献,在社区里解决了第一个 good first issue 后初步了解了项目,

后面开始解决其他问题时,也遇到了愿意帮忙解决问题的贡献者(Jooks 、Y哥、福哥 …

(算是另一种意义上的组>部门>公司了)

中间也是提交了一部分pr

然后花了一周每天2-3点睡,学习了项目中用到的另一个东西

晚上疯狂用GitHub 的 action 做实验,最后做出了一个demo

image-20230115101704361

期间也和项目mentor一直在讨论项目细节,mentor也给了很多建议

image-20230115102116268

或许是之前写保研申请书的时候经验起了作用,再加上看了很多前辈的申请书,proposal 中加了一些花里胡哨的图、apache要求的内容,mentor reveiw之后还夸了我的 proposal (开心~

image-20230115102226085

gsoc是支持一个人申请三个项目,我一直在这个项目上探索,最后也就申请了这一个项目

image-20230115095406511

GSoC-CN社群分享会

建立QQ群之后,因为有gsoc-cn的引流,也吸引了很多小伙伴

比如后来我们一起举办分享会的 cheverjohn , 彼时他还在 Apache Apisix 实习,也认识很多开源大佬,和他交流后也了解到了很多关于Apache 基金会的东西,然后我们就在群里举办了 GSoC-CN的第一个分享会,是由 Skywalking 的 Committer 江前辈 (Apache SkyWalking Committer | Google Summer of Code 2021 Student | pingcap intern )主讲的 关于OSPP 的 分享会。

活动视频 :GSoC-CN 社群关于OSPP的开源经验分享

侥幸中选

分享会之后不久,就是 GSoC 开奖了,规则限制导师不能提前透露相关信息,我也没有去问,公布名单的时间是国内时间的晚上两点,我还记得那天晚上我开了个腾讯会议,群里很多人一起在那等待,2点过了一会等到了第一封邮件。

image-20230115095302365

开题与GLCC

这里首先要感谢我的导师,没有他的“支持”,我也不能这么自由。

我导师应该是个反卷达人了,也不加班,平时自己接点项目自己做,学生想做可以做,不想做也没事,工程领域里的他全都会,前后端嵌入式人工智能都会

在开题这件事上,他允许我自己去探索,即使他自己也不懂我当时想做的云原生领域。

我一开始不懂为什么不能直接放手学生去做自己想做的,后来和罗老师交流才明白导师能让我做是多么不容易。

对于研究生来收,一个组通常都是做同一个细分方向的,如果有个学生要做其他领域的东西,对于导师来说,这个东西他也不懂,也就很难给出指导,所以一般不会允许自己的学生去做其他方向。

后来和导师商量着先自己去探索,如果探索出了些东西,很好。如果没有,那就需要在他指导下做点东西。(毕业还是要毕业的,兴趣不能当饭吃

学习分布式相关知识

因为对分布式比较感兴趣,之前看谷歌的三驾马车也是囫囵吞枣的阅读完了,没有真正的学懂它们。

然后从谷歌、知乎、GitHub、各种社区搜寻分布式的资料

得益于谷歌的搜索及排名算法,我找到了很多不错的资料和博客

然后就是自己看论文,看项目代码

花了几周,学了一些基础知识,自己太菜了,没人带没能深入到具体的某个方向

后续因为在GLCC上看到了感觉合适的项目,和校内导师商量之后觉得可以作为毕设,就去申请,因为自己没申请上,用一个自己感兴趣的东西作为毕设的想法也就泡汤了 😭

GLCC-开始-结束

彼时,计算机学会的 GLCC 刚开放申请,我也申请了一个项目,分布式相关的,也和导师做了一些交流,可惜,太菜了,没能获得社区导师的认可。

image-20230121182058059

路漫漫其修远兮,吾将上下而求索

日常实习求职实录

投递&面试

花了一个月面试

小厂、中厂、大厂,除了字节约面拒了以外,其他约面的都面完了

期间也记录下每天的投递与面试 24届双非日常实习求职实录

因为之前花时间入门了一下分布式的东西,再加上当时已经写了 这篇博客,所以将一些分布式的东西也写在简历上,我觉得是运气加持,遇到了一些比较match的面试官,他们有的懂分布式,就会问一些问题,这些问题,我有的会,有的以前没思考,借用他们的提问,我完善了我的八股串,后期熟练之后可以不间断输出自己的理解

有的不懂,那我会从其他方面聊一些入门知识,聊着聊着就耗完了面试时间,做道算法题,这场比试就结束了。

可能是我唬住了面试官,除了一开始投的某八股厂,剩下的面试都过了(以及一堆面完之后没发感谢信也没发后续流程的公司)

Offer 选择–人生处处CAP

靠着8分运气,也拿到了一些offer,大厂、中厂、技术厂、小厂外包、传统公司都有,

选择起来说简单也简单,自己学历不够好,选个大厂学学项目规范,让简历看起来好看一些。

然后就剩下了几家了,但都是卧龙凤雏,base、部门、公司 每个offer都欠一样,或许人生处处CAP吧

创建 拿个Offer 知识星球

找日常实习时,在随想录星球里认识了也在准备日常实习的 ConquerJ (现在是titok的实习生),然后在群里一起准备日常实习,群里也收集了一些有实习/准备找实习的同学一起学习 。后续为了更好的“捕捉”大佬,也为了建造一个高质量的交流群我们开始了建立知识星球。

拿个offer 来源自 “真还传”的罗老师的 交个朋友

offer 是广义的,公司的offer是offer,申请海外硕,夏令营申请,都会有offer,这个名字的本义也是希望我们能够从一个目标到另一个目标,一直拿offer,一直进步

无限进步 ( 影视飓风打钱

给巨佬们跪了

有了第一批人之后,也就更容易收集到新的佬哥,然后事情也就开始变得魔幻了起来

目前群里有:

获得 N个 SSP 算法岗 offer 23届佬哥 | N个 SPP offer 佬哥们 |23届 阿里P6 佬哥 |top +米哈游 佬哥

top+顶会+大厂实习佬哥 | 985+NUS 佬哥 | UCLA + 华尔街量化佬哥

Apache 某社区 Committer 佬哥 | CNCF 某社区 Reviewer 佬哥

本科发顶会论文佬哥 |国内顶尖实验室佬哥 …

正式创建星球后,在知乎上收到了一些巨佬的入驻,然后巨佬之间又是互相认识的,也就造成了后面群里能有神奇的梗

“我经常被他们嘲笑,因为我有一个offer是sp”

部分佬哥们的自我介绍:

23届 11 个算法 SSP Offerimg

image-20230121171703561 image-20230121171819947

和佬哥们一起交流

因为群里都是同一届找工作的,大家也会聚一起模拟面试、交流简历。

星球正式建立的第一周周末

和两位多段大厂实习佬交流简历✔️

和源码佬八股佬大厂实习佬交流模拟面试✔️

image-20230115143336260

晚上和IEG佬哥交流简历暑期实习秋招✔️

随着看过的优秀简历增多,我也对简历有了新的理解,而这都是在交流中获得的,好的交流环境更容易诞生出更好的想法。

24届秋招 | 高密度信息交流环境 | 高质量交流群 - 尔等同学的文章 - 知乎 https://zhuanlan.zhihu.com/p/600246510

GSoC-CN社群第三次活动

筹划了两周的活动于2023年1月14日,小年夜,顺利举行,此次人数全程50+,最多有60人在线。

第三次活动宣传稿:https://docs.qq.com/doc/DWVR1cVJzWFBkd0Fw

活动PPT:https://blog.aflybird.cn/2023/01/before-good-first-issue

最后

回首才发现走出去了很远

如同乔帮主在斯坦福演讲中所讲的

当然,当时的我没有办法把这些点点滴滴连接起来,但当我从这回头看时,一切都变的清清楚楚。

的确如此,没有人可以未卜先知,把自己所学到的东西连接在一起,我们只能在回首的时候,发现这些是如何改变现在的自己的。

所以,你必须要有这样一种信念,那就是你现在的所有点滴,都会在未来的某一天连接起来,改变你的人生。

你必须要有一种信念,相信胆识,命运,生活,轮回,无论什么都好。

因为通过这些信念,会带给你遵从内心的勇气。

即使你内心的声音让你走一条人迹罕至的路,这些信念也会给你勇气,然后改变一切。

当时因为感兴趣而去准备GSoC,去维护QQ群,去举办活动,才能在后面认识了很多前辈,进入了另一个圈子。

GSoC的活动,或许并没有让我的编程水平有突飞猛进式的提升,但通过参与它,我有了勇气去尝试新的未知的东西,这是最大的收获。也因为参与GSoC,我认识了社区里的前辈,后期投递实习时拿到了很多内推机会。

当时因为兴趣去学的分布式基础知识,没能在毕业设计中直接用到,但在后面面试中用到了很多,也获得一些面试机会,获得一些offer。

当时因为喜欢交流,加入了随想录的星球,才能在后来认识了八股战神&放弃直博复旦的冰冰同学,认识了三个月上岸的titok的凡哥…

没有人可以未卜先知,我们只能基于当前时间之前的经验做出选择

直到回首望去,所有的脚步都会被串联起来,指向你现在的位置

Follow your heart

不一定大公司就适合每一个人,可能它要求实习生日报,正式员工okr,双月okr,可能每天要开站会,可能要早上8点上班,也可能支持永久远程。

公司有很多很多,但我们很难知道自己想要什么。

我之前没去过字节,对字节有种好奇,后来知道同学进去那么卷,它可能不太合适我,但如果它给我一个机会去实习,我还是想去体验下,然后视情况离职。

希望大家都能去一个自己觉得合适的公司。

工作将占据你生命中很大的一部分
Your work is going to fill a large part of your life

只有相信自己所做的是伟大的工作,你才能获得快乐
and the only way to be truly satisfied is to do what you believe is great work

而伟大的工作就源自你的爱
And the only way to do great work is to love what you do

如果你还没有找到
If you haven’t found it yet

继续寻找,不要止步
Keep looking and don’t settle

全心全意地寻找
As with all matters of the heart

当你遇到它时,你就会明白
You’ll know when you find it

就像那些美好的爱情
And like any great relationship

随着岁月的流逝,愈加醇美
it just gets better and better as the years roll on

所以,继续寻找,绝不止步!
So keep looking, don’t settle

读书好 多读书 读好书

大学时人傻,没有好好利用好时间

读研后,因为睡眠一直不好,控制变量做了些实验后觉得是睡前没有平复心情

然后开始看书,小说、传记、技术书都看

学校的图书馆很好,一次可以借很多本,借完放床头,睡前开始看,看个1h再睡,睡眠改善了很多。

在这个信息纷杂的年代,读书可以帮助我们更好的思考,

很多经典技术书也是非常值得一看的,还记得面试某游戏厂时遇到的一个问题,最近有看什么书吗?

当时在看DDIA,刚读完吴军博士的软能力,对着面试官就是一顿输出😂

多读一些经典书、好书,总会派上用场的

鸣谢

非常感谢本科实验室的 L 哥、T哥,以及实验室的老师,或许学校不是很好,但学校已经将最好的资源给了我,而我目前“一事无成”,实在是愧对学校😭

非常感谢ShenYu社区的小伙伴,让我在初入开源时体会到了良好的社区是怎样的,

@JooKS-me,@ HessTina-YuI,@ yu199195 …

非常感谢 gsoc-cn 的小伙伴,一起筹备活动,开源布道,@John Chever ,@Yuang XU , @Bird,

非常感谢某里巴巴工程师 PS 哥在我准备实习期间的指导( @凌云师兄

非常感谢某东后端实习生冰冰同学在我实习期间教导我八股、算法题 ,让我有机会和面试官聊天吹牛拿offer ( @冰冰

非常感谢 拿个offer星球 的第一批用户,我在群学到了很多很多,每天都有新的收获,有些东西是很难拿钱买来的,比如眼界、比如信息差。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/175992.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

分享122个ASP源码,总有一款适合您

ASP源码 分享122个ASP源码,总有一款适合您 下面是文件的名字,我放了一些图片,文章里不是所有的图主要是放不下..., 122个ASP源码下载链接:https://pan.baidu.com/s/1-hwBdIxuv1NvpapRJsGAcQ?pwdgs1l 提取码&#x…

设计模式_行为型模式 -《迭代器模式》

设计模式_行为型模式 -《迭代器模式》 笔记整理自 黑马程序员Java设计模式详解, 23种Java设计模式(图解框架源码分析实战) 概述 定义 提供一个对象来顺序访问聚合对象中的一系列数据,而不暴露聚合对象的内部表示。 结构 迭代器…

手撕Pytorch源码#3.Dataset类 part3

写在前面手撕Pytorch源码系列目的:通过手撕源码复习了解高级python语法熟悉对pytorch框架的掌握在每一类完成源码分析后,会与常规深度学习训练脚本进行对照本系列预计先手撕python层源码,再进一步手撕c源码版本信息python:3.6.13p…

Couplet | 用Python写一副对联送给诸位科研汪!~

1写在前面 小伙伴们大家新年好啊!!!🥰 又是一年新春到,玉兔祝福要记牢:蹦蹦跳跳身体棒,平平淡淡精神爽,红红火火财运旺,和和气气朋友广,简简单单幸福长。&…

Windows SDK编程 初学笔记

#include "windows.h"int WINAPI WinMain(HINSTANCE hinstance, HINSTANCE hPreInstance, PSTR szCmdLine, int iCmdShow) {MessageBox(NULL, TEXT("来见见世面"), TEXT("Say Hi"), MB_OK);return 0; } MessageBox第一个参数为句柄,第…

Socket通信

什么是Socket?

Java基础——运算符与表达式

目录 Eclipse下载 安装 使用 运算符 键盘录入 Eclipse下载 安装 使用 Eclipse的概述(磨刀不误砍柴工)——是一个IDE(集成开发环境)Eclipse的特点描述(1)免费 (2)纯Java语言编写 (3)免安装 &#xff08…

【手把手教你学51单片机】

注:本文章转载自《手把手教你学习51单片机》!因转载需要原文链接,故无法选择转载! 如若侵权,请联系我进行删除!上传至网络博客目的为了记录自己学习的过程的同时,同时能够帮助其他一同学习的小伙…

AJAX Axios 总结

AJAX & Axios1. AJAX1.1 作用①与服务器进行数据交换②异步交互异步和同步1.2 基本使用1.3 案例SelectUserServlet&#xff1a;register.html&#xff1a;register.html中的<script2. Axios异步框架2.1 基本使用2.2 案例axiosServlet&#xff1a;axios-demo.html&#x…

Elasticsearch7.8.0版本高级查询—— 聚合查询文档

目录一、初始化文档数据二、聚合查询文档2.1、概述2.2、对某个字段取最大值 max 示例2.3、对某个字段取最小值 min 示例2.4、对某个字段求和sum 示例2.5、对某个字段取平均值 avg 示例2.6、对某个字段的值进行去重之后再取总数 示例三、State 聚合查询文档3.1、概述3.2、示例一…

目标检测论文解读复现【NO.24】改进 YOLOv5s 的轨道障碍物检测模型轻量化研究

前言此前出了目标改进算法专栏&#xff0c;但是对于应用于什么场景&#xff0c;需要什么改进方法对应与自己的应用场景有效果&#xff0c;并且多少改进点能发什么水平的文章&#xff0c;为解决大家的困惑&#xff0c;此系列文章旨在给大家解读最新目标检测算法论文&#xff0c;…

Cadence PCB仿真使用Allegro PCB SI生成反射仿真报告及报告导读图文教程

🏡《Cadence 开发合集目录》   🏡《Cadence PCB 仿真宝典目录》 目录 1,概述2,生成报告3,报告导读4,总结1,概述 本文简单介绍使用Allegro PCB SI生成网络的反射性能评估的报告的方法,及反射报告要点导读。 2,生成报告 第1步,选择需要生成报告的网络,然后单击右…

(侯捷C++)1.2面向对象高级编程(上)

1.整体结构 2.三大函数&#xff1a;拷贝构造&#xff0c;拷贝赋值&#xff0c;析构 拷贝构造&#xff1a;第一次出现对象&#xff0c;使用拷贝构造进行创建&#xff0c;例如&#xff1a;String s3(s1)。拷贝赋值&#xff1a;对象已经构造&#xff0c;重新赋值&#xff0c;例如…

人工智能辅助药物发现(4)药物重定位

目录药物重定位概述药物重定位数据库表示学习基于序列的表示学习基于图的表示学习药物重定位深度学习以靶点为中心以疾病为中心药物重定位的应用药物重定位概述 新药物的研发投资巨大&#xff0c;周期漫长。从获批准的临床药物中有效识别新的适应药物在药物发现中起到重要作用…

cc123 靶场测试笔记

1.cc123 靶场介绍本靶场存在四个 flag 把下载到的虚拟机环境导入到虚拟机&#xff0c;本靶场需要把网络环境配置好。1.1.网络示意图2. 信息收集2.1.主机发现sudo netdiscover -i eth0 -r 192.168.0.0/242.2.masscan 端口扫描sudo masscan -p 1-65535 192.168.1.102 --rate10002…

Elasticsearch7.8.0版本高级查询—— 高亮查询文档

目录一、初始化文档数据二、高亮查询文档2.1、概述2.2、示例一、初始化文档数据 在 Postman 中&#xff0c;向 ES 服务器发 POST 请求 &#xff1a;http://localhost:9200/user/_doc/1&#xff0c;请求体内容为&#xff1a; { "name":"zhangsan", "ag…

<Python的文件>——《Python》

目录 1.文件 1.1 文件是什么 1.2 文件路径 1.3 文件操作 1.3.1 打开文件 1.3.2 关闭文件 1.3.3 写文件 1.3.4 读文件 1.3.5 关于中文的处理 1.4 使用上下文管理器 1.文件 1.1 文件是什么 变量是把数据保存到内存中. 如果程序重启/主机重启, 内存中的数据就会丢失.…

23种设计模式(十八)——组合模式【数据结构】

文章目录 意图什么时候使用组合真实世界类比组合模式的实现组合模式的优缺点亦称: 对象树、Object Tree、Composite 意图 有时又叫作整体-部分(Part-Whole)模式,是一种将对象组合成树状的层次结构的模式,用来表示“整体-部分”的关系,使用户对单个对象和组合对象具有一致…

【并发编程】Executor线程池

一、线程 1.线程 线程是调度CPU资源的最小单位。java线程与OS线程保持1:1映射关系&#xff0c;也就是说&#xff0c;一个Java线程也会在操作系统里有一个对应线程。 2.线程的生命周期 NEW,新建 RUNNABLE,运行 BLOCKED,阻塞 WAITING,等待 TIMED_WAITING,超时等待 TERMINATED…

超级完整的 Git 下载、安装与配置

Git的下载、安装与配置 一、git下载安装 1、访问git官方下载网址&#xff0c;点击这里&#xff0c;然后根据自己的电脑系统&#xff0c;下载对应的安装包&#xff1a; 2、在淘宝镜像网站 下载对应的安装包&#xff1a; 注&#xff1a; 如果由于官网下载速度过于缓慢&#xff…