上岸必看:C++ 24校招/25实习求职指南

news2024/12/29 9:40:30

校招和实习是应届生步入职场的重要途径,是职业生涯的起点。

通过实习和校招进入的岗位,C++应届生能够更好地了解行业现状,明确自己的职业兴趣和发展方向。有的时候,实际工作中的体验甚至会引导你重新考虑和规划自己的职业道路。

并且许多大厂通过实习生项目筛选。表现优秀的实习生很可能被转为正式员工,这为应届生提供了直接的就业机会。

前提:学历、学校无明显弱势

1. 技术能力(面试常问知识点)

C++基础

重点需要掌握一些关键字、面向对象以及STL容器的知识特别是STL

  • 指针与引用的区别
  • C与C++的区别
  • struct与class的区别
  • struct内存对齐问题
  • sizeof与strlen区别
  • 面向对象的三大特性:封装、继承、多态
  • 类的访问权限: private、protected、 public
  • 类的构造函数、析构函数、赋值函数、拷贝函数
  • 移动构造函数与拷贝构造函数对比
  • 内存分区:全局区、堆区、栈区、常量区、代码区
  • 虚函数实现动态多态的原理、虚函数与纯虚函数的区别
  • 深拷贝与浅拷贝的区别
  • 一些关键字:static, const, extern, volatile 等
  • 四种类型转换:static_cast、dynamic_cast、const_cast、reinterpret_cast
  • 静态与多态:重写、重载、模板
  • 四种智能指针及底层实现:auto_ptr、unique_ptr、shared_ptr、weak_ptr
  • 右值引用
  • std::move函数
  • 迭代器原理与迭代器失效问题
  • 一些重要的 STL:vector, list, map, set 等
  • 容器对比,如 map 与 unordered_map 对比
  • set 与 unordered_set 对比
  • vector 与 list 比较

书籍推荐:《C++ primer》 《STL源码剖析》 《深度探索c++对象模型》

计算机网络

面试必问,不分校招社招,特别是如果去非Java系的大厂,比如说字节、腾讯这种

  • 物理层、链路层
    • MTU,MAC地址,以太网协议
    • 广播与 ARP 协议
  • 网络层
    • ip 地址分类
    • IP 地址与 MAC 地址区别
    • 子网划分,子网掩码
    • ICMP 协议及其应用
    • 路由寻址
    • 局域网,广域网区别
  • 传输层(主要就是 TCP)
    • TCP首部报文格式(SYN、ACK、FIN、RST必须知道)
    • TCP滑动窗口原理,TCP 超时重传时间选择
    • TCP 拥塞控制,TCP 流量控制
    • TCP 三次握手与四次挥手以及状态码的变化
    • TCP连接释放中TIME_WAIT状态的作用
    • SYN 泛洪攻击
    • TCP 粘包,心跳包
    • UDP 如何实现可靠传输
    • UDP 与 TCP 的区别
    • UDP 以及 TCP 的应用场景
  • 应用层
    • DNS 原理以及应用
    • HTTP 报文格式,HTTP1.0、HTTP1.1、HTTP2.0 之间的区别
    • HTTP 请求方法的区别:GET、HEAD、POST、PUT、DELETE
    • HTTP 状态码
    • HTTP 与 HTTPS 的区别数字证书,对称加密与非对称加密
    • cookie与session区别

书籍推荐:《图解HTTP》、《计算机网网络:自顶向下》、《TCP/IP详解卷1:协议》

操作系统

