从学校到字节,一枚程序媛的回忆
共 2490字,需浏览 5分钟
·
2021-07-16 02:02
坐在电脑前,敲打着键盘,本想洋洋洒洒的写自己工作一年的总结。但事与愿违,思绪回到了大学,看着窗外,我问自己,如果当初没有转专业,现在的生活会是什么样?
无数种可能出现在浮现在脑海,我甚至想到了我做实验时化学仪器爆炸,然后我毁容了!!!笨笨的样子,如下图。
顿时觉得现在的自己好幸运,感谢当初的我,没有放弃,咬牙完成了转专业,这件我大学做的最成功的一件事。也感谢自己,转专业后没有放松,重新认识自己,认真思考自己的未来,在大多数人都迷茫的大二大三却依然走的很坚定。
我的背景:某中流 985, 计算机专业,综排 top5%,有保研资格,但是选择了直接出来打工。
故事从这里讲起
高考后,我觉得自己考的不好,但是我不想复读,于是埋下了保研的种子。
同时由于被调剂(太惨了),我对自己的专业也很不满意,我高中就不喜欢化学,但是偏偏到了这个专业......,很苦恼。于是我开始准备转专业,一番调研后我选择了计算机,整个大一我都在拼了命的刷绩点,为了应付转专业的笔试,我当时看了浙大的一门 C语言课,算是我写程序生涯的起点吧。功夫不负有心人,转专业成功了,一切都很顺利的样子。
摆脱了化学方程式,不用在刷试管,生活对我笑了,希望重新被点燃,于是开始着手下一个计划——保研。
大二我满脑子都是保研,我是一个目的性很强的人,依旧是疯狂的刷 GPA, 打比赛,数学建模,学校里的程序竞赛,小程序比赛等等。
但是大二的暑假,不知道为啥我开始质疑我的选择(可能是知乎刷多了),为什么要选择保研??研究生后我会怎么选择?进工业界 or 进学术界?
我毫不犹豫的选择了工业界,因为我并不是一个可以静下心来做学术的人,我渴望不断的得到正向反馈。
那读研后进工业界有什么优势?emmm, “钱多”,答案一下子就冒出来了...(原谅我是个世俗的人)
真的是这样吗???
于是我查了一下近两年的校招薪资,问了一些学长学姐,结论是:互联网大厂的本硕校招生的薪资几乎持平,而且很多本科生的工资要高于硕士。说白了就是凭实力拿钱。
如果我不读研了,我怎么才能在校招中胜出呢?
刷了一下知乎,牛客等 app 的帖子后,我意识到实习和基础知识的重要性。于是从大二暑假,我的心里就彻底放弃了保研,开始了实习之路。
呼应开头,我是一个目的性很强的人,我在秋招中取得了不错的成绩,B(bytedance)AT的offer 都拿到了,薪资也不低。
之后的保研名额出来了,我很果断的放弃了,把机会让给了需要的人。再后来,看到朋友圈各大高校的录取通知书,我的内心也很平静,尽管我可能会在人生的某个节点后悔我现在的选择,但至少当下我挺满足的。
路该怎么走
作为过来人,有些经验想分享给萌新们。
大一的课程是比较重的,高数,线性代数等公共课会占据你很多的时间,希望你可以好好学,因为现在的你对未来还不具有很清晰的规划,好好学,好好考,拿个高绩点总是没有错的,做好两手准备,方能天下无敌。大一一般会有一门 C 语言课,自学就好,推荐这本书 《Linux C编程一站式学习》
c语言是一门涉及多学科的编程语言,不懂操作系统,体系结构,编译器等很难把 C 语言学好。这本书从C语言基础着手,紧接着讲到 gdb,让你学会排查问题。在下篇讲到计算机体系结构,汇编等,深入C语言本质,是本不可多得的C语言好书。
碰到问题要善用搜索引擎,这里只推荐google, 也可以加一些群,一般会有热心的大佬答疑,这里推荐一下我的群,嘻嘻嘻。课余时间,我觉得应该全身心投入到编程中(包括一些不水的程序设计比赛),培养写代码的感觉。我当时专门在 github 建了一个 rep, 存放我零碎的代码
大一的暑假可以充分利用起来,你应该已经有了一定的编程基础,这时,你可以刷一些国外的课程,我当时不知道有这么好的资源,好后悔 >.<
有这三门课可有选择的看一下,一个暑假不可能刷完的,稍微做一下准备,大二开冲。有时间可以提前预习一下操作系统。三门课分别是 CS61a, CS61b, CS61c。
大二来了,专业课应该变多了,操作系统,数据结构......,这些专业课我建议找一本不错中文教材迅速看一遍,然后开始做对应国外公开课的 lab, 计算机专业重在实践,这一年,你应该有了一点未来的规划,但是还不是那么确定,所以,那就来试错吧,计算机专业的方向有很多,人工智能,数据库存储系统, 计算引擎,计算机图形学,计算机体系结构,前端等等,你在刷 lab 打基础的过程中,不妨抽出一定的时间来尝试这些方向,疯狂试错,不必计较试错的成本,就当去拓展视野了。
大二结束后,我觉得你应该对操作系统和数据结构有了相对扎实的基础,对自己未来的方向也有了比较清晰的认知。工业 or 学术,你应该作出选择了,这决定了你大三要做什么
因为我选择了去工业界,所以我只介绍一下去工业界的话大三应该做什么。
大三分为两层,上学期和下学期。你会发现在大一和大二我没有强调上下学期,因为大三的时间很紧,必须做足够清晰的规划。
上学期的目标是锻炼工程能力+刷题能力。大三的专业课应该有 数据库系统和计算机网络,这两门课也是面试过程中必问的。我推荐刷下面的公开课 lab:cs144(计算机网络),mit6.824(分布式系统),mit6.830(数据库系统),cmu15445(数据库系统)。(小林coding 的图解网络也不错哦)
mit 6.830 和 cmu 15445 选择一门即可,分别是 java 和 c++ 实现。这一学期你会很累,我当初只完成了两门课,刷了500多道 leetcode。
大三下学期,找实习,找实习,找实习,重要的事情说三遍。如果时间允许,大三下应该就在实习了,不允许的话就暑假去,但是强烈建议别等到暑假,因为暑假秋招就开始了!
结尾
共勉
对未来的最大慷慨,是把一切献给现在。