个人春招实习记录(cpp + 计算机基础)

写在前面

事实上约是去年此时决定的不考研,但现在回想确实天真。双非,本科,CS,无实习经历,无知者无畏。
如果真的知道自己几斤几两,又是否会做出当初的选择?

《空之境界 未来福音》在谈到未来的时候,讲到预言未来实际上是一种计算能力。大脑宛如 CPU 一般,对外界的信息拥有过量处理的能力。所谓的预测未来只是计算无限种可能性之一。
但预言未来还有第二种方式,即凑齐一切必要条件,将未来限制在几种仅有的可能之中。

但这并不是一篇心灵鸡汤,但确实可能是一篇中二文(二次修改加)。现实是付出不一定有回报,但不付出肯定没有收获。

个人情况

双非,本科,无实习经历,烂大街项目开局。

春招情况:

约投递 30 家,笔试若干,面试 3 家

  • 2月 bytedance 一面挂
  • 3月 Tencent 一面到时间自动释放
  • 4月 Tencent 两次技术面 + 一次 GM 面 + 一次 HR 面
  • 4月 lilithgames (哔~

准备情况:
cpp + 数据结构 + 操作系统(Linux) + 计算机网络 + web相关(协议,架构,存储,缓存,安全) + 编译原理
数据结构/算法: STL + 剑指 + leetcode(约 200 题,部分为保证理解到位反复刷了很多遍)

待准备:
nginx 相关, sql 相关, redis 相关等

基础知识

因为本科 + 烂大街项目,基本面试全怼基础,每次约 40-50min,难度由浅入深,基本能略答一二。
(但是问到两个类互相用指针引用怎么防止空悬指针,Linux 环境下最多能有多少线程是不是有点...超出知识范围...)

  • 解答1: weak_ptr,应该是这个
  • 解答2: 是 2^15 个,内存最大是 3G / 10M (大概)个

学习路径

学习路径基本是 书本 + 博客 + 笔记,笔记靠手写有感觉,排版乱(空白A4),没有电子版。
以下写几个我自己准备的方向。

  • CPP: 内存管理,多线程,编译模型,面向对象,泛型编程,基础语法
  • 数据结构:基本 STL + 刷题,主要 allocator,container 实现,其他也尽量提升水平
  • 计算机网络: 准备很多,主要 OSI 七层,重点 TCP, HTTP, HTTPS,想聊的话理论知识的上限和下限dou'hen'ga
  • 操作系统(Linux):四大调度,Linux 内核,文件,信号,网络I/O 等
  • web相关: 面试比较少,只在字节考了,但是可以拓宽计算机网络
  • 编译原理: 一点点基础,有助于理解 CPP 编译模型(或许)

还有一些比较小比较杂的知识,不成系统,难以回忆,作用有限,不再献丑。

面试涉及:

bytedance:

  • web安全,内存管理,锁机制,https等等,基本没回答出来,无参考性,手撕是 leetcode hard 劝退。

Tencent:

  • 第一次: 数据结构排序算法,树型全家桶,操作系统进程线程,计网 TCP + UDP
  • 第二次(突击): 烂大街项目(5min),HTTP,OSPF(网络层协议),ARP(数据链路层协议),cpp内存管理,空悬指针/智能指针,Linux 指令 + OOM(主动提的,结果没回答好,害),LRU + hashmap/vector,redis,B 树,跳表,三大范式,docker,go(到后面基本不会,全跳了)
  • 第三次: 项目,Linux,cpp,同步/异步/阻塞/非阻塞 + Linux I/O,https, web安全(自己拓展),STL等
  • GM 面: 浅谈项目,聊人生
  • HR 面: 介绍项目,聊人生

lilithgames:

  • 哔~

心得体会

春招没有准备的部分

  • 岗位选择:只盯后台开发岗位,没有考虑其他岗位。这一点因人而异,我是综合素质比较差的,理应寻找其他更易上岸的岗位
  • 公司选择:信息收集不足。快手,美团,阿里等都没有投递。阿里是因为不自信(据说只有一次机会),美团和快手之类则是消息不灵通(火星人)(请多关注牛客网论坛以外的部分,比如牛客职播)
  • 知识准备:nginx 和 sql 知之甚浅;redis 面向面经;高并发,分布式直接 GG(因为是本科+无相关项目,事实上没有被问到
  • 面试过程:思考时间短,思路发散,不成系统,不成规矩

不做面经型选手

打个比方,基础知识浩如烟海,面经只是冰山一角,无异于管中窥豹,可见一斑。
唯有大量面经,才能由量变引起质变(大误)。面向面经,则可能上限止步于面经。
知识需系统化,结构化。构建知识树,在相关领域上不断拓展,学习相对系统,完整的知识。渐渐发现很多知识是互通的。

在第三次面试的时候,我问了对方这个问题:您认为知识的广度和深度哪个更重要?
答:因人而异,但是在我个人的话,更倾向于深度,所以一开始才会让你谈感兴趣的方向。

当有充足的时间的时候,尽可能学习系统的知识。如果临面试前,把这个公司的面经都刷一遍补漏也是不错的选择。
刷面经的时候,甚至可以试着还原面试过程,问题问的比较深,则面试者必然对此领域熟悉,或者相关岗位对此有要求。事实上通过面经可以相对还原面试场景。(所以面经里没问到的不一定不会问你,因为可能 TA 对该问题准备不足,而你有针对性准备,而面试官喜欢拓展)

心态与心态爆炸

保持沉着与冷静,不要让浮躁连续超过 48 小时。
心态爆炸是不是个别现象,但是务必做好情绪管理。
敢于竞争,但也不忘给自己留后路。人生有无限可能性。

面试前与面试时

紧张是不可避免的,尤其是面试经验不足的时候。
面试一种沟通的能力。
如何系统的,有条理的讲出自己的思路,除了练习并无多大的作用。此外便是语速放慢,多给自己思考的时间,这一块我也不擅长。。

碎碎念

事实本体是个 loser,春招也是走运,属于被幸运女神眷顾的那种。
大学只做了三件事,上网冲浪,打电动,学计算机(基础)。
平时抽卡全保底,犹记得大二上氪进去一个月生活费没出货的窘境。从没见过双黄蛋。

一路走来,思维和心境已经与高中、与大学刚开始的时候不同。
逐渐有了改变自己的想法,也想要获得改变自己的能力。
所做出的选择没有对与错,只要无愧努力和未曾后悔。

写到这里回去读了一遍,发现已经看不懂了。大概就这样吧。属于想到哪就写到哪。

#实习#
全部评论
很赞
点赞 回复 分享
发布于 2021-03-25 20:45

相关推荐

各位前辈好,先说声抱歉,可能又是一篇“求骂醒”的帖子,但我真的需要一个方向。我的情况比大多数人都糟糕:双非软件工程,大四,马上毕业了,0实习经历,0工作经验。秋招根本没参加,原因很傻——我一头扎进了一个自己觉得“挺有意思”的项目里,天真的以为把项目做好工作自然会找上门。现在春招也快结束了,我才如梦初醒,发现简历投出去基本石沉大海。我没有什么能拿出手的背景,唯一能说的就是这个从后端到前端全栈独立开发的电影推荐平台。我知道在各位前辈眼里这大概率就是个小玩具,但我确实是下了功夫去琢磨的,它不是什么网上扒的代码,下面这些是我自己琢磨并落地的东西:项目概况:Spring Boot + MyBatis-Plus + Redis + JWT + MySQL + Vue3(前端是AI辅助生成的)我自己觉得花了心思的几个点:1. 推荐算法落地:没有照搬别人的推荐逻辑。我是基于用户多维行为数据(评分、收藏、浏览时长)去计算标签权重,然后用“评分×log(热度+1)”的公式做加权排序;冷启动场景用热门数据兜底。推荐结果用Redis的ZSet缓存,用户行为一变化就主动删缓存触发重算。2. 缓存体系设计:不是那种“面试八股文背完就扔”的表面理解。我实际遇到了缓存穿透和击穿的问题,然后自己用空值缓存+逻辑过期去解决。热门电影定时预热、批量查询用multiGet减少IO次数,还封装了MyCacheUtils通用模板,让整个项目其他模块也能复用这套缓存逻辑。3. 并发与一致性:用Redis的SET NX EX实现了收藏/点赞的分布式锁,key精确到“用户+操作对象”级别,不是粗粒度的一锁全锁。异常回滚时Redis和MySQL数据一致性问题也思考并落地了。验证码的原子性校验用了Lua脚本来保证。4. 性能是真实数据:我用JMeter做了2000并发的压测,引入Redis缓存体系后,推荐接口平均响应从6466ms降到155ms,吞吐量翻了一倍,缓存命中率干到98%以上。这些数据不是编的,是我自己反复调优跑出来的。说实话,做完这些的时候,看着压测报告我是挺兴奋的,觉得“这也算出活儿了吧”。但现实是,0实习好像成了我简历上的原罪,很多公司直接筛选条件就把我过滤了。所以我想跪求各位前辈指点我几个问题,每一条我都认真看、认真执行:1. 关于简历:0实习的应届生,还有资格谈“项目亮点”吗?我这项目,是不是在专业面试官眼里就是一个“低配版培训项目”?如果这个项目还有救,该怎么在简历上呈现,才能让HR或者面试官至少愿意给我一个电话面试?如果没有,一个0实习的应届生到底该在简历上写什么?2. 关于面试:如何用项目细节证明“我虽然没实习但真的能干活”?我挺怕面试官看到我没有实习经历就直接失去兴趣。真到了面试那一步,我该怎么引导对话,用上面这些技术细节去对抗“没实习=没工程经验”的刻板印象?比如缓存那块,怎么从“我解决了击穿”讲出一个有技术判断力和工程思维的完整故事?3. 关于求职策略:错过了黄金窗口期,现在该冲什么样的公司?大厂我肯定不奢望了。现在这个时间点,我应该去投那些小公司和外包吗?要不要把薪资预期降到最低先入行再说?对于0实习的应届生,什么样的公司是真的有机会让我进去学技术、积累经验的?4. 关于未来:如果现在直接找不到工作,我该怎么办?这段时间我想好了,如果实在是找不到研发岗,我要不要去干测试或者运维先入行?还是找家小公司被压榨一年攒个经验?还是干脆先找个其他工作边干边学等下一轮秋招?我什么建议都能接受。我知道自己起步晚了,代价得自己扛。现在唯一能做的就是面对现实,然后找到一条最有可能逆袭的路。希望前辈们能给我指个方向,即使简单几句“没救了”或者“还能救,去做XXX”我都非常感激。
jiestart:这简历肯定没面试的,你得包装个实习再加一个agent项目才有希望
点赞 评论 收藏
分享
评论
12
16
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务