都要会,但是面试问的没有计算机网络相关的多

  • 进程与线程区别
  • 线程同步的方式:互斥锁、自旋锁、读写锁、条件变量
  • 互斥锁与自旋锁的底层区别
  • 孤儿进程与僵尸进程
  • 死锁及避免
  • 多线程与多进程比较
  • 进程间通信:PIPE、FIFO、消息队列、信号量、共享内存、socket
  • 管道与消息队列对比
  • fork进程的底层:读时共享,写时复制
  • 线程上下文切换的流程
  • 进程上下文切换的流程
  • 进程的调度算法
  • 阻塞IO与非阻塞IO
  • 同步与异步的概念
  • 静态链接与动态链接的过程
  • 虚拟内存概念(非常重要)
  • MMU地址翻译的具体流程
  • 缺页处理过程
  • 缺页置换算法:最久未使用算法、先进先出算法、最佳置换算法
  • 推荐书籍:《现代操作系统》

数据库MySQL

数据库一般主流的有MySQL和oracle。不过大部分公司都是用的MySQL 面试也是属于必问 毕竟工作crud才是常态

  • 语句相关
  • 索引相关
  • 事务相关
  • 锁相关
  • 日志相关
  • 缓存相关

推荐书籍:《MySQL必知必会》

网络编程

基本是面试的重灾区。很多公司都爱问。特别是IO多路复用,同步非同步IO,阻塞非阻塞。腾讯基本上都会问到

  • IO多路复用:select/poll/epoll的区别 非常重要 几乎是必问的。回答思路是往底层靠
  • 手撕一个最简单的server端服务器(socket、bind、listen、accept这四个API一定要非常熟练)
  • 线程池
  • reactor
  • 边沿触发与水平触发的区别
  • 非阻塞IO与阻塞IO的区别

推荐书籍:《Unix网络编程》

数据结构与算法

算法是最难速成的,从基础数据结构到各种算法的思路再到力扣刷题 需要大家提早准备

  • 初学数据结构与算法
    • 链表
    • 队列
    • 哈希表
    • 二叉树
    • 十大排序
    • 二分查找
  • 算法思想
    • 递归
    • 深度与广度搜索
    • 枚举
    • 动态规划

力扣刷题:200-300道

推荐书籍:《剑指offer》

C++面试题整理领取

https://docs.qq.com/doc/DR2N4d25LRG1leU9Q

2.项目经验

简历上的项目经验对于展示你的技术能力、解决问题的能力以及团队合作精神极为重要。这些项目经验不仅反映了你的编程能力,还能体现你将理论知识应用于实际工作中的能力。

注意事项:

  • 精简描述项目背景
    简要描述项目的总体目标和背景。帮助面试官理解项目的商业或技术驱动因素。
  • 明确你的角色和职责
    详细介绍你在项目中的具体角色和职责。包括你负责的技术领域和你所扮演的团队角色。
  • 突出使用的关键技术
    列举开发项目时使用的关键技术、工具和框架,强调你的核心技能,如C++,Linux,多线程编程等。
  • 描述技术实现
    描述你如何运用C++和其他技术实现项目中关键的功能或组件。
  • 展示解决问题的能力
    透露一些项目中具有挑战性的问题以及你是如何解决它们的。
  • 提供量化成果
    尽可能提供量化的成果。
  • 保持简洁
    尽量使用简练的语言描述,使信息点清晰、准确。

常见问题

难点一:项目不知道哪里找

https://github.com/Light-City/CPlusPlusThings

难点二:找到的项目自己驾驭不了,实现不出来
难点三:项目实现了,就只是复刻,对于项目细节不求甚解

解决办法

继续巩固项目中所需要的技术知识,项目遇到困难,本质上还是你对项目中所需要用到的知识还没有学到位,这是一个很好的学习思路。

为什么我们说项目越大越好,因为大的项目,其中体现的技术点会越多,面试考察的时候,面试官就可以通过你的项目来考察你的技术掌握的广度和深度。

付费购买一些项目课程,对于实在没有办法自己吃透项目或是时间紧任务重的同学来说这是一条解决问题的途径

(推荐)付费项目课程
六个实战项目视频教程(含源码)

https://docs.qq.com/doc/DR0pxY3F4UEtzVUpu

  • 后端项目:KV存储
  • 音视频项目:ffmpeg+SDL播放器
  • Qt项目:客户端与服务器架构系统
  • 内核:内存管理实战案例分析
  • 文件系统实现项目

