type
status
date
slug
summary
tags
category
icon
password
中国人的gap year是工作
谢@Fuyao Zhou 邀请, 给大家浅薄的讲一讲找工经验, 但我在东南就业哪怕是本科都不算优秀的。东南本科CS的会好很多, 懂的也更多, 不过在信息感觉还算可以, 希望能给大家特别是信息学院的同学一点hint。
关于语言, 申请, 文书感觉大家讲的也足够多, 这里不再赘述, 赘述一下自己的经历~
📝 故事
和大部分我的信息同学不一样, 我选择了一条人最少的道路, 本科就业, 时至今日, 依然相信这是当时的我能做出的很正确的选择, 现在也一点不后悔。😊
时间线
前情提要: 大三尝试过转码, 但看黑马程序员的视频, 感觉自己还是很排斥这种培训班的画风和语调, 一联想到开发就想到秃头💇♂️,加班,低门槛,35岁失业,全是男的etc.也没有什么兴趣转码。想着自己数学这么好, 怎么也不想做这个😃, 于是当时学了一些AI, 想做高大上的算法工程师, 但这个可能也算一个小坑, AI本科找工作也不太现实.不过2022年互联网大放水, 18级SEU计算机学院还是有挺多学长💪找到大厂算法岗的, @boyu zhang去了地平线算法, @haorui li 去了阿里云算法, @heyang sun去了Intel算法.(希望信息同学知道找工作和计算机学院比起来是有多差😠)。于是就到了高不成底不就的情况, 大三暑假的实习以失败告终。因为我真的什么都不会, 没看到什么本专业相关的实习, 互联网那些对于我来说简历也是白纸一张,前后端是什么, 可能对于现在的我都没有一个特别清楚的概念.
- 2023.1 - 2023.2
在2023的1月, 一个并不寒冷的冬天, 我去了UCSD交流, 想着下半年来美国找工, 提前看看情况。期间联系到了16级的一个信息学长@Huang Zixiao, 和我申请的是同一个项目(UW EE), 当时打了一次电话, 跟我说美国找工作的市场很差, 劝我不要直接去🥲, 攒点经验, 同时等一等会好很多。再加上确实想体验没有疫情的中国(当时已经放开), 于是就下定决心找工作。
- 2023.3 - 2023.4
一开始我没想到自己能找到全职,试了试找实习, 但根据我大三下的经验, 我找实习也是很吃力的。但有电子的一个同学@Hanshi Sun 和18信息一个学姐@Suhan Shi去了Apple实习,而且和EE相关并且也会写代码, 于是就猛投了Apple, 如果信息或者电子学院的学生想找实习我强烈建议Apple, 福利好, big title, 实习钱相对算多, 而且是一个软硬结合的好机会, 并且最大的优点是不用和CS的学生卷, 人家收我们啥都不会的信息电子的, 科班写码的都去投字节了~20级的学妹@Fuyao就去啦!😎我记得我apple一家就投了20多个岗位,因为岗位不受限制,然后不同组来来回回大概面了8次,最后在San Diego快到大年的一天晚上, 收到了他家的offer call, 直接请我shared room的室友@kangqi wang去吃了麦当劳🍔! 但没想到在两个月后收到了让我当时一晚上没睡好觉得天塌了的消息。我被撤回了offer(HR的理由是hiring freeze,但我不清楚是不是其他原因),人瞬间就晕了,好在难过了几天后重拾心情把SD的课程都修完,之后又和学长同学商量了一下, 还是接着找intern,同时兼顾春招。
- 2023.5 - 2023.6
4月回国之后还是给自己留了一个月的缓冲时间休息了一下, 由于UW EE daytime被拒了转而又申请了pmp,这个是被申请群很多人安利过的bar不高的项目。在五一假后便开始认真找工作, 已经没什么退路了, 在此之前从未如此认真地审视过自己的人生与未来。距离毕业还有大概四五十天的时间
- 路线一: 找工作
- 主要心思放在这一块上面, 但我找工作还是有阴影的, 没有实习, 非科班转码, 但我决定也还是要试一试的, 这一条pipeline打算 break&conquer
- 首先是简历, 简历不仅需要好的内容, 更需要一个好的格式, 建议大家学一下latex然后可以在github上找一个好的简历模版,一般在overleaf上可以直接编辑
- 其次是简历的内容, 一般最前面是教育背景, 一般都是学校, 学院, 时间, GPA这些。如果自己的简历太空了,可以塞一些自己比较高的课程或者在学校获得的奖项当placeholder.其次可以写相关技能(方便recruiter可以直接看到自己会什么东西), 一般就是编程语言: C/C++, 框架与工具:PyTorch,Git/Github这样, 如果自己内容比较少, 可以加一些乱七八糟的进去(不过要能回答的出来, 操作系统和设计模式是我在SD学的, 还算比较会),如下
- 接下来一部分应该是实习经历, 但我这部分直接是空白, 跳过
- 由于我没有工作经历, 我也不知道工作起来是什么样子的, 我就加了4个项目尽量填满自己的简历。关于项目的选择我all in了C++, 下面会说我为什么这么选。同时希望尽量囊括了C++岗位里涉及的各个方面, 所以花了大部分时间在挑项目上面而不是做, 要是一步一步做的话来不及了, 抄就完了。
- 第一个项目是JSON解析与查询🔗,这个是UCSD交换时ECE141A上的一个作业(代码量最大难度最难的一个)用了MVC架构和很多设计模式(adapter, command, observer等), 同时实现一些命令的时候用了回溯算法, 这个项目能吹的点比较多, 因为很多人不知道设计模式, 但这个又是软件开发中一个很常见并且好用的东西。
- 第二个项目是想做一个多线程并发相关的, 知乎上找了半天, 找到了一个涉及比较多ModernCPP的一个线程池的实现🔗,大概就是一个固定大小的队列做一个pool,如果这个pool里面所有的线程都在工作, 就阻塞任务队列。其实我现在也不是很懂, 工作中遇到多线程的内容比较少。但看起来还是比较fancy的, C++高级特性比较多
- 第三个项目想做一个网络编程相关的。这里面我觉得一个trick是我看到大部分人做的都是webserver, 但如果项目撞了我又不熟练的话肯定会被peer制裁, 于是就找了一个我认为还挺好的项目🔗, 有网络编程, 有高级数据结构(AVL树),同时又够小众
- 第四个项目找了一个操作系统的项目, 用C写的kernel相关(UCSD CSE120), 这部分就可以很好地引入一些八股, 进程线程区别, 上下文切换是什么etc.于是就等于说把面试官拉到自己的comfort zone上面来.
- 简历大概就这些内容, But其实有更好的内容可以填上去(当时的我没有做到), 首先是真正的工业界的经历,也就是实习,这个优先级>>项目, 本科没有实习可能算我的人生遗憾之一了。其次是项目经历那块合适的开源项目,应该比较吸睛。再其次是四大的project, MIT 6.824 CMU 15445这种,但现在这些被科班生也做的差不多了, 就算含金量很高也失去了少样性。再其次应该是涉及技术很多的前后端大项目, XX外卖系统这种, 据说做的好可以和面试官谈笑风生的话可以相当于一份intern。(其实上面的这些我现在也没有做到), 比较建议的是可以先拿toy project刷实习滚雪球, 这样简历上就可以把这些没有含金量的项目经历全删了。
- 简历的其他内容诸如一些奖项, ACM很加分, 但是其他的东大信息学子热爱的数模,电设没有用。信息学院的SRTP基本上也没有用,大规模MIMO是什么根本不重要。如果有论文的话如果自己能讲明白是干嘛还是挺亮眼的, 但如果奔着找工作(算法岗除外, 算法论文优先级还是很高的)的角度上面的这些性价比其实很低, 包括ACM(ACM很能提高自己的上限是不假, 但如果不是有些特殊行业如量化开发, 自动驾驶开发需要很强的代码能力, 其他的其实并没有很看。有这个本事和时间现在这个年代学AI冲一波算法岗或者PhD上限会更高)
- 投简历: 投简历的话有几个渠道,官网,内推和软件。外企我一般官网投递,内推的话其实我个人认识的人很少,东南大学有个内推群(QQ:1030305803), 软件是最好用的,最常用的两个BOSS直聘和脉脉。一开始我还比较嫌弃BOSS直聘的界面比较丑但我后来发现这个软件格外的好用,能清晰地看到岗位信息,薪资,可以直接和Recruiter沟通,回复率和HR转化率都很高,而且可以一键投递简历, 感觉这些对初级的工程师就已经能覆盖大半了。当然还有一些其他渠道,熟人的熟人内推,招聘会,直接被HR reach out@Hanshi Sun, Linkedin等等。但还是感觉BOSS直聘yyds!🤓
- 面试:一般分为四个阶段.第一个阶段大概5到10分钟,准备一个自我介绍模版,把过往的经历串起来,熟练背诵,直接流利地背出来。(比背电磁场公式毛概等ROI高很多) 然后第二个阶段我大概就称为small talk, 主要分为两部分, 一部分是项目, 一部分是基础知识。这里就要说到为什么选择C++,因为我在什么都不会的情况下看了Java Web开发和C++开发的面经, 发现C++开发的基础知识少了太多, 而且重合度很高。 Java那边的话有太多内容了, Java本身,JVM wtf?前后端, 数据库, 框架, 高并发, 分布式, 这些我只能说我都不会并且没有学的兴趣。 我还记得面阿里的时候前一个小时是这些知识点都串了一遍, 我一半都不会, 然后第二天早上又给我发了一个设计模式的线上编程题,我又花了一个小时, 然后这两个合在一起算一面,OMG.项目的话Java也是眼花撩乱的, 网上一搜一大堆培训班出来的项目, 动不动就五六十个小时的大proj。然后我就觉得Java相关我都没有面的必要了, 除非他这些都不考。C++这边无论是八股还是项目都要友善很多,而且显得科班很多, 没有那么多二本大专的来竞争,但同时岗位也少就是了。C++八股特别简单, 来来回回就那几个, 必考的就是”你用过智能指针吗, 说说看“,这时候拿出学高数云云的态度把智能指针好好研究一下就可以得到很亮眼的表现, 一些关键点自己能说出来, RAII的机制, 为什么有weak_ptr, shared_ptr线程安全相关。八股还有操作系统,数据库,操作系统经典的就是进程和线程是什么区别。像准备期末一样准备几周就会完了,项目同上不赘述.然后就是第三个阶段, 编程题, 这部分是我很喜欢也很讨厌的部分, 题做出来不一定能过, 但题做不出来很大可能性会挂。但我发现国内面试做题还是比较简单的, 有些甚至不会做题, 把高频的题单刷一下就问题不大, 其实做lc ROI看似枯燥,其实ROI挺高的,至少比东大学生喜欢的那些高太多。第四个阶段是反问环节,我一般就问问组内是做什么的,然后表现出有兴趣的样子。
- 其他:我觉得我现在找工作比以前心态好很多的一点在于,对自己要有更高维度的自信,我现在知道了工作大概是什么样子,就更难被骗。因为工作内容上手之后真的都很简单,我的岗位可能都还算需要带脑子上班的了(但感觉捞个大二的过来培训几天就会做了)。很多知识上网查查就知道了,如果一个公司一直问一些上网查就能查到的东西,就是说那些八股文,那本身就可以认为这些问题都很无聊,有时候答不出来也没有关系,面试更像是一个双向选择,不要轻易的放弃和被PUA。我觉得我以前就被打击的有点难受了,然后就放弃了,但其实也仅仅只是社会环境不好而已,就算是某些大厂的面试官说不定就是以前找工作很简单的时候一个二本毕业生。所以我一方面认为计算机找工作很难,因为这些东西本身门槛就低,变着花样的考一些和实际工作无关的东西,现在竞争又激烈,更难找工作。另一方面我又觉得计算机找工作很简单,只要坚持下来,掌握一些套路这些东西本身就不难,雪球滚起来自然就也成了所谓的大佬,面试觉得不合胃口觉得面试官有病就好,不要被轻易打击到然后放弃了,反正没有几个人的工作真正又难又很有impact,真正那些creative的工作大部分也在一些新创和各种lab。我上面说的这些是软件开发相关的情况, 我自己没有做过算法岗暂时还不太清楚,但我认为工作可能都差不多也是相通的,对于junior来说不会了就问mentor!



