背景
专科大三在读,目前在某 toB 公司服务岗位偏研究,xCPC 打铁,CTF 奖项若干
昨天,也就是 2024年1月2日 中午13:00,在目前实习的公司找了个会议室线上面试
我提前三分钟进会议,对方在 12:59
左右提出开摄像头,由于macOS权限问题,得重启应用才可以开启权限,一点点小失误
自我介绍
我以大学后的生活为时间线讲给面试官
算法与工程
RSA
描述了秘钥选取,包含明文的一些边界条件,密钥生成与加密解密过程
碰撞检测
纯用想像的三维模型讲了个朴素方式,对方表示这种太基础了
筛素数法
筛法中埃氏筛法忘了,于是回答了下跟欧拉筛的区别:欧拉筛优化了埃氏筛中重复划掉合数的过程,达到线性复杂度
用JS还是TS,有没有系统学过TS
相对用 JS 多一些,TS 除了在一些模板中,几乎没用过,对方表示让我系统学习下 TypeScript
函数式,多线程和线程安全
可能还问了面对对象编程,不过都没答上来,我就提了一嘴线程竞争(正确叫法是条件竞争),有点后悔没学前几个月的热门项目"线程池"
Dynamic Programming
我选择用爬楼梯作为题目背景讲了下 dp 的思路,对方表示这道题有些太基础了,笔者对 dp 造诣太浅,该加强了
椭圆曲线密码学
简述了 ECC 的加密流程,提到了群论和快速幂,怕被问到解决 DLP 的算法细节都不敢提 bsgs (因为作为调包侠,甚至还不算"侠",已经忘记算法实现方式了)
实现一个加密的在线聊天平台
描述了即时聊天项目需要的密码学知识与设计思路,使用了密钥交换和对称密码学以及哈希函数
杂谈
对以后的规划,以及学习密码学的契机
巴拉巴拉,这个环节这位面试官很尊重面试者,不过提到了可能读研,在面试中是个 DeBuff
反问阶段
如果入职要做的项目
实现一个类似 xxx 的项目 🤐,技术栈 React
至此面试结束
用时 33min33s
面试结束后的一些感想
主要是说可以再约一个时间互相交流,于是想着过不了就算了,我继续学再继续约。( 于次日上午收到了感谢信,发现是我理解错了,如果再约,只是交流不是面试,不过这样也不错了,能跟大佬唠唠也挺好 )
对方表示算法还不错,但工程欠缺。这段时间我就去看项目和工程思想了(希望能和未来的考试平衡好时间)
对于前端开发岗来说,面试官能问我密码算法真的感天动地,后面讲一个跟密码学结合的 IM 项目时,对方表示实现了一个简单的 TLS (看得出来面试官有所了解)
对方还提了嘴自动机(还好没问,不然答不上来个所以然)