cpp转码选手暑期实习总结

经历了第二次找实习,感触良多。也被舍友push了一波,做一个找实习的小总结。和大家分享一下找实习的经验。

本人双非本985硕,cpp转码选手,研一才开始接触cpp相关的内容。之前有两段实习,一段是在自驾公司做平台开发,一段是在硬件公司做rdma和spdk的内容。

项目是webserver+手写malloc。

目标想找的就是支持转语言的后端实习

投递公司:百度,阿里云,淘天,蚂蚁,腾讯,美团,拼多多,亚马逊,微软,快手,灵犀互娱,阿里国际化,钉钉,饿了么,小红书,momenta,蔚来,oppo,小米

公司情况:

面试公司:

mmt,系统研发实习生:一二hr面oc(3.1-3.7-3.8)

蔚来,仿真系统实习生:一二hr面oc(3.4-3.7-3.11)

腾讯,后台开发实习生:一二hr面oc(3.19-3.28-4.8)

美团,后端开发实习生:一二面oc(4.1-4.12-4.17)

拼多多,后端开发实习生:一面被挂(4.11-4.21挂)

蚂蚁,java研发实习生:一面完(4.10-4.25挂)

阿里云,基础平台实习生:一面完,被简历挂了(3.20-面完和我说简历挂)

小红书,Java后端实习生:一面完,被挂了(2.22一面-2.26挂)

微软,客户端实习生:一二面被挂(2.29-3.6-3.18挂)

约面没去的公司:

快手,游戏服务器实习生:4.25约一面没去

百度,后端实习生:4.24约一面没去

亚马逊:4.24约一面没去

灵犀互娱,游戏服务器实习生:4.17约一面没去

阿里国际化,java研发实习生:4.23,4.29被约了两次一面没去

做了笔试还挂了的公司:

淘天,java研发实习生

给了笔试,没做的公司:

钉钉,饿了么,java研发实习生

没发笔试的公司

oppo,小米,java研发实习生

整体面试的流程下来,tx偏向于问计网+os,阿里系偏向于问项目和基础八股,美团偏向于问redis+mysql,自驾类的公司主要还是C++相关的语法知识。我觉得最重要的还是通过面试来催着自己推进准备面试的进度和熟悉如何讲解自己的项目。但是也不要因为公司开了实习或者周围的人都投了我也投递,至少得准备个70%的内容才去投递公司,不然拿到面试也不可能面过的,反而脏了面评

总结

总结主要是从三个方面讲一下

一、如何拿到面试?

二、如何准备面试?

三、方向如何选择?

如何拿到面试?

学历关:我是一个本科双非的选手,所以对于阿里系卡本科的集团:阿里云,淘天,钉钉,饿了么。我们通过海投去投递,基本上是没什么可能拿到面试。所以必须要通过强推:认识师兄师姐推到部门,这样非常容易拿面。

