应届生面试C相关岗位速成指南

总览

本指南包含内容大致如目录所示,具体细节详见每章内容。部分教程书籍包含C++内容,从事纯C的同学C++部分可以略过。

资料汇总

  1. C++校招面试题库:牛客网
    纯C只看涉及C语言的部分,计算机网络、操作系统、数据结构部分可以重点参考
    在这里插入图片描述
  2. 小林coding:Github主页,同名公众号
    文字及图片理解计算机网络及操作系统
  3. 爱编程的大丙:B站主页博客主页
    视频重点学习网络编程,多线程编程,Linux环境下部分工具的使用

学习方式

  1. 推荐记笔记,学习一下markdown语法,然后通过CSND博客或者是语雀记笔记,方便面试前复习。
  2. 在语言学习阶段一定多动手编程,解决bug的过程就是成长的过程,遇到报错可以在百度或者csdn上寻找解决方案。
  3. 项目如果来不及,可以暂时先不自己实现一遍,但是针对整个项目要清楚怎么实现,用到了什么技术,面试中可能会对那部分展开问提前做好准备。
  4. 想要面试过关最好是把知识系统地学习一遍,理解其中的原理,然后再利用面试题库等八股文形成自己系统的语言描述。只背八股文可以应付小公司。

编程环境推荐

  1. 在只是准备c语言的阶段,可以先在Windows系统下安装DEV-C++,做简单的练习使用。教程如下:
    Dev-C++安装及使用教程
    推荐这篇:Dev C++ 安装及使用方法教程-超详细
  2. 在涉及到C语言的相关项目实现,Linux环境的学习过程中,建议在Windows下安装Linux虚拟机,环境选择CentOS或者Ubuntu都可以,教程如下:
    虚拟机安装linux
    推荐这两篇:
    Ubuntu: 虚拟机Linux 教程之Ubuntu安装教程【超多图】
    CentOS:VMware16的安装及VMware配置Linux虚拟机(详解版)
  3. 在虚拟机上的命令行做项目可能不太方便,推荐一个ssh连接虚拟机的ssh工具,能够满足基本需求,简约实用,官方网站如下:
    FinalShell SSH工具,服务器管理,远程桌面加速软件,支持Windows,macOS,Linux,版本3.9.8,更新时间2023.1.30
    使用教程:
    Linux远程连接工具:finalshell
  4. 功能更多的一个选择是使用VScode远程连接服务器,但是步骤较多,Finalshell已经够用,VScode自行决定是否使用。
    vscode链接虚拟机

C语言基础

选择一个观看并在Dev-C++ 里练习即可,练习时建议背着尝试写代码,敲完运行然后尝试解决BUG,最后检查和教程里有何出入。

推荐一个讲指针的课程:

C多线程

爱编程的大丙:多线程和线程同步-C/C++

基于C实现线程池项目

爱编程的大丙:线程池工作原理和实现 - 【C语言版 】C/C++

C网络编程

完成此部分可以收获一个网络编程的小型项目
爱编程的大丙:并发网络通信-套接字通信(C/C++ 多线程)
爱编程的大丙:IO多路复用-[多线程网络并发通信 select/poll]
爱编程的大丙:IO多路复用-[多线程网络并发通信 epoll]

数据结构与算法

小甲鱼:【C语言描述】《数据结构和算法》
不同规模的公司对数据结构与算法的要求程度不一样,因为作者实力有限且本文章重点在于速成,所以重点是小公司或者是难度较低的面试,大致如下:

  • 小公司,仅仅是口头询问几个关于数据结构与算法的知识,要求能够描述清楚相关的知识,哪怕是有笔试环节的算法编程题目,编程题目没有写出来,但是前面的选择题简答题答得还不错都有可能进入面试环节。简单高效的应对方式:
    1. 使用相关教程时不必每一个数据结构都去默写实现,仅做到相关知识的理解,能说出大概的应用场景,算法与数据结构的优缺点,复杂度。
    2. 重点关注:时间复杂度,线性表,栈和队列,二叉树,几个简单的排序算法
    3. 不必关注:图论,森林,字符串相关算法,或怎么学都不明白的直接放弃
  • 中等公司,在上面的基础上能做到手写重点关注的算法与数据结构
  • 大公司,直接去刷力扣牛客网吧,能看到的题都是你应该争取学会的。推荐一个不错的刷题指南: 代码随想录

计算机网络

有时间建议123全看,1的视频PPT做的很棒,理解起来很轻松。时间不多建议23,实在没时间就想搞突击就是背3,4也是相当不错的一个课程,适合想啃黑皮书的同学。重点关注网络层运输层的章节。

  1. 计算机网络微课堂(有字幕无背景音乐版)
  2. 小林coding:图解网络
  3. C++校招面试题库的计算机网络部分
  4. 中科大郑烇、杨坚全套《计算机网络(自顶向下方法 第7版,James F.Kurose,Keith W.Ross)》课程

操作系统

单纯的嵌入式岗位对操作系统貌似并不重点考察,时间紧急可以只看计算机网络部分。有时间建议123全看,时间不多建议23,实在没时间但还想突击一点操作系统知识就是背3

  1. B站视频课程自寻
  2. 图解系统
  3. C++校招面试题库的操作系统部分

额外内容

本部分只是作为加分项,可选项,推荐一些本人觉得不错的教程

Linux操作系统及工具

爱编程的大丙:Linux基础入门教程-linux命令-vim-gcc/g++ -动态库/静态库 -makefile-gdb调试
如果你是零基础,为了能在linux下实现上面两个项目推荐前置学习内容:

  1. 介绍LInux:1-20集
  2. vim编辑器使用:44-54集
  3. GCC:59-64集

另外的内容也是相当重要,但是对项目的实现暂时还用不到,作为加分项可以学习

C++

小甲鱼:【C++语法】《C++快速入门》
30小时快速精通C++和外挂实战-大神MJ精选

Github项目

这个里面可以找到很多不同语言的项目
HelloGitHub 是一个分享有趣、 入门级开源项目的平台。 希望大家能够在这里找到编程的快乐、 轻松搞定问题的技术方案、 大呼过瘾的开源神器, 顺其自然地开启开源之旅。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值