从算法竞赛到大厂工程师:给学弟学妹的4条硬核避坑指南
大家好,我是某不知名ICPC选手,曾在外企和国内大厂摸爬滚打多年。今天想和大家聊聊从竞赛到职场那些「如果早点知道就好了」的感悟,尤其适合对编程竞赛感兴趣或想进大厂的同学!
第一课:别让信息差毁掉你的选择
你眼中的"好公司"真的适合你吗?当年我一心想进外企,觉得技术先进+工作平衡就是完美,却忽略了国内互联网的爆发机遇。直到现在,看到很多同学依然把"工程研发"局限在业务开发,才发现:信息差才是职业选择的最大杀手!当前我视角里,服务端研发至少可以这么分类:
破局方法:
- 主动勾搭前辈:学长学姐、专业课老师甚至亲戚朋友都可能藏着你不知道的赛道
- 用实习开地图:建议先列个「职业规划三步走」:
第二课:竞赛VS工程开发,简直是两个世界!
真实案例1:我的第一次工程翻车
之前给一个老师做了个外包项目,当时我应该是用php简单搭了一个网站,前后端都自己做。开发过程不复杂,但是如何部署让我花费了好多精力。后来,我在后续的实习、工作经历中,逐步理解了CI/CD等概念。也学会了一个名词“脆质玩具”。
真实案例2:数模比赛的血泪教训
第二件事情是做美赛数模比赛,我并不是那个负责建立复杂数学模型的同学,但是我负责把其他同学的想法通过matlab代码化(不知道现在是不是可以用python了)。当时很多步骤实现的非常随意,导致需要重新做一个实验的时候,还要改很多代码。其实哪怕不用任何面向对象的技巧,只需要把算法的流程先固定下来,然后对于同一阶段的不同算法实现,放到不同的函数里面,就能极大的解决这个问题。当时的第二个错误的设计是一些函数为了“通用”,能够接收一堆参数,然后写一堆if/else。这类问题,在实际工作中也会在一些“祖传代码”里面发现。相信我,在构建了足够的测试用例做覆盖之后,去重构这些祖传代码,对你的技术水平会有很大的提升。
竞赛思维 vs 工程思维
算法竞赛是「单兵作战拿最优解」,工程开发是「团队协作造可扩展系统」—— From DeepSeek
第三课:工程师需要了解业务
我之前差点跳槽去一个新能源车企,当时有大佬问我,是否准备好成为一个汽车产业工人。这句话给了我很大的启发。另外一个大佬分享过一个思路,最开始做一些业务,是不需要系统的。靠BD就能把一些生意谈下来。后来BD感觉效率不够高,需要一些支撑工具(关键是商品查询还是交易撮合)就有运营来把共性的问题进行梳理,并提供一些工具(可能只是Excel表格)。再后来运营的发现很多重复的工作,于是就给产品提了需求,看这些工作能否自动化/线上化。于是产品就找了一些研发,做实施和运维。
如果一个研发,对于自己所处的行业有比较多的了解,他/她就比较容对于未来需求的变更作出一些前置的判断。从而在做系统设计的时候,为可能的判断保留扩展性。这将成为其很强的职业竞争力。
给大家分享一个策略,可以尝试找一些有独特行业门槛、且一定时间内不会被淘汰的业务去做,比如物流、支付等(当然,AI肯定也是一个高门槛的行业)。或者可以简单类比一下“交叉学科”。在这种行业里面沉淀的行业知识,是在该行业中,作出良好设计的前提。
第四课:一线城市 or 二线城市?
我的经历是一开始去一线城市,后续回到二线城市,暂时没有海外工作经历。综合来看,二线城市的生活气息确实更浓一些,一线城市的机会和挑战却是更多一些。每个人情况不同,可能会做出不同的选择。
我也观察到一些同学毕业就在二线城市,但是也取得了不错的发展。在我看来,他们的成功可能有几个点:
- 尽量选择所在城市“最好”的机会,保障自己发展的下限
- 通过出差来获取更多的信息和机会
- 保持学习的热情
文末彩蛋
如果只能记住一件事:用实习试错比听100场讲座都有用!如果还能记住第二件事:欢迎私信我(备注学校+专业)我能提供:
- 免费职业咨询
- 所在大厂内推通道
- 竞赛/工程问题交流
听说看完文章立刻行动的人,offer率会提升73%哦~ (DeepSeek说的)
#抖音##招聘##职场经验##大厂求职##实习生#