双非非科班培训C++,但干了两年嵌入式杂活,如何找回职业方向?
网友提问:
YT哥你好,我是24年本科毕业的,学校是双非,在学校学的是非计算机相关专业,今年23岁,刚出来工作不到2年
当时在学校里面是花钱报的线上培训班,学的方向是C/C++ Linux后台游戏服务器开发,之前在学校里面校招的时候投了几百份简历最终才拿了2个offer(因为不是计算机专业而且学校很一般,在加上自己技术也不是特别厉害):
1.一个是C/C++游戏开发的,15k
2.还有一个是C/C++软件开发,薪资比前者低一些
因为当时在网上看这个游戏公司加班厉害,而且没有双休,就选择了后者,不过当时也不知道后者具体是做的什么业务,当时岗位上就只是说了C/C++软件开发,然后面试也通过了,看网上的评价和口碑也还可以,并且有双休,然后就直接进去了.当时大四去实习了3个月,才知道公司是做C/C++嵌入式Linux和驱动方向,关键是我对于嵌入式和驱动一点都不懂,不过因为公司的领导和leader对于校招生都挺包容的,给了我们很多学习时间,感觉这家公司的整体氛围确实还可以,有双休,后面毕业了就一直在这家公司到现在,虽然是995但是有相当一部分时间在摸鱼哈哈
我现在的问题是:
1.现在感觉公司做的业务和方向比较多,然后我们校招生需要做的事情比较杂,而且都不深入,这2年做的项目技术栈从底层的内核模块驱动、修改设备树到上层的C/C++应用层界面编程、Shell脚本编程都有,我感觉这些内容现在有AI随便抓一个大一大二学的好的都能干了.然后最近半年一直在写浏览器前端,因为我们是嵌入式设备上跑浏览器,然后浏览器上需要开发界面,但是公司没有招前端,就让我用AI来干了,已经用cursor搞了4~5个月了,每天就是输入提示词然后调界面改界面,一直温水煮青蛙觉得没什么意思.后面公司要在板子上做一些AI相关的功能,目前还要学习AI Agent和大模型相关的内容,但是感觉这些内容都搞的不深入,自己也不知道现状是好还是坏
2.大概有半年没写C/C++了,Linux倒是每天用,但是也只是敲一些简单的命令,感觉底层和系统都有些生疏了,现在也就是对自己C/C++语言本身这一块还有些信心,毕竟之前在学校还是好好听培训班的课学了,手撕了不少数据结构,但是对其它内容就没什么信心了,而且一直用cursor感觉自己这样的初级程序员可能很快要被AI取代了
3.我们公司有一部分业务是做Android的开发板,然后我也了解了一下Android相关的内容,自己对于Android逆向和破解挺感兴趣,后面要想在职学习这方面的内容,因为我觉得现在AI太强大了,正向开发软件的流程已经从传统的(写代码->分析log->测试->找bug->解bug->测试)变成了(理解需求->输入提示词->编译运行->添加log->AI 分析log->AI根据log解决bug)的自动化流程了.导致现在我感觉现在正向开发软件变的比较枯燥,还是逆向去破解别人写好的软件比较有意思,希望YT哥可以给我分析一下我这个背景在职学习并且后面转Android逆向和破解的话可行性如何,相比我现在的工作会有更大的空间吗?
4.我这边还有一个想法是在职考华科的研究生,因为我人在武汉,而且如果能考上985研究生的话后面的发展肯定会更好,不过有2个点其实我不是很有信心:第一是我不太擅长考试,之前高考就离华科的线差了七八十分,而且在职备考时间不是很充裕,也不一定能考上;第二是即使能考上也不知道过几年就业形势如何,而且如果研究生发不出来论文搞不好要被导师压榨甚至毕不了业,即使考上了能毕业也要浪费好几年的时间,少上几年班拿好几年的工资,而且到时候自己都26~27了,挺纠结
希望YT哥能给出一些意见:是在职考研、继续做现在的工作、还是在职花时间搞比较感兴趣的Android逆向?
Yt回复:
一、先看经历
24年本科毕业,在校期间花钱报了一个线上培训班,学的是Linux C/C++,后端游戏开发方向。
毕业后拿了两个offer:一个是游戏开发,一个是嵌入式。
最后选了哪个?游戏开发给了他offer,但他没去。原因很简单:要加班,风评不行。
这就是现实。很多人口口声声说“我以后就要干游戏”,但当真拿到offer的时候,公司不行、加班严重、风评差——你还会去吗?
所以我一再强调:先把路走宽,拿到offer之后再做选择。
你在Linux上用C/C++,后端、嵌入式、音视频、客户端……所有方向都可以投。多投多面,拿到offer之后,你才有选择的权利。
这个道理很简单,但很多人就是不明白。
以后再也不要问“我学了XX,到底该投什么岗位”了。 你先把东西做出来,做到产品化,做到性能稳定,然后多投多面。拿到offer之后,你自然知道怎么选。
二、现在的问题:工作两年,做的杂,不深入
目前的情况:
毕业时间:24年毕业,现在26年,已经工作两年
业务内容:比较杂,从底层的内核驱动、修改设备树,到上层的C++应用层界面编程,再到Shell脚本,都有涉及
自我感觉:这些东西AI一抓一大把,自己没什么竞争力
首先说一个心态问题:
你已经毕业两年了,不要再以“应届生”或“校招生”的身份标榜自己了。
你现在是一个工程师,是一个成年人,是一个能够为公司挑大梁的工程师。
公司当年把你作为应届生招进来,大概率是把你当“嫡系”培养的——希望你后面能为这家公司干更多的事情。这一点你要清楚。
三、关于个人竞争力:硬技能和软技能
这里要讲一个很重要的概念。
个人竞争力 = 硬技能 + 软技能
硬技能:开发的技能、技术的技能。这是你刚加入一家公司时,能不能立住的关键。
软技能:协调能力、沟通能力、分析问题的能力、对行业的理解。这是你在这家公司待得越久、职级越来越高时,越来越重要的东西。
但凡能做到高管级别的,你可以看看你们公司的总监、+1、+2的领导——他们能爬到那个位置,硬技能肯定没问题,但绝对不是全靠硬技能。
软技能,包括沟通表达、协调能力、分析问题的能力、对行业的理解——这些都是。
所以,你如果只把自己跟AI对比,只看“代码能不能被AI生成”,那你看问题的角度就太窄了。
四、关于“AI一抓一大把”的误区
这位读者说:我的工作内容从内核驱动到设备树修改,到应用层界面编程,到Shell脚本,感觉AI一抓一大把。
我先问一个问题:为什么你的工作跨度会这么大?
从内核驱动到设备树到应用层到Shell——为什么会这样?
只有一个原因:你们的产品有问题,你是基于产品的bug来解决问题的。
你做这些事情,不是因为公司让你“全面学习”,而是因为产品出了问题,你需要去定位、去解决。
这个过程,你真正增长的是什么东西?
是经验。是对这款产品的经验。
这个经验,绝对不仅仅是编码能力。
发现问题 → 分析问题 → 解决问题 → 验证问题
- 发现问题:测试看到的是现象,不是问题。这个问题到底是由什么引起的?这是工程师要分析的。
- 解决问题:当你发现问题的根源,解决方案可以让AI帮你生成。
- 验证问题:你自己都没验证过,就丢给测试?你看测试不骂你。
所以,你不要把自己单纯地看作一个“码农”。
为什么现在做Java的朋友很恐慌?因为他的工作就是写代码,除了写代码,其他都不会。
但你这个不一样。你是在硬件设备上做开发,涉及到硬件生产、行业标准、产品经验。
以路由器为例:路由器有国家标准,出口到中东、南美、北美、欧洲,每个地方的要求都不一样。这些经验,AI能帮你做吗?可能性还是有点远。
AI能帮你提升工作效率,但很难完全替代你在硬件设备上的经验积累。
五、关于“感觉自己搞得不深”
现在用Cursor,感觉初级成员很容易被替代。
我认为这是正解。
如果你在一家公司待几年,就只会写点代码,其他什么都不管——那被替代的可能性确实很大。
前端、Java这些方向,技术统一,业务大同小异,开源的一大把,AI很容易学完直接用。
但你做的是硬件设备上的开发,涉及到硬件生产、行业标准、产品经验——这些是有门槛的。
AI能帮你写代码,但它不懂你的产品、不懂你的行业、不懂你的客户。
六、关于“安卓逆向”和“在职考研”
这里提到:公司有一份安卓开发板,对安卓逆向感兴趣。
我的建议是:这个东西作用不大。
你现在已经工作两年了,到7月份就满两年了。你应该慢慢理解一件事:
在职场上面,你应该找到一个你下一步可以跟随的人。
看看你的+1领导,你什么时候能坐到他的位置?看看你的+2领导,你什么时候能坐到他的位置?
你的职级应该越来越往上走。如果你只盯着“写代码”这一个能力,那对一个工程师来说,是极其不公平的。
关于在职考研:
这位读者目前在武汉,想在职考研985。
在职考研,我不是很推荐。
如果能成功,那还可以。但如果不成功,这个情况就比较尴尬了。
与其在职考研,或者花时间搞什么安卓逆向——不如全身心地把你现在的工作干好。
给你需求,你就能搞定。不管是结合AI也好,自己写也好,快速搞定,并且做得好。
做到什么程度?做到你一提到,周围的人就觉得“这哥们很牛逼”。
在岗位上闪闪发光,熠熠生辉。就奔着这个目标走。
其他的什么考研、什么安卓逆向——我认为都是瞎扯淡。
七、总结
不要再把自己当应届生了。工作两年了,你是工程师,是成年人,是能挑大梁的人。
不要只跟AI比写代码。你的价值在于分析问题、定位问题、验证问题,在于对产品和行业的理解。
硬技能让你进门,软技能让你走远。沟通、协调、分析能力、行业理解——这些才是你职业发展的天花板。
不要瞎折腾。在职考研、安卓逆向——这些大概率是浪费时间。把现在的工作干好,让周围的人觉得你牛逼,这才是正事。
找到你的+1、+2。看看他们的位置,想想你什么时候能坐到那里。这才是你职业发展的方向。
加油。
查看13道真题和解析