大家好,我是帅地,在帅地的训练营里,有不少大一打二大学员,不少学员在大一就会数据结构,算法等学了,还参加了一些实验室项目,这主要得益于他们规划等早。
帅地在接下来的时间里,会写一系列这种大学规划与校招求职相关的文章。
说实话,计算机专业的同学和其他专业还是比较不一样,其他专业的学生,同一个班级的同学,可能到了大四,差距也不会太大,但是计算机不一样,对于计算机的同学,入学时同一个起点,不同规划的人,一年后你们的差距就非常明显,甚至有些人一年后,就比很多大四的同学要厉害了,到了毕业,你们的差距就是天差地别,甚至有些人毕业后的起点,是另外一些人这辈子都无法触及到。
所以呢,对于学计算机的同学,做好自己的规划,往正确的方向去学习,将会非常重要,不然就是大学毕业,要么失业要么去到一些非常差的公司了。
在帅地的大学生涯里,我觉得我是混的还不错的,而且我的四年大学,没有依赖任何一个人,完全来自于自己的模式,实现了毕业进大厂,半年半年挣到人生第一个 100 万,大厂工作一年辞职创业…,所以我写的大学规划,可能会和别人写的有一点不一样。
其实我这个人,不是特别喜欢告诉别人你要去做什么,更多的还是希望通过分享自己的故事,让大家自己去感受,所以下面先简单聊一聊我的大一。
我大一第一学期读读不是计算机专业,而是木材科学与工程,这是一个非常冷门的专业,当时高考没考好,所以我那会的想法就是:以服从调剂的方式进去学校,然后再找机会转专业到计算机专业。
我大学第一学期的目标非常明确,那就是希望第二学期能够成功转专业,只要做好的这个事情,其他事情都是浮云,于是在我进入大学那会,我就通过公众号啊,论坛啊,学校 QQ群等渠道,把转专业所需要的条件全部掌握了,无非就是对英语,数学绩点有要求,然后参加 C 语言考试。
所以第一学期,我的数学和英语成绩,是我大学四年的绩点巅峰。
至于 C 语言的学习,大概是在 11 月份开始学的,我这个人学起来比较专注和疯狂,要么不学,要么就天天学,大概学了一两个星期,我就已经学到了指针了,还做了一个贪吃蛇游戏,不过游戏的源码是我从网上找来修改的。
反正那两个星期学的挺入迷,中午放学回来,一边吃午饭一边刷视频,下午有时候就不去上课了,去不去上课,主要看自己的心情以及啥课程,晚上刷 C 语言刷到 12点(因为12点要关灯睡觉了),有时候去了课堂,也是自己看 C 语言,按照这股激情,想不快都难。
后面我有个同学,计算机专业的,来了我学校,我发现他的 C 语言还没有我好,本来他想吹 C 语言有多难多难多,没想到最后是我教他做作业了。
后面我了解到转专业考试,需要在 OJ 上做题,所以我就给一些计算机专业的同学借了 OJ 掌握,开启了刷题之路。
记得第一道题就是 A + B,但其实我非常懵逼,虽然我知道 A + B 程序怎么写,但是我不知道它要我干啥,所以前面的一些题,我主要是看答案来做的,后面就慢慢熟悉了 OJ 的刷题规则了。
于是我花了几天,把 C 语言的几十道题都刷完了。其实这个时候的我,比大部分科班的人都要强了。
按照我这种准备方式,转专业考试那就是手到擒来,所以在第二学期开学转专业考试的时候,我很轻松就通过了考试,很轻松就成为了科班人员,并且我对 C 语言的掌握,也超过了大部分的科班人员。
其实参加转专业的人很多,有一些还是我的同学,但是好多人都转失败了,因为他们直到转专业那一刻,C 语言的基本语法都不懂,或者等到了很晚才去准备,对于这样的学生,学院老师,估计也不大想收你了。
而我则不一样,我的目标非常明确,这一学期,其他的都可以丢,唯独转专业要成功,其他奖学金啊,活动啊,比赛啊,不好意思,我没有兴趣,当然,对于感兴趣的我还是会去玩,只是我不会为了那些很虚的东西去花时间参加那些很虚的活动。
我特别感谢自己在这一学期的各种折腾,因为这一学期的折腾,让我提前掌握的很多东西,更加明白了自己未来的规划,同时也让我感受到,只要你想学,一个学期真的可以学习好多好多好多东西。
其实转专业过去之后,我个人对 ACM 是特别感兴趣,觉得好牛逼啊,如果我能够拿一个奖,那这个逼装起来就太爽,但是很遗憾,我并没有进到 ACM 集训队,因为当我们转进去计算机专业的时候,已经错过了考试了。
虽然没有混入 ACM,但我也不甘拉下,于是各种刷题,学算法,学习数据结构,记得当时天天不是刷题就是学数据结构,反正无论上啥课,我都是课堂上刷数据结构的书,回宿舍敲代码,做算法题。
按照这股劲,我记得老师队列还没教完,我已经把图论相关的刷完了,自己也接触了各种算法思想,刷了不少算法的书。
后面也不知道怎么回事,学着学着,就不想天天整算法,数据结构啥的了,而是想去做一个游戏,APP 之类的出来,最好做出来之后,可以给别人玩,然后我嵌入广告,挣点广告钱。不得不说,对于挣钱这种事,我真的是充满动力,,,
于是我开启了折腾写软件的道路,先用 C 语言写了贪吃蛇啊,俄罗斯方块,当时我看了一本 AI 的书,还写了一个 AI 版俄罗斯方块,让我初步接触了 AI 是个啥玩意,后面我还上传到了 CSDN 赚佣金
后面我觉得 C 语言写的游戏,界面太麻烦了,于是我了解到 windows 编程可以绘画各种界面,于是我怀着好大的期待,买了一本厚度 900 多页的 windows 编程,名字貌似是叫做《Windows程序设计(第5版,珍藏版)》。
那会也是一整天看的那种,记得不到一个月,我就差不多刷完了,当然,很多只是简单瞧一眼了,记得当时写了个计算器,后面我就放弃了,因为我又没兴趣了。当时学习 windows 程序设计,让我学到了很多东西底层的东西,比如鼠标移动啊,各种点击事件啊,等等。
接着我又多 Android 萌生了兴趣,寻思写个 APP 放在应用商店里,于是我刷了《第一行代码》这本书,跟着做了一个天气预告,之后买了几个项目实战,做了一个背单词之类的 APP,但是做的很粗糙了,后面我也没兴趣了,也就没继续做了。
是的,你没看错,学习数据结构,算法,学习做一些游戏,学习 windows 程序设计,学习安卓,这些都是我在第二学期 + 暑假做的事,还有其他乱七八糟的。
虽然这些东西都是浅浅接触,但是我觉得对我的编程能力提升很大,同时也明白了一些东西:那就是,自己真的很渺小,曾经还想成为一个编程大佬,做出几个牛逼的软件,或者拿几个 ACM 大奖,,,然而啥也没实现。
说实话,大一之所以这么折腾,是真的因为特别感兴趣,但是在之后的大二开始,就少了这股劲了,不过那会也有新的目标了,那就是拿个大厂 offer。
上面我已经说了我的故事了,不知道你看了之后是什么感想,如果你和我有着一样的折腾,那么恭喜你,我觉得你做的很好;当然,如果你没有想我一样折腾,但是这一年有在认真学习编程,比如把数据结构,C 语言,算法,都学的很好,那么恭喜你,我觉得你也做的很好。
帅地作为一个过来人,这些年也接触了非常非常非常多的学生,如果你和我一样,只是一个普通人,并且未来要靠这个专业去挣钱的,那么我觉得,大学的规划,真的非常重要,但是呢,我又觉得,对于大一,也不用把自己限制的太死,所以呢,下面我主要 以问答的形式,跟大家说几个比较重要或者我曾经纠结过的问题。
一般来说,大一很多学校会教 C语言 + 数据结构 这两门课程,那我个人认为,在大一,你最基本的任务,就是把这两门课程学好,至于其他的课程,你自己要不要学,就随你便吧。
注意,我说的学好,不是考试高分就行,而是你要去了解他们的一些原理,比如对于 C 语言,你要掌握好指针,理解好指针,理解内存与地址这些概念;而对于数据结构,你要对常见的数据结构,比如链表,队列,栈,二叉树,哈希表等,给你时间写,你要会基本的增删查。
当然,如果你要学的更好,这还不够,你还要去刷题,锻炼自己的代码能力,比如刷个一两百道题。
如果你在大一做好的这几个事情:学好一门语言 + 学好了数据结构 + 刷了算法。其实你已经超过很多人了,毕竟很多人可能连语言都没学后。
然而,我说的这几个,只是必须要做好的,除此之外,你还可以去学习你感兴趣的事情,注意,无论是什么编程知识,只要是你充满兴趣的,你就狠狠去学,狠狠去折腾,比如写个博客网站,比如做个小程序,比如写个小游戏,等等。这也是我说的,不要太限制自己,因为这些东西,都可以很好提高你的学习能力。
可能每个人的价值观不一样,在我这里,大学其实只是一个平台,大学里面的课程,我是感兴趣就学,不感兴趣就不学,所以我觉得,如何平衡上课与编程学习,主要看你要的是什么。
比如你想保研,那就好好学好课程内容,保证下几点,如果你不想考研,只想好好学习编程,那你就保持不挂科就行,之后你想怎么来就怎么来,比如课堂上学习别的内容也是可以的。
有人可能会说,老师课堂很严格,我无法分心学习别的内容啊,我只能说,这个是各凭本事了。实在不行,只要你愿意,你下课后,也可以有非常多的时间来学习 编程,毕竟大学的课程,比起高中,还是少很多。
反正一句话,想清楚你要的是什么,然后自己给自己一个规划安排,之后想办法去达成这个目标,因为每个人的情况不一样,学校氛围也不一样,我很难给大家具体的建议。
关于比赛这种事情,我觉得大学有很多比赛,都很水,除非你特别感兴趣,或者想要混绩点保研,那就去参加,否则有很多比赛真没必要参加,比如很多比赛的省一,懂的都懂,没啥含金量,具体我就不说了。
所以我觉得,参加的比赛,最好是编程相关的,因为这样的话,即使你没拿到奖,你也能够学习不少编程知识,比如你可以参加一下蓝桥杯,当作监督自己学习算法;你也可以参加一些软件开发大赛,提高自己的实践能力。
也就是说,比赛的类型最好是这两种:要么算法类的,要么是开发类的。
那有人可能说说,我不参加可以吗?
答案是,完全可以,因为通往目标的道理,有很多条,你需要做的就是,增加只是的编程知识 + 实践能力,你可以自己去刷题,你也可以自己去开发一些有趣的开源项目。
总之,老老实实,围绕提高自己编程能力的比赛去参加,并且学的这些东西,最好是热门的,因为时间有限,一些乱七八糟的比赛就别去参加了。
上面写了个人的一些学习经历,以及简单给了大家的一些建议,总的来说就是:主线学好一门语言 + 数据结构 + 算法,副线你可以去多折腾,然后如果有兴趣,就去参加一些算法类或者开发类的比赛。
然后自己规划之后,就好好去学,网上各种焦虑的帖子就不要去关注了,因为有些东西,我们改变不了,还轮不到你来操心,你最好的做法,就是一心投入学习,最好是可以学的快乐。
下载破 2w+,在校生必看,《程序员内功修炼》第二版出炉
从双非到大厂,帅地写了一本原创PDF送给大家
一个帮你拿offer的校招网站
算法刷题路线(系统+全面)
作者简介:我是帅地,校招拿到过不少大厂offer,毕业去了腾讯研发岗,毕业半年整到人生第一个 100 万,目前专注于写大学规划 + 校招求职相关的内容,点击 可以了解帅地个人经历,著有个人原创网站 PlayOffer。