【算法要早刷】
很不幸的,cs的笔试、面试都需要手撕代码,有的笔试难度惊为天人(把我当打竞赛的整是吧😅)。而面试手撕过不了,通过的概率会大幅趋近于0。
所以建议cs专业的同学尽早开始刷算法题,跟着代码随想录等系统性的题单学习,特别是动态规划、bfs、dfs(当然,其他也都会考)。如果时间来不及,可以看看leetcode上面的hot100等常见热门题。但说实话,也许是lz运气不好,今年秋招遇到的hot100原题都很少,面试手撕考得五花八门,还是很考验综合能力的。
如果投递的是人工智能、llm等方向,还可能会手撕一些相关的代码,包括但不限于:transformer、multiheadAttention、lora、layernorm/batchnorm、激活函数、交叉熵、损失函数、梯度反向传播。
是的,我们cs就是这么八爪鱼。
【面试的一般流程】
① 简要自我介绍
这个部分在2-3min结束即可,介绍你的学历背景、技能、项目、论文等等。项目的细节可以稍后再谈,在这个阶段,只需要大致提一下项目做了什么、你用了什么技术、有什么成果即可。
② 介绍你简历上的项目。
在这个过程中,面试官可能会追究一些细节,也可能会就此延伸出一些基础知识的拷问。以llm为例,如果你的项目中含有“LLM的sft微调”,面试官可能就会问你sft相关的基础知识。
③ 拷打八股。
如果面试官没什么可问的,但距离面试结束时间又差很多,大概率会问你一些该领域的相关知识。这就需要你的知识储备和学习了。
④ 手撕算法。
这个部分一般都有,需要你在15-20min之内写出1-2道算法题,出什么题目看面试官心情。做题的平台各种各样,有的是面试官提供的编码平台,有的是本地ide然后共享屏幕,但似乎不会像leetcode那样有一堆数据样例需要通过,只需要通过面试官给出的单个样例即可。这个部分建议读完题后,先大致讲一下自己的思路,然后再开始写。写的过程中,也可以同时讲讲自己的思路。
⑤ 反问。
这个环节基本上就是收尾阶段,面试官会问你有没有什么要问的。lz一般就是问问对方的业务之类的,网上应该有攻略,但我懒得查hh。
【项目经历丰富的bonus】
如果你早早开始做实习,项目经历经得起推敲,那么面试官大概率会花很多时间在你的项目拷打上,甚至没空考察困难的算法或者大量的八股。这也不失为一种规避算法和八股的好方法😋
===
写这些的时候喝了点酒,喝晕了,可能语言不太通顺hh。
——from 一天面四场的传奇耐面王