或许很多人也像我一样,迷迷糊糊的选了一个后来才发现不是自己喜欢的专业。选专业的时候,我自己也百度了各种专业,不过依然没什么感觉。其实一开始是自己想填选物联网的,但最后还是听从了身边的人的建议,选了电气自动化,就这样开始了大学生涯。
只可惜,到大二开始学专业课的时候发现,自己压根就没兴趣,基本靠死记硬背迎接考试。(幸好成绩也不差,学业证顺利到手。)
然而自己也清楚,不找到真正想走的路,以后就要从事自己不感兴趣的工作,这样的职业生涯并不是我想要的。(我想,这可能也是很多大学生思考过的问题——自己到底想做什么工作呢?)
幸运的是,我的专业有C语言和单片机的课程。当我接触到编程之后,它无意中就在我的心中种下了一颗种子。研究程序的时候,我找到了类似玩游戏的那种,放不下手的感觉。我觉得很神奇,自己的想法、自己想实现的操作可以用程序来表达,反过来编程的规则也在锻炼我的思维,如何做得更加缜密。
我感觉我捉住了什么,但还是不清晰。
我报考了全国计算机二级C语言考试,拿到了合格证。买了Java的基础书,也找了视频看,后来Java学到捕捉错误的时候也忘记什么原因没继续学下去。后来看到Python的书打折,又买来学,发现好像比Java简单,学了点基础,报考二级考试,然而没考过。(这也是我无形中纠结的一个问题,我到底要学哪种语言?)
我曾经以为我是喜欢单片机的,也打算走智能家居、嵌入式这条路。然而对于模电、电路,好像有种熟悉的厌恶感。当在我大四找到智能家居的实习单位、将要面对电路板的时候,我彻底明白,心里是多么的抗拒。
我毅然辞职,回校专心搞毕设。
关于毕设,因为了解过智能家居,觉得远程控制这种技术挺好玩,一直想学但没机会。所以借毕设这个机会,提前找这方面的导师商量。导师很好说话,同意给我出个远程控制单片机相关的题目,这也不偏离我的专业。
正踌躇怎么去搞的时候,和我同一个题目的同学刚好认识一个师兄做安卓方面的工作,介绍了给我。也多亏了师兄的指点,在边学边做的情况下,整整研究了4个多月,竟然搞出来了!可惜不够时间再研究云服务器,不然就能实现真正的远程控制。而最后的作品只能在内网中实现,用笔记本电脑当服务器,将单片机的状态信息放到数据库,通过服务器实现手机app和单片机的互动。
最后的答辩竟然被评为了优秀毕业设计,在此衷心感谢那位师兄!
在这里也说明一下,我说对模电、电路厌恶,并不影响我的毕设,因为毕设知道怎么开和关、什么时候开和关就行,最主要的结构是程序方面。而真正做这一行,开关只是非常浅的东西,真正的设计不懂硬件是不行的。还有这里所有我说的不感兴趣和厌恶只是本人的感受,而不是说它不好。
快乐之后,大学生活终究还是结束了,然而生活还是要继续,找工作成了我最苦恼的事。
我的简历除了基本信息也只写了在学校的表现,还有唯一一次参加的电子设计大赛获得二等奖,和我最为骄傲的毕业设计。但是,我逛了几圈学校的招聘会,发现包里的简历投不出去。
这时我才发现,自己手里什么都没有。作为电气专业的学生,对本专业不感兴趣,过了大四知识也基本忘光了。单片机拒绝了实习机会,本身也很抗拒。但是编程方面我也只会C语言和一点Python基础,单单C语言没什么好招的,Python要的是研究生。那,技术岗位我还能投什么?
一无所获的回到家,整理了一下思绪。对,从拒绝实习那会起,其实心里已经明白,自己只想走软件编程的道路。问题是,我到底应该怎么选择方向?
我疯狂的在线上招聘网寻找IT岗位,前端的,后端的,人工智能的,大数据的……能看的都看了,但是范围实在太大,自己也很多不懂,根本不可能看着岗位去找自己的方向。仿佛回到了选专业的时候。
在毫无头绪之际,我想起了我的毕设。我为什么想做这个毕设?因为想学远程控制的实现。服务器,数据库,这不是后端吗?
原来,自己曾经一切做过的,其实一点一点的帮我指明了方向。
方向明了,我C语言比较熟悉,所以选择了C++服务端方向。但了解后C++其实又和C有点不同,是门面向对象的语言,但是总感觉选择这门语言对我来说好点,就下定决心学了起来。
之后我又学了Ubuntu,在里面熟悉怎么敲代码,用C++操作MySQL实现增删查改等等。好,感觉差不多了,刚好10月份有秋招,信心满满的拿着修改后的简历去招聘会。
然而现实并不像想象中那么美好,这个时期开始,招聘会大部分面向的是2020届毕业生,而我是19届毕业生。投了几个公司,表面上是接受的,后来直接邮件回复不匹配。有一两个公司有笔试,测了笔试之后发现自己又多了一个坑要填,那就是数据结构和算法。还有一个大坑:没有项目经验。
不服输的我继续想办法。数据结构和算法,这个可以去找资料看,但是项目经验怎么办?
我在网上找服务端项目,也忘了怎么找,就决定去尝试用Skynet框架写项目。首先先学了Lua语言的一些基础,然后刚好能找到Skynet应用教程的资料,边了解边对着上面的代码在自己的Ubuntu里敲代码。资料上的代码并不是全都正确,出错了要自己解决。大致了解了一遍,就开始琢磨自己的第一个项目。
想法很简单,写个文字小游戏:一个客户端,一个服务端,一个数据库。
一开始客户端在资料上的代码上写起,用的是C语言。创建角色、查看属性和装备、穿卸装备、匹配战斗,虽然属性和装备都只是字符串,但基本功能都有了。服务端用Skynet框架写,其实也只用了创建服务、socket和连接数据库3个功能。数据库保存角色各种信息。
经过多次的调试和修改,我的第一个项目编写成功!我很享受学到新知识和解决问题后的那种自豪感,这也是我能坚持的重要动力之一。
然后又觉得差不多了,就立刻在招聘软件上投简历,成功收到了两家公司的面试邀请。我带着再次修改后的简历去面试,还有一本本的笔记,面试前可以复习一下。
可是,这几个月学的东西实在有点多,笔记中的内容可能只有一半能记得住。在其中一家公司面试的时候,笔试我是写满了,到了面试,面试官问的多的不是项目,而是C++底层的知识,还有数据结构。当他问我Linux知识点的时候,我以为我这个月都在Ubuntu中敲代码应该会熟悉点,谁知问到gdb调试我竟然答不出来,这个笔记上有的,也背过,就是在那时记不起来,还有网络基础的几个问题也是。面试失败了。
另一家公司直接发了个笔试题目过来要求我先做笔试。笔试都是编程题,基本都是考数据结构。而且7道大题,全部用代码写几乎不可能,我注意到他说能用伪代码写,我当时懵了,什么叫伪代码?后来笔试完查了才知道,伪代码就是用基础的结构和汉字去写代码怎么实现,不用写具体的代码。没办法,当时只写了三四道题发了过去,之后就没消息了。
之后闲着没事,我把客户端用C++重写了一遍,这次加入了注册登录功能,属性和装备不再使用字符串,取而代之的是用上了类和多态,发现好了很多,像攻击后流血的效果也能实现了。而且用上了git,每天的进度都上传到了GitHub。服务端和数据库也相应修改了一下。最后自己对这个项目是挺满意的。
再投了几家也没消息,可能接近年底不怎么招人了。我开始慌了,不知道如何是好。正当我慌乱之际,疫情爆发,只能呆在家中,也临近春节,给了我缓口气的机会。
我不知道怎么办,别的同学已经拿了几个月的工资,而我在家吃父母的米,老人家也在担心我。唉,先过个年再说吧,虽然这年过得真不太踏实。
我看着自己一本本的笔记,还有些没打印出来的笔记,还有不计其数的修改又修改的简历,我很不甘心。难道真的要放弃去找别的工作了吗?自己拼命努力的成果就这样丢弃了吗?
父亲一开始是不赞同我跨专业找工作的,我跟他吵过,最后他说怎么都有个度,他给我一年的时间。我想了想其实也有道理,但当时我对自己很有信心,因为制定好计划了,说最快年前就能有工作。然而最后是重重的打了自己的脸。后来他看到我真的那么努力也没唠叨什么,但是现在轮到自己担心自己了。
时间不会因为我的无助而停止。年后我又给自己打打气,重拾自己的笔记,在网上继续找新知识学习。
之前学的是C的进程和线程,然后又去学了C++11的多线程的基础,原来C++也是可以像C一样写进程和线程,只是有点不同。又找了epoll来学,摸索着写了个聊天室服务端的小项目。接着又将目光转回数据结构,也自己尝试写了个除余为哈希函数、链式解决冲突的哈希表。
奇怪的是,疫情后投简历的感觉和疫情前投简历的感觉很不同,之前没学那么多,投了基本都会有回应,现在虽然到处都说助力招聘会,视频面试也解决了不出门的问题,但是目前为止我投了那么多,都没什么回应,况且我简历还多了点东西。
到底是我的问题,还是真的难找?
慌乱之际,想起了Go语言,听说C++容易转Go,也挺火的,又去学了Go,除了面向对象的一些知识,C++学的也基本能用Go实现,感觉像是升级版的C语言。但发现Go好像招的大都要工作几年的,很少会招新人,所以现在学了也不知道有没有用。
正所谓“金三银四”,现在三月已经过去,可能确实3月份招人的要求会高点,那就只能期待四月能给我机会吧。
我真的很不想放弃,因为这是自己喜欢的工作,我会继续努力为可能到来的面试做准备,也不清楚下一步要做什么,就尝试在社区里整理自己的某些笔记当复习。如果有幸能有网友阅读到此博文,我也希望会有前辈可以指点一下我这个不知所措的后辈,谢谢!
有疑问加站长微信联系(非本文作者)