又是一年毕业季,我开始迷茫了

2020-06-22 05:52:11 +08:00
 mason961125

身处一个师范院校的电子工程专业,而我的兴趣却又是编程。


当初高考填报志愿的时候,本来想着是上个师范院校,考个教师资格证来为自己的未来兜底,至少有条退路去当老师,所以就报了我院的物理师范专业(我院有一个物理师范专业和我现在的这个电子工程)。但是渐渐的我感觉我还是不适合学基础学科,在学物理的时间里,力热电光原这五个普通物理都是一直在学习、做题和考试中循环,根本感觉不到任何的乐趣,而且自己对于以后当老师的愿望也越来越淡。一个恰好的机会,我得知我院一个老师带了一个团队在做机器人,每年参加全国的比赛,我想着自己本身编程的技能也还可以(大概从初中开始就学 C 了,后面陆陆续续的也写过一点小玩意儿,Win32 也写过,MFC 也折腾过,后来还和人一起用 Go 写过些项目,基本的数据结构和算法都差不多会写),所以我就自告奋勇的去问能不能参加一下。当时那个团队里有一个和我关系比较好的学长,他知道我编程还可以,所以经常跑来问我一些编程的问题,于是我顺利的加入了团队。当时我还是挺开心的,毕竟能做自己喜欢的事情,谁不开心呢,但是我却未曾料到,这是一个坑了我三年的地方。

我加入的那一年,是他们开始这个比赛的第二年。这个机器人的比赛,主要的研发任务有两个部分:机械设计和电控。第一年的时候,基本上所有的成员除了老师之外,都负责的是机械设计部分,毕竟学会 SolidWorks 和 AutoCAD,都是能画出来你想要的东西的(能不能用和好不好用先不谈);电控部分则是带队老师自己用 C51 写的。我后来才得知,第一年他们去参赛,那个底盘是一个四轮传统底盘(轮子就是常见的橡胶轮,每个轮子一个电机),只能前进或者后退,走个直线都歪歪扭扭的。我加入之后要做的自然是电控部分了。当时我会的只有软件编程,涉及到硬件的知识,除了基础的电路知识外,其它一概不懂。那么接下来就只能硬着头皮学了。进去的首要任务就是做一个新的底盘,他们选择的机械方案是三轮全向轮底盘,每个轮子 120°夹角,通过改变三个轮子的转速,从而实现全向移动。那么问题就来了,怎么控制呢?就只能跑去看别人怎么做。和别的学校交流之后才知道,人家都是用 STM32 做控制单片机,那么好嘛,STM32 学起来。起初接触单片机的时候,网上的教程全部都是各种读写寄存器的教程,对于一个用惯了函数调用 API 的人,简直是降维打击,不过后来也还好,STM32 的官方库更新了,也是函数调用式的 API 了,也有了一个能够帮你根据参数设置初始化一个工程框架的东西,心智负担低了不少。那么接下来就是无尽的学习、验证、调试、修改的循环。其间学了各种各样的外设,什么电磁阀啊、继电器啊、步进电机啊、直流无刷啊等等;以及各种各样的通讯协议,什么 UART,SPI,I²C,CAN 等等;然后还补了补数模电的知识(之前在物理那边学了,但是学的不咋好)以及最基础的控制算法,类似 PID 之类的。最终是凭“一己之力”搞完了电控。为什么是一己之力呢?前文我交代过,去年他们都是做机械设计的,没人写过代码,好嘛,今年上了 STM32 之后,他们更是顶不住了。不是说他们不学,而是他们学不动。面对几十上百页的 datasheet,他们看的一头雾水;面对全英文的 IDE 和工具,他们用不明白;之前的 C 学的也不咋样(纯粹是老师教的不行,此处卖个伏笔,后文详细说)。综合这些因素,让他们在半年时间上手一个单片机,其实挺困难的,不过也许是因为我过于责任心强,大包大揽的把开发任务都自己接了(主要是时间挺紧张的,如果让他们写一遍,最终写出来的不能用,还是得我擦屁股)。所以才有“一己之力”这个词。虽然最后是完成了今年的题目,但是和别的学校相比差的还很远,毕竟只是个师范院校,主力开发也就一个人,电控不专业,机械设计也不专业,能做出来其实我就挺佩服的了。你要说前面这些让我崩溃,其实还没什么,真正让我崩溃的是在赛场上。面对各大 985 高校的作品,这个技术代差,犹如别人已经在用 3900X 了,你还在用 386 。再加上之前用 OpenCV 写的视觉识别程序在树莓派上经常出问题,所以在某天下午调试的时候心态就崩了。那一刻说实话,真的想买张机票回家,眼不见心不烦。但是崩溃又能怎样呢,最终还是要上场的,那么就只能硬着头皮去改了。第一次比赛就这样结束了。

