大一大二学“废”,大三大四学会

2022-05-25 08:18耳东
大学生 2022年5期
关键词:数据结构学期代码

耳东

我,程序员一枚,2017年从山东大学计算机毕业,先后在创业公司、互联网大厂做高级研发工程师。今天写下这篇文章是想跟大家分享一下我大学时的心路历程。

其实读大学之前我完全没想过自己会学计算机,当时房地产挺火的,我曾想要不要去学土木建筑等专业,后来听一位亲戚的建议,选了和“电”“科技”相关的专业,电气工程、计算机、软件工程都曾考虑过,最终去了山东大学软件工程专业学习计算机。

大一的我一直在纠结一件事情:要不要转专业?为啥我想转专业呢?因为实在是学不懂啊!大一一开始,学校就开始教《程序语言设计》这门课,当时教材是以Java作为语言来授课,我全程两眼一抹黑,整个一学期下来我只学会一句System.out.println(“Hello,World”)。还记得当时每次上完课回到宿舍跟室友说过最多的一句话就是“今天又是毫无收获的一天”。

大一时,不仅跟计算机相关的课程,还有高等数学这门课,我也学得特别菜。本来我高中数学挺好的,不知道为啥一到大学立马歇菜了,变得学不懂数学了,高数学不好,编程学不懂,双重打击差点给我整抑郁了。

身邊陆续有同学转专业成功,比如我们班有个兄弟从计算机转到了化工,还有个兄弟从计算机转到了电气工程。当然,也有编程学得特别好的,人家也是付出了非常多的努力的,这后来也让我有许多反思。

度过大一这一年的“菜鸡”生活,转眼就到了大二,我依然在计算机专业里混日子。虽然一直想转专业,但是我实在不知道往哪儿转,以及我的专业课成绩实在不足以支持我转,就这样我依旧在计算机专业毫无收获地上课听天书。

大二这一年我们开始上《数据结构与算法》这门课了,对编程有了解的人应该都知道,很多人都很怕这门课,因为不是很容易学懂并且运用,当然我也不例外。

我依稀记得当时大二第一学期一开始,我决定重振雄风认真听课争取学懂编程,没过几天数据结构这门课就让我彻底忘记了起初的决心。刚开始学线性表我还是能听懂一点点,但是做作业时我连题目都看不懂,更别说上手写代码了。什么排序、查找、二叉树,我确实明白是啥意思,但是代码是真的写不出来。

大二这一年是我非常迷茫和焦虑的一年,焦虑到啥程度呢?晚上翻着知乎上很多学习编程的建议就更睡不着了。因为看着别人学得很好很系统,还能找到好工作,有的还能去大厂实习,结果自己都大二了还啥都不会,也没做过项目。

但是很快,我的人生转机来了。

大二暑假,我的一位同学打算去他亲戚家的小软件公司实习,我当时问他:“你跟我一样啥都不会,还去实习?”他说:“反正也是闲着,就去学学呗,自家亲戚,你去不去?”我一想也对,就去了。

刚实习那会,我依然是啥都不会,但总不能啥都不做吧?于是我从网上找了一套Java视频开始学习,希望能够早点开始干活。

我就这样跟着视频一行一行地敲代码,从最简单的输入输出开始,老老实实地敲代码,遇到问题就去网上搜索。可能是因为压力驱动,也可能是因为假期没有其他事情的干扰,慢慢地我发现我可以看懂一部分代码逻辑了!曾经我对编程几乎处于放弃状态,但是现在居然可以看懂一部分了!虽然现在回头看那只是入门都算不上的能力,但在当时却极大地增强了我的自信心,驱使着我往下学。

我跟着视频陆续学习了面向对象、继承多态、多线程、网络编程等等。那段时间很充实很快乐,因为每天都在学习新的知识点,学到的东西可以马上都写成代码得到验证。

学完Java课程后我跟着课程做出来了一个完整的项目,当时做的是坦克大战。之前费了很大的劲儿都写不出程序,但是老老实实学完一套课程,以及做出一个项目之后,我觉得我入门了。

那个暑假过后,我对编程和计算机不再那么抗拒,也对写代码产生了兴趣。

经过大二暑假的锤炼,大三过得很顺利。大三我们开始学《数据库》这门课,课程设计是做一个增删改查系统,这是我自己独立做出来的第一个课程设计,也是最有成就感的一次。

记得当时是直接用Java连SQL Server,用Swing做界面,虽然只是简单的增删改查等功能,但我从零到一完成了整套项目。在这个过程中我自学了很多新东西,比如学习SQL,自己封装简单的ORM库等等,也克服了之前写代码的恐惧。

印象最深的是处理一个配置SQL Server的问题,当时它困扰了同专业很多同学。我上网查了很多资料,然后总结出来一套解决办法,那段时间我经常“流窜”于各个宿舍帮同学们解决配置以及一些其他的编程问题,一些编程技术不错的同学都对我刮目相看了。

努力不会白费,最终我的课程设计得了高分,我也从写个“Hello,World”都费劲的学渣变成了可以帮人解决技术问题的学霸。

大三第二学期,要开始找实习工作了,当时依然很菜的我要开始好好做准备了。通过在网上了解,我大概知道了计算机应届生找工作的时候基础知识很重要,于是我找了很多操作系统、计算机网络、数据结构算法的资料和书,准备重新好好学习一下之前荒废的知识。

这里重点说一下我重新学习数据结构与算法的方法,其实很简单:我把《数据结构与算法》课本上的代码部分,从头到尾敲了一遍,没有什么特别,就是老老实实把课本上的例子在电脑上敲了一遍。