简历书写辅导课,让你的简历避免出现雷点槽点

3.实习经历

实习经历重要还是不重要?

  • 说法不一,但有实习一定是好的。
  • 能参与实际的项目,累积项目经验
  • 和更优秀的人一起公司 培养你的开发思维
  • 有助于就业

为什么?

  • 前面和大家讲的技术能力和项目,都是教学目的明确的,很难有实际真正拥有用户的项目。而实习能够让你参与到真实项目中去,这样你才能把理论技术与项目相结合,更好的提升自己的开发能力。
  • 理论学习的思路是固化的,包括给你上课的老师,基本上也是脱离一线开发多年,缺乏最新的开发思维。实习能让接触到真实一线的开发人员是如何开发的,会很好的扩展你的开发思维
  • 实习是很好能展现你的学习能力和接受能力的过程,通过实习导师的评测,获得好的实习结果,能让提早拿到offer。

选择大厂还是小厂?

小厂

  • 优势
    • 门槛低
    • 没有很细的分工,能够有机会了解参与到整个项目
    • 做事情没有太繁琐的流程, 步伐会比较快,能高效的完成任务
  • 劣势
    • 可能高水平的人不会太多,即使有,大概率也不会带你,都是负责人或是总监的头衔
    • 做的事情会比较杂,不会很专注于技术
    • 做事情不够规范,当慢慢的项目大了人多了反而效率大大下降
    • 缺少针对性的培训和指导

大厂

  • 优势
    • 牛人很多,可能带你的导师就是一名大牛
    • 做事规范,文档流程齐全,能够帮助我们形成很好的工作习惯
    • 分工明确,可以专注于某个细分的技术领域。避免过多杂活分散自己的注意力
    • 求职有大厂背书
    • 能得到系统性的培训
  • 劣势
    • 做事效率不一定高,流程长
    • 能接触到的领域比较窄,就是一颗螺丝钉
    • 会存在一定的官僚主义

实习的标准

实习方向与求职岗位方向的相关性
实习参与项目与求职岗位的相关性
实习技术栈与求职岗位的相关性

4.简历书写

  1. 个人信息

    • 包括你的姓名、联系方式、电子邮箱地址。
  2. 职业目标(可选):

    • 概述你的职业目标和你对C++开发岗位的兴趣。
  3. 教育背景

    • 你的学历信息,特别是与计算机科学、计算机工程或相关领域的学位。
    • 列出任何专业的课程或认证,特别是与C++或软件开发直接相关的。
  4. 专业技能

    • 列表形式明确说明你在C++以及相关技术领域(如Linux、网络编程、嵌入式系统等)的具体技能。
    • 可以包括熟悉的库、框架、工具(如STL、Boost库、Qt等)。
  5. 工作经验

    • 以逆序列出工作经历,每个职位包括工作时间、公司名称、职位以及具体的职责和成就。
    • 突出你在以往职位中使用C++的经验和所带来的成效。
  6. 项目经验

    • 描述你在C++项目中担任的角色以及你的贡献。
    • 包括任何公开可见的项目,如开源项目,并提供链接。
  7. 语言和工具

    • 你熟练的编程语言,特别是C++的各个版本(如C++11/14/17/20)。
    • 列出你熟悉的开发工具、版本控制系统(如Git)以及IDE(如Visual Studio、Eclipse)。
  8. 附加技能

    • 如有,包括其他编程语言、软件架构设计、团队合作能力等。
  9. 荣誉奖项与成就(如果适用):

    • 突出任何行业奖项或个人成就。

在书写简历时,确保语言准确、清晰,并且格式整洁。使用强有力的动词来描述你的经验和成就,确保内容具体、相关,并尽可能地量化你的成效。

5.岗位投递

在这里插入图片描述

200+ 24春招/25实习求职岗位整理

