为什么成为一名程序员?

好久没有写感悟类的文章了,本来考完研就打算写一篇文章,对大学四年做一个“复盘”的,但复试被调剂了,难受了很久,之后也实在没什么由头写。在岁末年初前夕,我终于不打算再拖沓了,准备好好整理一下,做个纪念。一方面,审问一下自己的初心,整理一下思绪;另一方面,思索未来的方向,慕然回首时,不回因碌碌无为而羞愧。

初次接触

我和程序的渊源,最早可以追溯到小学。

上的小学是我们县里最好的私立小学,当时还很潮,有微机课。现在回想起来,还记得上课时要穿鞋套才能去机房,调皮的男孩子扣出鼠标里的轨迹球当弹力球玩。那时的微机课学了好多东西,但到现在我记得最深的是老师在一个框框里演示一个小乌龟爬呀爬,画出了各种图形,那个框框老师说叫Turtle。之后老师让我们自己操作,我照着书敲击键盘,画出了圆形、方形,三角形,很有成就感。当时的我根本不知道在做什么,等多年以后我在python里发现了turtle库的时候,猛然如雷击,这竟然是在编程?

后来初中为了考计算机等级,学了excle,里面的函数有求和、取平均,最大最小,甚至还有if-else结构,其实这也算是编程了吧。

上了高中学习压力大增,虽然学校也有微机课,但只在高一上过几节,讲了一些计算机基础和剪辑视频。后来了解到当时高中重点班里就有一些学霸,在搞NOI(信息学奥赛),他们在高中应该就学完C语言和数据结构了,听说在南方这很常见,但对我们这些北方小县城的学渣是不敢想象的。

选择专业

高考算是人生第一次重要选择,我高考成绩很差,理综考了有史以来的最低分(17年理综生物的一道道横线永远也忘不了),只能上一个二本。那时候,知乎和B站还很小众,没有这么多专业选择的文章和视频。家里也没有走出小县城的人做指导,我只能靠那本学校发的一本全国高校分数线的书,按图索骥,找和自己分数匹配的学校专业。当时大部分选择还是省内的学校,那就找找合适的专业吧。我开始选了一堆土木工程、机械工程、自动化,爸爸看了看,紧锁眉头,问了我一句:你以后想去工地还是去工厂?啊这,我想了想我自幼体弱多病,也不爱运动,肯定做不了体力活。看了看剩下的还有计算机、数学、统计之类的专业,家里一位当老师的大姨说可以学学数学,但我又想到我高考刚一百出头的数学成绩,学了数学岂不是会被累死?最后权衡之下选了计算机科学与技术,现在回想起来,还挺好玩的,计算机并不是当时的首选项,如果当时选了数学或统计,研究生再转计算机,又会是怎样?

可惜没有如果,最重要的一次人生路线,我就这样阴差阳错做出来选择,去了离家开车只需要两小时的一所财经类高校,庆幸学校重视计算机,计科专业是国家特色专业,老师和学校也尽力提供了各种资源。我怀着对大学生活的憧憬度过了暑假,终于等到了开学。

大学生活

大一刚开学,我就像逃出笼中的鸟儿,参加了好几个社团,本想着终于开始自己丰富多彩的大学生活了,但社团活动就是无聊的签到和开会,后面我也不想去了,一有空就在宿舍躺着完手机。如果我一直这样下去,可能就真的废了吧,但我的C语言老师改变了我。我的C语言老师当时对我们非常严格,期末成绩由三次上机考试分数组成,有一次不及格,直接挂掉。每次上完课后都会在Online Judge上布置作业,如果系统判断是抄袭,也是直接挂科。在这样的重压下,我们不得不认真完成作业准备考试,有时为了完成作业,整个宿舍写代码到深夜。不得不说,严师出高徒,我在OJ上练习多了竟然也对写代码兴趣愈发浓厚,简单循环加判断的组合竟然能解决这么多问题,每次练习AC了就很开心,WA了就抓耳挠腮。后来学院ACM集训队招募队员,我通过了选拔,开始了算法学习。

