【2.项目准备】
作者简介和专栏内容见专栏介绍:https://www.nowcoder.com/creation/manager/columnDetail/0eL5bM
麻烦看到贴子的伙伴点点赞大家点赞订阅支持下。提前祝各位offer多多,有问题评论区见~~
项目的类型因人而异,根据自己选择的方向选择项目,资源中也有我之前收集的一些经典项目或小项目,所以这里主要介绍一些准备项目的相关经验供大家参考。以下为收集的部分资源链接:
- 牛客C++网络编程项目:https://www.nowcoder.com/courses/cover/live/504?coupon=AcNi2gn
- 6.828资源汇总:https://cactus-agenda-c84.notion.site/XV6-labs-2021-0894f931b3324edea30dca7826c01a97
- 6.828课程大纲:https://pdos.csail.mit.edu/6.828/2020/schedule.html
- 6.828环境配置:https://blog.csdn.net/Rcary/article/details/125547980?utm_source=app&app_version=4.17.0
- 6.828视频翻译:https://mit-public-courses-cn-translatio.gitbook.io/mit6-s081/
- 6.828参考书:https://th0ar.gitbooks.io/xv6-chinese/content/index.html
- 6.828笔记:https://fanxiao.tech/posts/2021-03-02-mit-6s081-notes/
- 跳表:https://github.com/youngyangyang04/Skiplist-CPP
- STM32-物联网:https://www.bilibili.com/video/BV1qa411d7DW/?spm_id_from=333.999.0.0
此外,作者本人在秋招中准备了手撕mini_RTOS内核和一个物联网项目,有完整的笔记和代码逻辑图
项目准备时间
时间充裕情况下,建议提前3个月,忙的话翻过年准备也不迟。一般小项目1个月足矣,大点的项目2个月比较宽裕,找实习的过程中可以准备第二个项目。
项目个数
如果没有实习最好准备两个项目撑一下简历,两个项目要有区分,否则就白做了。面试官问不同的项目是希望更加了解你的能力,重复的内容不会再问。所以建议一个项目选择主流的技术,重点在技术的广度上,比如使用多种中间件等实现多种功能。另一个项目体现深度,例如在项目中碰到某个问题,然后对某个模块深入到底层进行了一些优化,这里面试官也能问你一些比较底层的问题(有引导并提前准备)。这样在广度和深度上都有所体现,即使因为某些客观原因没有实习经历,面试官也会觉得你是有潜力的。
项目准备内容
项目在内容上要避免同质化,要有自己的特色和思考。如果选择了“很常见”的项目,改名字换场景这种创新用处比较小,需要加入一些自己的思考。所以项目前期的调研很重要,花时间找到一个能让面试官眼前一亮的项目或想法比蒙着头看视频更加有效率(有不少知识星球和付费专栏必要时候也行)。站在面试官角度,一直面试类似的项目早就审美疲劳了,如果你的项目有特点或者在常规的基础上有自己的思考,能让面试官产生新鲜感,那通过面试基本比较稳了。
项目的内容也可以不需要太复杂或高端,需要的是你写在简历上的内容你是非常熟悉的。校招考察的内容大部分还是你的基础和态度,偶尔有一些开放性的实际问题回答不上也没什么。但是写在简历项目里的相关内容不熟悉是掉大分的,所以根据自己的时间,认认真真准备好一个项目就好,简历上怎么写也很关键,详见简历篇。
核心就是要让面试官有的问,能通过简历中写的内容找到你项目中的难点,体现项目的深度和广度。以Java举例的话,常用的框架和中间件需要被用到,面试时就会问你一些使用过程中的问题,你需要在这些地方做好准备。即针对面试可能问到的问题提前做好准备,引导面试官问到你熟悉的地方。
提前准备好项目的难点和你的解决方法和测试效果,面试官会直接问,不直接问你也要主动引导。
面试时介绍项目流程
一般上来面试官会让你介绍下项目的背景,这块需要提前准备好。背景这里最好包装一下,别太直白的说自己从哪哪哪找的项目,可以说导师安排的课题、课程大作业等,好处是让面试官认为你的项目有实际的落地需求,这个比较重要。
除了介绍项目背景,还可以介绍下自己在项目中的职责、项目的规模、项目完成的时间以及项目的主要内容,大概1-2分钟介绍完后,面试官会提问或者问你有什么难点(在简历中加粗引导提问)。所以做项目的过程中就要总结好你的难点,和你的解决办法,如果没有,就把某个功能当作难点,自己按照教程解决了。
其他的问题面试官会根据你在简历上写的内容和他了解的知识进行提问,一种是问你使用的某项技术,问你这个技术如何解决你的问题的,底层原理是什么,考察你的深度;或者也会问你他知道的另一项技术是否了解或问该项技术还能解决什么其他问题,看你的广度。所以自己准备的项目要比较熟悉,教程中没涉及到的、有可能问到的知识也要去准备一下。否则面试官三四个问题就把你的项目问完了,也浪费了自己准备的时间。
最后尝试做一些引导,将面试官引到你熟悉的地方。因为你自己讲的时候,面试官一般会一直听你讲,并顺着你的路线进行提问,所以把自己的项目内容串起来,一旦面试官问到你准备的相关问题,就把相关的上下文都介绍下,后续面试官问的问题也会和这些有关,这也是图解八股的逻辑。切忌简短直接的回答,否则面试官下一个问题就有可能碰到你的盲区了。所以抓住那个你准备好的问题,引导面试官问相关的问题,是整个面试的很有用的技巧。你要做的就是在半小时的时间里,尽可能得展示自己,让面试官说很多的话就说明你没有掌握主动。
*其他注意事项
- 从面试官的角度来讲,最关注的是你实习在项目中负责的工作,所以如果有实习的机会,不论mentor是否安排你实质性的工作,多看看内部文档,如果实习的工作拿不出手,从文档里包装一个出来。
- 在面试中找到项目中的薄弱点,这是快速进步的最好机会。往往你没回答上的问题,就是面试官关注的、常问的,所以复盘很重要,不断通过面试完善你的项目和笔记,八股同理。
作者简介:2个月时间逆袭嵌入式开发,拿下理想汽车-ssp、小米汽车-sp、oppo-sp、迈瑞医疗、三星电子等八家制造业大厂offer~ 专栏内容:涵盖算法、八股、项目、简历等前期准备的详细笔记和模板、面试前中后的各种注意事项以及后期谈薪、选offer等技巧。保姆级全阶段教程帮你获得信息差,早日收到理想offer~