https://docs.qq.com/doc/DR2N4d25LRG1leU9Q

6.技术方向

在这里插入图片描述

7.薪资谈判

  • 在面试前,了解行业标准薪资、同行的薪资水平以及公司的薪资范围。
  • 明确自己的技能和经验如何为公司带来价值。
  • 尽可能让雇主先报价,因为这将为你设定谈判的起点。
  • 在谈判时保持冷静、清晰和专业。
  • 即使薪资报价低于预期,也不要表现出失望或不礼貌的态度。
  • 白菜价是没有议价空间的
  • 议价主要自信来源于你的实习经历的匹配度以及技术面试时你的回答的深度和广度是否满意 以及就是你有同级别公司的有竞争力的offer 会是你很好的议价谈判条件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1596842.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Mac下载的软件显示文件已损坏,如何解决文件已损坏问题

当在Mac上下载的软件显示文件已损坏时,这可能是因为多种原因导致的,包括网络问题、下载中断、软件未完整下载、文件传输错误等。解决这个问题需要采取一些步骤来排除可能的原因,并尝试修复文件。下面将详细介绍一些常见的解决方法&#xff1a…

算法课程笔记——排序

Bool返回真假 为何用const不用define 1.保护被修饰的东西 2.通常不分配存储空间, 效率高 匿名函数只在一处用,其他处用不到 不写&就是拷贝 u相等就u,不等就v 一个字符是空格一个是换行,后面是取下标i那就是1(true&…

利用vite创建vue项目

创建vue项目步骤 打开HBuilder X工具,创建空白项目 进入终端(鼠标点击文件进行选择,然后终端) 利用vite脚手架创建项目 (前提要将HBuilder X工具属性设为管理员运行状态(属性》兼容》管理员身份运行此程序) npm …

CentOS如何使用Docker部署Plik服务并实现公网访问本地设备上传下载文件

文章目录 1. Docker部署Plik2. 本地访问Plik3. Linux安装Cpolar4. 配置Plik公网地址5. 远程访问Plik6. 固定Plik公网地址7. 固定地址访问Plik 本文介绍如何使用Linux docker方式快速安装Plik并且结合Cpolar内网穿透工具实现远程访问,实现随时随地在任意设备上传或者…

pnpm 使用 workspace 报错 ERR_INVALID_THIS

有时候真的感觉如果有一个老师指路,那么遇到的坑真的会少很多。 错误示例: GET https://registry.npmjs.org/rollup%2Fplugin-typescript error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.原因是什么?原因就是 pnpm 的…

MySQL表空间管理与优化(8/16)

表空间管理和优化 innodb_file_per_table参数(此参数在分区表章节中还会出现): 这个参数决定了InnoDB表数据的存储方式。当参数设置为ON时,每个InnoDB表的数据会单独存储在一个以.ibd为后缀的文件中,这有利于管理和回收…

python数据结构与算法之线性表

1、线性表 是一种由n个元素(n> 0 )数据元素组成的有限序列,所包含的元素数量通常被称为表的长度 n 0 的表被称为空表,线性表的数据元素可以单一也可以复杂,可以是整数,字符串,也可以是由几…

活动预告|NineData 创始人CEO叶正盛将参加QCon全球软件开发大会,共话AI大模型技术在数据库DevOps的实践

4月13日下午,NineData创始人&CEO叶正盛即将参加InfoQ中国主办的『QCon全球软件开发大会北京站』的技术大会。在本次技术峰会上,叶正盛将以《AI大模型技术在数据库DevOps的实践》为主题,深入剖析AI大模型技术在数据库DevOps领域的最新进展…

Zookeeper的集群搭建和ZAB协议详解

Zookeeper的集群搭建 1)zk集群中的角色 Zookeeper集群中的节点有三个角色: Leader:处理集群的所有事务请求,集群中只有一个LeaderFollwoer:只能处理读请求,参与Leader选举Observer:只能处理读…

软考数据库---3.关系数据库

3.1 名词 属性分类 数据库实体属性分类主要包括以下几个方面: 标识属性 (Key Attribute / Identifier): 这些属性是用来唯一识别实体实例的关键属性,也称为主键(Primary Key)。在数据库表中,每个实体的实例&#xff0…

【GD32】GP2Y1014AU粉尘传感器

2.42 GP2Y1014AU粉尘传感器 2.42.1 模块来源 采购链接: GP2Y1014AU粉尘传感器模块 PM2.5灰尘传感器代替GP2Y1010AU0F 2.42.2 规格参数 工作电压:5-7V 消耗电流:最大20mA 最小粒子检出值:0.8微米 灵敏度:0.5V(0.1mg…

锁策略总结

锁策略 悲观锁和乐观锁 乐观锁和悲观锁不是具体类型的锁而是指两种不同的对待加锁的态度,这两个锁面对锁冲突的态度是相反的。 乐观锁:认为不存在很多的并发操作,因此不需要加锁。悲观锁:认为存在很多并发操作,因此需…

c++编程(4)——类与对象(2)构造函数、析构函数

欢迎来到博主的专栏——c编程 博主ID:代码小豪 文章目录 构造函数默认构造函数析构函数默认析构函数 构造函数 以一个日期类为例。 class Data { private:int _year;int _month;int _day; };这个类实例化出来的对象内的值都是编译器默认初始化的随机值。 Data d1…

私域流量变现干货:轻松盘活,高效增长!

你知道如何增长私域流量并将这些流量转化为实际收益,让我们的品牌价值最大化吗? 今天,就分享几点干货,帮助大家盘活私域流量,实现高效增长! 1、精准定位和用户画像 首先,了解您的私域流量源于…

位像素谈海外仓库存管理方法:WMS对效率提升到底有没有用?

对海外仓来说,最重要的事情就是把库存管理做清楚。因为海外仓的本质还是仓储,如果连仓储数据都出现错误,那不管是对客户还是对终端消费者来说,都会造成巨大的影响。 今天我们就来聊一下,在电商飞速发展的今天&#xf…

面试官:说一说CyclicBarrier的妙用!我:这个没用过...

写在开头 面试官:同学,AQS的原理知道吗? 我:学过一点,抽象队列同步器,Java中很多同步工具都是基于它的… 面试官:好的,那其中CyclicBarrier学过吗?讲一讲它的妙用吧 我&…

Sonar下启动发生错误,elasticsearch启动错误

Download | SonarQube | Sonar (sonarsource.com) 1.首先我的sonar版本为 10.4.1 ,java版本为17 2.sonar启动需要数据库,我先安装了mysql, 但是目前sonar从7.9开始不支持mysql,且java版本要最少11,推荐使用java17 3.安装postsql,创建sonar数据库 4.启…

什么是5G单兵?5G单兵跟5G执法记录仪有什么异同?

深入了解5G单兵系统:未来执法新革命与执法记录仪的差异分析 随着技术的不断进步和发展,5G技术的应用已经渗透到社会的各个领域中,包括公安、消防等执法与紧急救援领域。其中,5G单兵系统作为一种新型的智能化执法装备,…

树形侧边栏(展开、全选、切换名称)

父文件&#xff1a; index.vue <template><div class"h-full p20px bg-#f5f5f5"><ContentWrap class"w-260px h-[calc(100vh-200px)] min-h-700px"><TenantTree select"tentantSelect" /></ContentWrap></div&…

【计算机考研】跨考计算机,需要准备多久才来得及?

9个月跨考计算机&#xff0c;如果选择是408的话&#xff0c;时间稍微有点紧张&#xff0c;前期感觉不大&#xff0c;后期数学408堆在一起会感觉很难受... 很多确定考408的同学都是一开始先从数据结构开始复习的&#xff0c;这样到了中后期觉得自己时间不够了再去转自命题也来得…