在ACM集训队学习期间,晚上就是刷算法题,周末参加线上的比赛,假期师哥们讲解算法。我当时整体做题补题到自闭,看着周围同学都能很快理解题意码代码,我一遍遍怀疑自己是不是智力缺陷。有很多同级的同学崭露头角和师哥们取打省赛、区域赛,也获得了很好的名次,说不羡慕是不可能的。后来我也明白自己没有竞赛的天赋,索性就当学习吧,就这样给大佬们当陪读,学了些数据结构、图论、动态规划、搜索算法等。ACM比赛带来的抗压能力、代码能力、算法理解力、思维缜密度这些是最珍贵的。我的博客最早也是写算法题题解的,想来这也算是ACM带给我的好处——整理知识、分享知识。不得不说,那些一直参加ACM的同学毕业去大厂的真的不少,阿里字节都有。今年毕业时,我校ACM队终于拿下了省赛金牌,后生可畏啊!

到大二时我选择了退出,选择了另外一个学习计算机底层的实验室。当时实验室的学习任务是在Linux上做一些汇编实验,用的是CMU的CSAPP上的实验,里面的汇编拆弹让我一步步了解了程序是怎么在内存中执行的,很nice!大二开始学C++、Java、操作系统、组成原理,我也可以搞一些事情了。当时我每上完一节课,就对着课本整理笔记放在博客上,最开始只想着自己回顾的时候方便些,后来有越来越多的网友阅读,也有不少在下面评论的,我像得到了正反馈一样,越来越有干劲了。就这样我整理完了算法设计与分析C++Java数据库组成原理操作系统图形学等的专栏笔记,随着学习的投入,我的成绩排名也保持专业前列。

大三的时候我准备考研,或者说本来就是打算读完本科之后就继续读研,一点去工作的想法都没有。一方面觉得自己本科学校不好,想要考研翻身给自己和父母一个交代,另一方面也想和一直异地的女朋友在一个城市生活,所以最终选择了考研。虽然计科专业毕业找工作确实不难,但在我们这个二本学校里面考研风气确实很浓厚,我们或主动或被裹挟这进入了这场竞争。我报考了一所中上211的计科学硕,因为数学成绩太差,压着分数线过了初试,最终还是在复试上折戟沉沙,惨遭调剂。经济下行,人人又想要更好的待遇,造成了考研浪潮愈发高涨,21年375万报考人数,22年457万的报考人数,考研这条路无疑会更加艰难。也是伴随着考研复习,我深刻体会到“内卷”的含义,最直观的就是我的成绩放在以前是稳稳会被录取的,我们比其前几届师哥师姐无论是就业还是考研机会都越来越少。

现在我也在反思,当时选择去考研正确么?如果一开始目标就是工作,继续留在ACM集训队学算法,或许也能在毕业拿到大厂的offer。这次的选择时间或许会给出答案,现在只能说是初心虽不乱,但依旧未明。

关注我的很多都是大学在读的学弟学妹,这里我也有一些建议给你们:

明确目标,尽早做好未来规划

因为我自己在这方面吃了大亏,所以这也是我最想要说的。有人觉得人生是不确定的,计划赶不上变化,规划反而会限制自己。但我想但今时不同往日,内卷加剧的社会对年轻人越来越不宽容了。我们或许看不透遥远的未来,但做好局部最优的贪心一定不会错。

拿计科专业的学生来说,我们毕业可以去考公考编,去读研究生,去进企业工作。那为了实现这些目标,我们不妨从大四6月毕业倒着来回顾一些时间点都需要准备什么,考研的同学要在大三下学期和大四上学期复习完数学、英语和408等专业课,在大一大二认真学高数线代概率并且通过四六级考试;考公考选调的同学从大一起就不能挂科,有的还要参加组织活动成为班委团委负责人,完成组织考验入党员或预备党员;准备工作的同学,秋招想要得到理想offer,大三下最好就要去企业实习,大二开始就要刷算法题,学着做项目,到秋招有拿得出手的比赛奖项、实践经历。

切忌朝三暮四,我身边就有朋友既想随大流去考研,又准备想找工作,家里还给安排考老家事业编,到了最后什么也没得到。

扎实基础,提升自学能力

毕业前,我问过我本科学院的院长:我们该如何提升自己的竞争优势?院长和我说要形成自己的“知识壁垒”。何为“知识壁垒"?就是掌握的技术本领范围比别广,内容比别人理解更深刻。这一切的形成都离不开基础,就计算机科学与技术而言,一面科学,一面技术。科学就是老师教授的从离散数学、数字逻辑、计算机组成结构、编译原理、汇编、操作系统到计算机网络,这一条从数学原理开始经过底层硬件到应用系统层面的计算机运行原理。而技术则是利用已有的工具(这里的工具可以是高级语言,框架,算法、编辑器,API等),去实现各种需求。科学是技术的基石,技术又不断倒逼科学的演进,二者相辅相成。