实习经历关:我上一年的时候也参加过找实习。当时我是0实习经历,能拿到的面试非常非常少。但是这一年去两个中厂实习之后,拿到的面试有了成倍的增加。所以找实习之前得来一段实习(bushi

项目关:项目不要趋于同质化,就算是烂大街的,也要非常的熟。我在第一段实习的时候,部门leader,也是面试官,和我说:“**现在的人,项目都是那些,cmu,mit网课,webserver,商城xxx的。我之前不会这些项目,面试的时候都被面试的人教会了。**校招生还是基础最重要“

方向关:投递对应的方向。一个C++的选手去投java岗,大概率拿不到面试。你投一个岗位,简历上一定要至少有一个job description上面的技术栈

对于我来说,我主要还是简历有点杂,想投后端,但是没有一个java的项目。在秋招来之前,打算再加上一个比较完整的后端项目,以及确定明确的方向。

如何准备面试?

基础八股文:在收到tx面试之前,还没系统看过八股文,这次算是看完了75%的八股。所以相比于上一年面试美团的时候,redis都不知道是什么的我,在面试的表现会比之前好很多。在准备八股文的时候,不懂可以去和chatgpt对线,我发现chatgpt在帮助我们入门和理解一些比较基础的概念非常有帮助。

项目知识:简历上写的点一定要能和面试官说个五分钟。项目和实习的内容要明白(技术选型,为什么要去优化,能体现优化的指标是什么,优化有什么收益)。但是我自己的项目就非常的烂大街,所以网上甚至有项目对应的八股文。

算法部分:如果面试官要你,那就会出hot200的内容。不想要你,除非你是acm选手,不然大概率在25mins是做不出的。还有一些智力题可以看一下网上的答案,基本上看一下就明白了。

对于我来说,八股文这次还没有背完,秋招前得再完整地熟悉一遍。算法方面,基本上面试都是自己做过的,但是follow up都能做得出,碰到新的medium和hard基本上做不出,得在平时多参加一下周赛。心态方面,通过把需要做的事情用DAG来描述,把目标细分成自己能做的部分。比如,我要准备面试,那么我就需要准备八股文。而八股文分为计网,计组,redis,os,mysql。这样不断地细分,可以把需要完成的大任务拆解成自己每天甚至每小时能完成的目标。这样自己在准备的时候就不会焦虑。

方向如何选择?

作为一个C++选手,我在一年前也和很多人一样在纠结方向的选择。尤其是发现自己C++投递后端一个面试都没有,会觉得很失望。但是我们在失望之前,一定要明白两个问题,后端指的是什么?C++有哪些应用方向?

后端是什么有很多牛客uu都会有介绍,但是就C++和后端的关系和公司中C++是用来做什么的,我希望通过我这一年的实习经历来说说我的感想。

首先,我们理解的后端可能比较狭隘,就是web开发的前后端那一套。但是这一套东西,在你进任何一个公司的时候,基本上大体的框架就写完了,更多要做的内容就是数据库的增删改查或者实现某个接口。如果是web开发这一套内容,那后端确实是JAVA的天下,没有C/C++一点关系。而且作为实习生,能接触到的内容真的比较少,因为大部分东西都做完了,更多的都是杂活。如果运气比较好,碰到好的mentor让你参加某个重构或者一整个完整的项目,那确实能学到挺多东西。

如果是大一点范围的后端,也可以指的是web开发中,所有涉及到的部分。比如说,公司可能为了解决大量用户访问,会有服务器开发,开发和维护更好的服务器框架。为了解决大量数据传输的问题,会有rdma等云基础计算开发。为了更好地适配自己的开发流程,开发一些中间件。为了解决多集群多节点的存储,会有分布式存储开发。为了提升性能和国家要求,会有数据库或者操作系统开发。而上面提到的方向,才是C/C++广泛运用的地方。在之前找实习的时候,我会有个误区:学一门语言,去解决所有的业务和技术问题。但是在工作中,往往是因为有这个业务需求或者降本增效,才选择对应特性的语言。

很多人也会因为岗位多的原因选择了Java。但是不同的方向,会有不同的门槛,从而导致竞争的人数不一样。比如Java很多人都可以通过b站学一个项目,了解到对应的框架和中间件,就能上手工作上面的内容。但是C/C++更多的是领域相关的内容,语言倒是其次。所以我在上一段实习的时候,mentor都感叹:”现在真正写C/C++的人太少了,投递的简历大部分人都是Java相关的技术栈,尤其是会c语言kernel编程更加少。“所以作为需要找实习和全职的我们,更重要的还是确定自己的方向,这样卷才是卷到正确的方向上。

和各位uu共勉,秋招再战

#实习##总结##cpp后台实习#
全部评论
大佬太牛了
3 回复 分享
发布于 05-06 19:24 广东
看了佬的经验,又想接着冲c++了
2 回复 分享
发布于 05-11 18:57 山东
所以小红书到底要的什么人
1 回复 分享
发布于 05-07 20:37 天津
dd十天了才挂?
点赞 回复 分享
发布于 05-05 19:12 广东
狠狠点赞👍
点赞 回复 分享
发布于 05-05 22:12 上海
佬最后去哪儿了
点赞 回复 分享
发布于 05-14 05:38 美国
同cpp转码选手,可惜导师不放日常实习,直接卷暑期目前颗粒无收😥
点赞 回复 分享
发布于 05-21 09:49 湖南
想问问亚马逊是啥时候做的oa啊
点赞 回复 分享
发布于 06-01 22:29 北京
无敌了,居然还有amazon
点赞 回复 分享
发布于 06-28 18:11 浙江
说得很好
点赞 回复 分享
发布于 07-03 18:08 四川
佬 26毕业吗
点赞 回复 分享
发布于 07-18 22:27 北京
我cpp选手,拿了字节实习是java后端,有必要去么
点赞 回复 分享
发布于 07-19 14:06 陕西
佬什么BG
点赞 回复 分享
发布于 10-13 21:21 江苏

相关推荐

Webpack通过解析入口文件及其所依赖的其他模块,构建一个完整的依赖图,从而理清模块之间的依赖关系。具体的处理方式包括以下几个方面:https://www.nowcoder.com/issue/tutorial?zhuanlanId=Mg58Em&uuid=ba06d8fbb87f45f7bf340c85dc4f0cc1模块解析:Webpack会根据配置的解析规则,解析模块的路径和文件类型。默认情况下,Webpack会按照特定的路径搜索规则来查找模块,可以通过配置文件指定更多的解析选项。Webpack支持解析各种类型的文件,如JavaScript、CSS、图片等,以及一些特殊的模块类型,如命名的 AMD 或 CommonJS 模块。加载器处理:Webpack在解析模块时,会根据模块的类型,使用相应的加载器来对模块进行预处理。加载器可以将模块进行编译、转译、压缩等操作。加载器可以串联使用,以处理多个模块,形成一个处理管道。其中,每个加载器负责对模块进行特定的处理,然后将处理结果传递给下一个加载器,直至最终的模块打包。依赖收集:在解析模块的过程中,Webpack会分析模块之间的依赖关系,并将这些依赖关系记录在依赖图中。通过静态分析的方式,Webpack可以在编译时就知道每个模块所依赖的其他模块,以及被哪些模块所引用。模块打包:依赖图中的模块经过加载器处理后,Webpack将根据配置使用优化策略来打包模块。例如,可以将多个模块的公共代码抽取出来,形成单独的代码块,以减少重复的代码。还可以进行代码分割,将不同功能或路由的代码分割成多个文件,以实现按需加载。通过以上的处理方式,Webpack能够准确地处理模块之间的依赖关系,构建出一个完整的依赖图,并最终将模块打包成一个或多个静态文件。这样,在浏览器中加载这些文件时,模块的依赖关系也会得到正确的处理。
点赞 评论 收藏
分享
50 144 评论
分享
牛客网
牛客企业服务