<<<放弃厂大继续攻读研究生后,半年来都发生了什么,研究生生活和我想的出入大吗?研究生生活给我带来了什么思想上的转变?是不是有过后悔?
研究生生活的粗略体会
不得不说研究生生活和本科生活还是有很大不同的,其实这些我在本科已经了解过了,现在才算是切身体会,我认为主要可以从三个方面来讲,分别是"教学",”生活“,”社交“。
第一是教学,研究生的课程明显比本科生的课程少得多,基本上是以科研为主,但是从任务量的角度来看其实一点不比本科轻松,因为研究生课程总是变着花样玩,总是各种各样的PPT汇报和Presentation,实在是让人不胜其烦,尽管你已经非常明确上这些课只会浪费你的时间,尽管你知道这些课对于你的所谓科研和技术没有任何实质性的提升,但是为了达到你的学分你还是不得不投入时间和精力。
第二是生活,研究生生活其实比本科在生活上的时间更少了,除了上课和学技术,基本就是待在实验室或者开会,不过对我来说我已经习惯了三点一线的生活,没有事就看电脑学技术,有课就去上一下,正常到点吃饭睡觉起床。第三是社交,很明显能够感觉到研究生生活比本科同学的相处更难了,在一起上课一学期了还是不认识同班同学,每天的社交圈子就是同门和舍友,最难受的事情可能是本来同学就少,真心想一起进步的就更少了,也许让我开心的可能是大家都强大都能在自己的领域放光彩,悲伤的事情是其他人不一定也这么想。
这半个学期我干了什么
主要分为课程、科研和技术吧,生活就没有了,我对生活没有特殊的追求,吃饱喝足就行。
研一的事情还是比较琐碎的,尽管相比我的本科生活来说,我已经尽可能对一些无用的东西做到能不做就不做的状态了(能撇开的依然只是小一部分任务,对于必须要你参加的任务你还是要上才行,比如说的汇报和考试QAQ)。
本科的时候学习一门课程我要分三个阶段来学习,以线性代数为例,老师下周甚至下下周的课程我这周就已经提前学完了,然后在上课再学一遍,课后还有自己单独找一些卷子和经典的书来刷题,刷完的草稿本都堆了不知道多高了,我经常和朋友诉说如果我大一到大三不花那么多时间在课程上我的技术应该会更进一步,其实现在看来再高的单科成绩给我带来的只是拿到了一个推免资格。所以上了研究生之后我在极力克制自己的学生思维,尽可能以结果为导向,但是大多数时候还是很痛苦的,毕竟要经历思想上的转变,把一门课考到不错的分数是学生一种说不清的执着,长久以来的观念会把它当作对自己努力的认可,比如前段时间的算法考试,尽管我对自己的期望就是别挂科就行,尽管我对自己课程投入的时间心里非常有数,但是最终成绩非常不理想还是让我还是低迷了一两天,考试所有的题我都已经在力扣刷过了,力扣600道拿不下算法基础考试想想确实也挺气人哈哈,我觉得考差一个比较大的原因就是能做出来只是一方面,能用数学的方式表达出来这是课程比较看重的,而我完全没有花时间在题目笔试练习上(不过算法导论这门课确实帮我突破了一定的算法瓶颈,之前到600这个节点就上不去了主要是动态规划和图论等实在刷不动了)。
所以总的来说我在课程上基本没有任何建树,甚至是抱着不挂就行的心态。
科研上比较惭愧了,投入的时间相对技术来说少一点,本科的时候没有人工智能这方面的基础,不过好在我选的方向还是自己之前本科比赛接触过的计算机视觉,现在基本是在边打基础边看论文的阶段,看一篇论文有时候看几天都不一定看得懂(不是12h都在看,一般是持续一段时间几个小时),阅读论文的时候想读懂花费的时间就比较多,但是也多少看了一些书,比如《图解机器学习》《机器学习图解》等,教学视频也在跟进,但是相对技术来说投入的时间就少很多了,另外这学期有个算法需要做个系统,工作量也不小,主要是想达到可用性需要交付,而且人手目前就我一个。
技术上我和本科时期的偏重点还是有很大的不同,我已经很长一段时间没做具体的业务开发了。主要精力是投身在工程化和框架设计原理上。 在技术上主要做的工作有 Webpack、Vite、Vue、React、Babel 工具的底层原理探析,TS类型体操,在业务方面学习了 Electron 和 Nest.js 的基本使用,此外投入了大量的时间在Rust及其周边技术应用上。
其实学习Electron是因为每天只做技术是一件很枯燥的事情尤其是每天和源码大眼瞪小眼的时候,学点应用类的技术可以帮我减少枯燥感,另外学习 Nest.js 是因为在本科期间学习 Node.js 的过程中我深感前端开发学习后端的无力感,Node.js 虽然是前端入门后端的一把好手,但是它缺乏后端的灵魂,为什么这么说,我用Nest.js官网的一句话来表达我的看法
没错,正是因为其余框架都是教会你如何去简单的启动服务和开发接口,而后端最重要的东西其实是架构和思想,MVC、AOP、OOP、并发和线程、锁、微服务等太多前端接触不到的概念,我相信部分学习 Node.js 的前端同学和我之前学 Node 一样会有疑问,我会使用 Node.js 开发接口了我算不算会后端开发,为什么我会使用 Node.js 开发接口了碰到专业的后端同学依然无法在同一个维度对话,这也正是我想接触Nest的一个原因,(但是Nest也确实很臃肿,不适用小型个人开发)。
学 Rust 算是一个比较另类的存在,Rust 号称是学习路线最陡峭的语言确实没夸张,至少在初级阶段是这样的,里面很多的标新立异的新特性确实让人有点儿适应不过来,而且由于语言的定位,最后学完了可能你也难以用它创造生产力,对前端开发同学来说,所有权和借用,生命周期,智能指针、宏等等算是全新概念,而且其实现在 Rust 在前端还并不普及,只是极个别厂有转向使用 Rust 构建工具的趋势,大多还是用在前端开源上,但是对于越来越重编译时的前端来说,前端工具链的统一和 Rust 重写是必然趋势,我学习 Rust 一方面是兴趣,一方面也算是一种投资吧。
项目开发上本学期打算做的一个 C 端应用确实时间分配不过来基本停滞了,另外也有一些新的想法想做一个论文集成阅读工具推广到学校,目前还在构思阶段暂时没有时间投入开发。
平时主要还是以阅读博客和教学视频为主,另外还辅以书籍阅读和总结。 本学期阅读了《Rust权威指南》,阅读了部分《计算机网络系统方法》、《React设计原理》,重温了部分《Vue.js设计与实现》。当下正在阅读《Rust程序设计》。
总的来看这学期还是投入了不少时间在技术上,但是收益没有想象的高,这个也比较正常,毕竟大多是原理层面的东西,投入产出比低是很正常的,距离今年结束还有40天,希望可以把剩下的东西过一遍。
研究生生活给我带来了什么思想上的转变,是否后悔过
我觉得最重要的是读研给我带来了思想上的转变,我先引用我在微信群说的一句话”读研最开心的事情就是我愿意去接受量变的过程了,愿意去探索不会的“,而不是再妄想通过不断学习别人嚼碎的东西达到质变,我本科的学习思维是按部就班,跟在别人屁股后面走,再进一步就是知道自己去找资料学习,去copy,用一句话来总结就是我具备了基本的学习能力和解决问题的能力,但是研究生的氛围是学会发现问题和解决问题,尽管我的兴趣点在软件开发而不是科研,但是这些确确实实感染了我,让我也用不同的眼光去看在软件开发过程中的问题,让我慢慢脱离教程自己去探索,除此以外让我看到了人生有更多的选择(尽管不一定会选),有不少的师兄师姐除了正常去互联网,还有去国企银行或者考公的,有进大学的,也有进了阿里两年就去大专当老师的。
在我暑假那一段时间每天到了晚上刷到一些24届大厂同学拍 vlog 介绍自己的工作和生活的时候其实还是有点失落甚至后悔的(其实也都在意料当中),有时候也会这么想,如果我去工作现在应该也可以xxx了,也可以自由自在,一定程度上财富自由。
但是大多数时候我还是坚持现在的生活,我一直坚信最重要的是自己想要什么和自己经历过什么,之前和一些工作的朋友吃了几次饭,也有在微信聊过,尽管他们的薪资都很高,但是工作了一两年之后还是会感觉到生活的枯燥乏味,说想回过头读书之类的话。尽管这些都是围城,但是在我看来学校确实很多时候可以让你暂时享受到生活的乐趣避免生活带来的鸡毛蒜皮和枯燥乏味,但是工作无法做到,工作可以做到的是个人财富的自由,我对财富和幸福度关系的理解其实是近似用一个 f(x) = lnx
对数函数来表示的,(1,0)
这个点就是决定我们温饱的点,达到基本的物质要求后,幸福度会随着财富上升增加地越来越慢,而且这还是仅仅考虑在最美好的财富的影响下,实际情况远远更复杂,有更多糟心的事,尤其是计算机专业同学工作的特殊性,需要背井离乡长时间享受孤独。
碎碎念
我之所以总是写总结性文章,基本不输出技术性文章的原因是,一方面我认为同质化的文章太多已经不需要一些低质量的文章来充数,另一方面我自身没有能力输出特别高质量的文章,部分探索也达不到可以向社区输出文章的层次,同质化并不是说文章缺乏自己的沉淀和思考,而是缺乏自己向深度的探索和实践,大多是道听途说人云亦云,然后再把自己看到的输出相同的内容到博客,其实是换汤不换药,以之前在关注webpack的HMR为例,文章很多多到我眼花缭乱,但是发现内容无非是HMR的基本配置,再进一步就是讲到文件监听和websocket通信,至于具体怎么实现页面局部无感刷新和替换几乎没有人可以说清楚甚至提到的,经常性边看边叹气的状态。
而且我也认为没事做做总结挺好的,至少知道自己在做什么,知道距离自己的目标还有多远,这就是阶段性总结的意义。
总结
我觉得总的来说一句话,研究生生活没有想的那么美好,什么生活都是,最重要的是你想要什么、你热爱什么,重要的是你是不是有明确的目标并且全力以赴了。
以上均来自个人感受,感受因人而异,大家看个乐就好,另外是一次性写就,估计有一些文字不恰当或者不通顺的地方我看到了也会马上修改。