- Backup
- 未完待续~
🤗 一些感悟
这里是我工作一年后的一些想法, 但这些现在也在迭代, 可能过不了多久时间就觉得这些挺傻逼的…不过还是记录下吧!随便看看就好
- Just Do It, 我做了一盘麻辣虾尾, 但做糊了, 很难受的把倒掉了。但是第二份我就做出来自己满意的🦐, 因为我根据第一份失败的经历中学会了控制火候, 翻炒, 多留意等等。但如果不做第一份糊掉的虾尾, 自然也不会有第二份。从失败的经验中快速迭代🏃
- Get hands dirty, 只有经历过了发现了越多越多的坑, 才能真正在这个混乱的时代快速成长, 提高工程能力。工作中有一个feature我迟迟不愿意写, 觉得自己对整个框架不够熟悉, 盲目的写显得很笨, 但其实当自己真正写下一行code时, 才会pay more attention在这个事情上, 即使发现自己最开始连代码的位置都写错了,最后的版本和最初的也千差万别,面对着写完也还是不够完美的解决方案,还是会有比迟迟不行动更高的成就感.
- 未完待续~
📎 Reference
- 上面我提到的学长学姐都是SEU非常优秀的一批!帮助了我很多, 大家也可以和他们多聊聊~
- 未完待续
Notion yyds!
- Author:Huapeng Zhou
- URL:http://blog.huapengzhou.life/article/gap_year
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!