过程很艰难,但是结果很不错。一开始经常出问题,比如方法抄错了、少写了分号等各种低级问题,时间长了越敲越顺,而且一边敲一边理解,最后数据结构中的链表、二叉树、堆、栈、图、排序、查找等等代码实现我都熟悉了,然后就刷《剑指offer》,这本书大概刷了两遍。

在把课程都重新学了一遍后,我开始找实习。但是此时有个非常困扰我的问题——我该投什么岗位的简历?前端、后端,还是算法?

于是我去搜了各个方向的就业和岗位要求,大概了解到当时(2016年)前端正处于蓬勃发展的阶段,Vue、React技术栈以及前端工程化正进行得火热,于是我决定走前端方向。

随后我开始学习前端的东西,从HTML、CSS、JavaScript开始,然后是学习Vue,项目我都是从GitHub找的。找实习的过程也是一言难尽,大厂基本都挂了,面试中还经常被鄙视。

最难忘的是我去某个公司面试的时候,面试官看了简历先问我会不会Promise,当时的我完全没听说过,只好承认说不知道,面试官听完后投递来一副鄙夷的眼神,令我至今难忘。

类似这样失败的面试有很多,但是当时的我没有时间去悲伤,因为我知道自己的实力不足,所以只有在每次面试之后总结得失,不停地补齐自己的能力短板迎接下一次面试。

大四的我基本都是在校外中度过的。我去了一家创业公司实习。当时的我手握两个实习offer,一个是这家创业公司,一个是阿里体育。因为当时我觉得创业公司给人的感觉非常好,而且实习待遇会高一些,所以就去了。

实习的时候就是不停地学。刚开始的时候“菜鸡”如我连webpack都不会配,装node环境都要装好久。不过可能是压力带来的动力吧,我很快就掌握了工作中需要的东西,并且可以开始独立做事情。后来因为实习期间表现出色,还获得了最佳实习生奖。

计算机是一门实践科学,最重要的是多动手,代码都没写过几行就想学好编程,你想想你站在岸上能学会游泳吗?

顺利转正后,我留在了那家公司。当时薪资还不错,在2016年月薪就有1万6,算下来年薪20多万,这在五六年前确实是不错的应届生薪水。

如今回头看,虽然我的大学过得不够出彩,但是我的失败经验和教训还是可以分享给大家的。

大二暑假之前我也尝试着去学了一些东西,但是现在看来当时动手操作得太少了。学编程一定要多写,把书本上的代码例子自己手敲下来,然后可以按照自己的想法去做改动,遇到问题就去搜索。计算机是一门实践科学,最重要的是多动手,代码都没写过几行就想学好编程,你想想你站在岸上能学会游泳吗?

如果你现在在苦恼为什么写不出来代码、编程能力不好,那你应该反问自己写过多少行代码、解决过多少bug?

学编程,就老老实实多写代码吧。做个聪明人,但是要下笨功夫。

曾经我也纠结过,学Java好还是C++好,好像安卓开发也不错。但是说实话,如果我当时从这里面任意一个方向深入进去,早点开始学习做项目,结果应该会比现在好很多。

所以学习编程前可以找懂行的人多问问,看看前景如何。但是一旦你定下了方向,就不要纠结了,好好学就是了。

总的来说,当前有越来越多的人进入到互联网,录取计算机研究生的分数线每年也越来越高,人多了那么面试要求也高了,我作为面试官可以很明显地感受到校招生的简历、能力、学历等条件逐年在升高,那么作為计算机专业的学生,该如何应对这种越来越“卷”的就业形势呢?

首先你可以提前实习,因为校招的时候大部分公司都希望你有一定的实战经验,作为学生最好的获取经验的渠道就是去实习。正常来说应该是大三才去实习,但是如果想笨鸟先飞的话,我建议大二就尝试着投递实习简历,但是注意别去那些血汗小公司,尽量去有人可以带你的公司。就算你面试实习没过,也没关系,你还有大量的时间可以补齐短板,并且真实的面试经验也可以让你调整自己的心态,提前了解到学校里学的东西和面试要求之间的关系和区别,更有利于你大三找实习和面对正式的校招。

其次注意校招实习、正式招聘、签offer的时间节点,曾经我以为大部分学生应该都很清楚这个时间节点,但是后来接受了一些学弟学妹的咨询后才知道很多人并不清楚。以主流的中型大型公司为例,大规模招实习生的时间节点是:大三的第二学期中旬,也就是4月份左右就开始招聘暑期实习生了,这一阶段招实习生的规模最大最集中。大规模校招的时间节点是大三第二学期开始(秋招)和大四的第一学期(春招)。秋招的时候是大量地招聘正式员工,也就是提前把正式员工的offer发给你,提前把你锁定了。春招的时候相当于补录正式员工,也就是秋招没招满的话,春招会继续招,所以春招的规模和数量都不如秋招,一定要把握好秋招。虽说大学本科有4年,但其实从大三第二学期秋招就开始了,所以让你好好学习准备的时间其实只有两年半,这么一看时间还是很紧迫的。

责任编辑:陈思

猜你喜欢
数据结构学期代码
新的学期 新的尝试
期末冲刺高二上学期期末模拟卷
创世代码
创世代码
创世代码
创世代码
“翻转课堂”教学模式的探讨——以《数据结构》课程教学为例
TRIZ理论在“数据结构”多媒体教学中的应用
《数据结构》教学方法创新探讨
ACT和SAT的几个区别