对本科生而言,当然不可能都掌握的面面俱到,但首先要对这么学科有一个清楚认识,在理解计算机是怎么工作的?程序是如何运行的?网络是怎么链接的?这些问题后,把重点放在数据结构与算法计算机组成原理操作系统计算机网络数据库原理面向对象编程(Java或C++)上,这六门是计算机专业最核心的课程,既是考研初试复试必考内容也是校招求职考察的基础。至于该怎么学,我想如果学校老师水平可以,那最好还是跟着老师上,记好笔记,毕竟这是上课讲的内容,不学也是浪费时间,还要应对考试。但也有的老师拿着十余年不变的教材来糊弄学生,说实话上这样的课没有益处甚至有害,那不可如能翘就翘,B站上资源那么多,跟着B站学也是可以的。当然这要有很强的自学能力,如果中学时代就是被动学习一路走来的话,必须要培养自学能力了。我看到过很多同学说要一起晚上去图书馆学习,到了图书馆,书没有翻几页,就忍不住掏出手机刷着抖音微博,等要回宿舍了感叹太难了学不会。是真的学不会,还是不够自律,畏难呢?

谈恋爱,双向奔赴才有意义

有时候我甚至觉得我活到现在最值得庆幸的是找到了人生的伴侣。我的女朋友是高中同学,恋爱算是高考完才开始谈的,一直到上研究生现在也在一起五年了。我们两人大学期间因为异地隔着580公里的距离,大三她还出国交换一年,所以相处机会倍加珍惜,一到节假日我们就去旅行,本科四年基本将省内的城市都逛遍了,寒暑假回到我们的小县城。平时主要交流是打电话,每天睡前一起聊天一起打游戏,也和我们各自的同学一起玩,前段时间我想不起本科同学名字了,她倒是记得,直接回我一句:xxx是你同学还是我同学啊?让我哭笑不得。

有人说现在的大学情侣就是“酒肉情侣”,两个人在一起就是只能吃吃饭,打打游戏,旅旅游。一旦遇到什么更深层次的现实问题就会产生矛盾,比如工作、异地、结婚,触及金钱利益等。确实如此,我身边就有朋友一上大学就移情别恋抛弃高中时的对象,也有大学期间四年谈了四五个女朋友的海王,还有人人都称赞的模范情侣传出毕业分手的消息。或许是越来越浮躁的风气,让爱情变得越来越廉价,找的不是共度余生的伴侣,而是填补欲望的躯壳搭伙过日子的人。

恋爱啊,加上现在愈演愈烈的女拳反女拳对立,太复杂。这里我只说一下我的爱情观:

  • 恋爱的双方是对等的,要互相尊重。男生不要有大男子主义倾向,女生也不要太依赖男生。
  • 交往中矛盾摩擦不可避免,双方是要找出问题,共同解决,而不是把彼此直接当成问题本身。
  • 爱情更多的时候是一种责任感,既要为自己负责,对得起自己的本心;也要为对方负责,受得住忠诚。
  • 双向而默契的付出,包容理解对方的忙碌,不要太计较对方偶尔的疏忽
  • 在学业和工作中共同进步,不断提升,成就彼此;在学识 相貌 背景上都契合。

初入江湖

由于从本科答辩结束到研究生入学中间差不多有四个多月的时间,我想要不找一份实习工作吧,进入职场,接触一下社会。于是从三月初,我和另外一个考研上岸的同学龙哥就一直在关注相关的实习岗位,由于会点Java和Python,所以找的也都是相关的开发岗。中间也参加了学校里的春招会,用人单位一听是我们是计算机专业的都挺热情的,但听到只想实习三个月又纷纷摇头。找来找去,一家分部在本地的数据公司说是招聘Python实习生写爬虫,给我们抛来了橄榄枝。因为毕业设计做的是电影推荐系统,为了获取电影数据,用Java写了一个爬虫采集了豆瓣四千多部电影,所以爬虫知识多少会点,就是Python没怎么用来做项目,心里还是有点慌,但还是选择去看一看。HR给安排了面试时间,我们俩坐公交从学校出发,横跨了三个区倒了两班公交车,到公司去面试。

未完待续。。。

 

posted @ 2021-12-31 08:58  王陸  阅读(5056)  评论(57编辑  收藏  举报