第二年,去年的老队员都去考研了,所以需要招募一批新队员,同时我也接替了队长这个职位,同时兼任电控组组长。同时我也和院里商量转到电子工程专业,院里也挺爽快,就直接转了,不过要多上一年大二,补一下之前的学分。于是今年,我痛下决心,一定要逼着他们学。但是,理想总是美好的,现实总是骨感的。前面说到,当时团队里老队员都走了,留下来的基本都是和我同级的电子工程专业的学生,以及新招募的大一学生。大一学生就不说了,毕竟刚来什么都不会。那么大二的呢,从大一开始算,也就学了 C 语言和基础的电路以及数模电,其他的知识基本上是 0 。你说这 C 语言如果学的不错,那也挺好,我把一些重复性高,技术性不那么强的东西扔给他们写倒也没事,但问题就是,他们 C 语言老师,和上一批退休的队员的老师是同一个,教的那叫一个水啊。所以当时我才明白,这个专业教 C 的目的是什么?是过计算机二级,毕竟那个时候二级和毕业是挂钩的,不过不能毕业。其他的东西呢?能过二级了还学那么深干什么。至此,我是真的佩服的五体投地。虽说电子工程专业的学生,不需要像 CS 一样能够那么熟练的写代码,但是最基础的 C 总该还是要学会的吧。后来我问了问,学 C 学了些什么,说学了 C 的基础语法,然后做课后习题,以及偶尔会让写个程序交代码。看着还行是吧?其实一点都不行。大部分人学完了连头文件和源文件的作用都分不清;也没有写过多文件的工程;代码格式稀烂,日常没有缩进,自己写的东西自己都看不懂。到这里,我心想,今年怕是又凉了。果不其然,那年的题目是四足机器人,这...好吧,流程差不多又和去年一样了,就硬着头皮上吧。但是去到赛场之后,即使出问题再多,也不会像之前那样,心态崩溃。倒也不是说放弃了,其实是对于整个团队的水平有了个清楚的认知,知道自己到底是个什么水平,也就处之泰然了。

今年是我在这个团队第三年,由于疫情的关系,本来应该在六月的比赛已经无限的延期。自己也因为学校突然的开学,在一个月时间里忙着赶一个学期的学习任务。接下来,我也要面对考研了,所以后面我离开后,这个团队能不能继续,也是个未知数。我有的时候在想,我当初如果不来这个团队,把时间花在别的和编程相关的地方是不是更好?但是这三年的经历,我学习到的东西也不少:学会了至少一款单片机;能够看懂各种器件的 datasheet ;会用各种协议与外设沟通;画个带单片机的 PCB 等等。猛然间发现,自己现在会的东西,和自己想要会的东西,开始越来越远了。虽然期间也没有放下软件相关的东西,写过 Node.js ,写过 Go,弄过 Docker,路由交换也能搭个网络,Linux 日常也在用。看了看和软件相关度比较高的硬件开发工作,比如嵌入式和单片机之类的,都是门槛高,加班多,工资低;看看互联网,虽然加班多,但是门槛没那么高,工资也相对做硬件又高不少。

看着人家毕业了,我面临着考研。我在想,我如果这次考不上,那么接下来该怎么办呢?去找互联网的工作吧,四年都没做过比较像样的项目,GitHub 拿不出手,而且因为考研也错过了实习;去找硬件开发的工作吧,0 经验入职,又是一个天坑等着我。毕竟不是后浪,家里因为变故还欠着银行钱,不能家里安排好接下来的路,家里能不能过得好一点还是得靠我。

最后放一张图纪念一下我这掉坑的三年吧。

6459 次点击
所在节点    程序员
47 条回复
mason961125
2020-06-22 07:03:41 +08:00
后来想了想,我好像想的有点多。考研能考上就上,考不上就去工作,能找到工作就行,后面再努力换。
yuzo555
2020-06-22 07:35:52 +08:00
加油,大部分双非院校的这种团队就是这样的,基本上是混项目,甚至骗经费的,老师也不上心的那种,参加这种比赛也根本没打算赢,所以也就不会去了解行情。

如果都到你说的这种情况,老师还不想着去改变,那你根本不必担心这个团队,有些东西存在,就是为了存在而存在。就是因为别的学校有,那我们学校也得有,谁都没上心。
catch
2020-06-22 07:39:07 +08:00
0 基础的转行的多的是啊。 就是累点
mason961125
2020-06-22 07:45:08 +08:00
@yuzo555 #2 哈哈哈哈其实我还是挺开心的,虽然没拿到奖,但是学校出钱学了东西也挺好的。就是对考研没信心,自己从小都不是适合考试的那个类型,而且从心里也不是特别想考研,但是家人挺希望考研的。
mason961125
2020-06-22 07:45:44 +08:00
@catch #3 倒也不是 0 基础,就是这种高不成低不就的情况很难受。
wy
2020-06-22 07:56:59 +08:00
强力学习一个方向,找个差不多的工作足够了。在扭螺丝之余,提高自己的计算机基础知识,巩固基础。论考研,我考了某头部 985,但如果让我重回大三,我一定不考。与其在学校里做 3 年垃圾项目,不如在公司带薪学习。
peachpeach
2020-06-22 08:00:42 +08:00
喜欢啥。就去做就行了。

想那么多都不一定对,因为你根本没有看到客观事实。

好好加油,那么年轻怕什么。
iQXQZX
2020-06-22 08:14:56 +08:00
@wy 真的假的。疫情居家备考 ing
mason961125
2020-06-22 08:16:20 +08:00
@iQXQZX #8 我不想考研的一个原因,也是朋友经历了和他一样的事情。跨考计算机,刚进去就接手某国企的 Flutter Android 项目,一股搬砖换学历的气息。
WildCat
2020-06-22 08:28:44 +08:00
我来点正能量:

- 过去: 专科生,财经类院校财务类专业: /t/116356
- 现在: 在 Tier 1 公司打工 :)

Follow your heart,兴趣是最关键的。因为你有兴趣才能去深入研究技术和原理,才能用自己努力过的经历说服面试官录取你,无论是考研还是工作。当然这个过程十分辛苦,十分缓慢,要么坚定走下去,要么选一条公认的“轻松”道路比较好。

比赛这个事情,很多时候头部奖项都内定了,重在参与就好。当年有一个一起参与编程比赛的小伙伴,受我的影响,从金融工程专业,考到北大金融与计算机交叉专业的硕士,后来又去 top 20 的大学读博士了。

事在人为。
xyjincan
2020-06-22 08:34:03 +08:00
很好了,物联网方向也不错啊
mason961125
2020-06-22 08:51:24 +08:00
@WildCat #10 谢谢鼓励。点进链接看了下,我竟然是认识 @RIcter 的...
jorneyr
2020-06-22 09:06:15 +08:00
殊不知,你是多少学弟学妹学长学姐的偶像呢!
cyiwei
2020-06-22 09:07:19 +08:00
起码还有的选,不错了。
2379920898
2020-06-22 09:15:50 +08:00
你这个可能比 AI 更冷门,和陡峭。。你在学校不学 JAVA 吗 ,学了 JAVA 不愁找工作的~~毕竟市场不是根据你的爱好来的。。
mason961125
2020-06-22 09:16:08 +08:00
@jorneyr #13 不至于不至于,在赛场上才能感觉到自己是真·菜鸡。
@cyiwei #14 也不算是有得选吧,师范院校的这种专业,基本上毕业即失业,真的想要找到工作还是得靠自己。
Geeker
2020-06-22 09:16:08 +08:00
同样双非很很一般学校毕业。有上进的心且付诸行动已经比绝大部分人强了,不要悲观,世界很大,路子想窄了是因为见的还不够多。即使为了见的更多也应该继续努力,不要放弃。重点是找到一条自己喜欢的路,然后不断学习,运气总是会不经意间敲门。
mason961125
2020-06-22 09:18:08 +08:00
@xyjincan #11 其实考虑过,看了行情基本都是小厂,还是比较想去大厂试试的(虽然大厂也不一定会要我就是了
@2379920898 #15 其实如果走传统电子工程的路也是可以的,但是待遇就没有互联网那么好了。Java 肯定是不学的,和 CS 相关的课程就 C 、数据结构、计算机组成原理、微机原理这几个,然后就是传统电子相关的科目,数模电,电路分析,嵌入式和 FPGA 之类的。
2379920898
2020-06-22 09:30:07 +08:00
CS 都是上古的玩意了!!!互联网当然是 BS 了~CS 传统行业也好的,迭代的慢。。经验越老越吃香。 互联网就不行了,你毕业了得 25 了吧~干个 5 年就 30 了。。就得准备转行了
collery
2020-06-22 09:31:14 +08:00
今年考公务员,考研比较好。 今年毕业不好找工作啊

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/683603

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX