Skip to content

Latest commit

 

History

History
617 lines (513 loc) · 47.9 KB

README.md

File metadata and controls

617 lines (513 loc) · 47.9 KB

CppGuide

「C/C++学习+面试指南」一份涵盖大部分 C++ 程序员所需要掌握的知识。入门、进阶、深入、校招、社招,准备 C++学习 & 面试,首选 CppGuide

目录

1、往期编程资源推荐

  • 可能是最好的互联网面试求职网站
  • 在这里你能找到所有的计算机编程学习PDF电子书
  • 一些你绝对用的上的编程资源汇总
  • 知名大学计算机系开源课程收录(清华、北大、浙大、上交等)

2、C语言相关

  • 可能是最好的C语言学习路线
  • C语言相关书籍(附赠PDF资源)
  • C语言干货文章
  • C语言视频推荐
  • C语言开源项目推荐

3、C++相关

  • 入门教程(阿里云大学)
  • 可能是最亲民的C++学习路线
  • C++相关书籍(附赠PDF资源)
  • C++学习笔记
  • C++干货文章
  • C++视频推荐
  • C++开源推荐

4、Linux C/C++ 校招

5、Linux C/C++ 社招

1、往期编程资源推荐

1、可能是最好的互联网面试求职网站

前段时间我发现了一个很好的面试求职网站,能够根据指定行业、公司、面试岗位、科目以及考察时间等进行定向筛选面试真题,还附带了最近考察时间累计考察次数

简直是一大神器!!!比如我想查一下行业为互联网,公司为字节跳动,考察岗位为后端,科目不限,而考察时间为最近一年之类的面试题有哪些?

行业除了互联网还有国企、银行、外企等行业,截止我发现的时候是这样的,好像该网站后期又在逐步添加新的数据了。

就拿互联网来说,国内外主流一二线大厂全都覆盖了,比如字节跳动、阿里、腾讯、百度、美团等。

这里分享一下该网站,这么好的东西不能藏私,如果对你有帮助的话,帮忙点个赞就是最大的支持了!!感谢感谢!

网站链接https://top.interviewguide.cn/

3、一些你绝对用的上的编程资源汇总

4、知名大学计算机系开源课程收录

2、C语言相关

可能是最好的C语言学习路线

可能是北半球最好的零基础C语言学习路线

C 语言可以零基础入门,它的语法是很多高级编程语言的基础,比如说 Java、C++;并且起到承上启下的作用,向上可以学习高级编程语言,向下可以学习计算机组成原理、操作系统等等偏基础的计算机基础知识。

C语言相关书籍(附赠PDF资源)

推荐书籍:

  • 第一本书《阿哈C语言》的写书风格个人认为比较风趣幽默,对于培养兴趣,基础学习还是很不错的

  • 《C程序设计语言》,机械工业出版社,作者Brian W. Kernighan / (美)Dennis M. Ritchie。C 语言之父写的,入门经典书籍。

  • 《C Primer Plus》 ,人民邮电出版社,作者 Stephen Prata。 可以作为 C 语言工具书,也可以作为入门,内容循序渐进,能够锻炼编程思想。

  • 《C和指针》 深入了解指针,看完以后对指针不再害怕。

  • 《C陷阱与缺陷》 正如书上所说,“本书所揭示的知识,至少能够帮助你减少 C 代码和初级 C++ 代码中 90% 的 Bug”,看完后可以避免 C 语言开发的一些坑。

需要下载下面电子书的话,直接点击书名,输入提取码!

C语言干货文章

C语言视频推荐

C语言开源项目推荐

3、C++相关

入门教程

可能是最亲民的C++学习路线

这不就是你想要的保姆级 C++ 学习路线吗?

C语言->C with class -> C++; 由C++的演变可以看出来,C++ 刚开始就是带类的 C 语言,C 语言和 C++ 的关系到底是什么呢?
看过侯捷老师的视频或者《Effective C++》这本书就知道,现如今我们提到 C++,都应该视其为一个庞大的「语言联邦」,最起码包含如下几个重要的组成部分:

  • 面向过程编程
  • 面向对象编程
  • 泛型编程
  • 元编程
  • 函数式编程
  • STL标准库

其中「面向过程编程」,正是 C++ 提供的向后兼容 C语言的部分。

C++演化(C++ 98 ->C++ 03 -> C++ 11 -> C++ 14 -> C++20 -> ..... )

C++相关书籍(附赠PDF资源)

书籍推荐:

  • 《C++ Primer中文版》本书面向 C++ 语言的初学者,是一本很友好的自学教材。作者把 C 语言的基础概念和需要注意的编程细节说得很清楚,并且例程和习题丰富,相信认真读过之后,可以完成 C 语言入门这个目标。

  • 《高质量程序设计指南》,墙裂推荐,这本书看得比较过瘾,书里面有一些编程规范的东西,对于写程序的人来说,还是不错的,可以培养好的编码习惯,加深了一些知识的巩固。比较实用,也适合面试前看看。

  • 《Essential C++中文版》是一本内容不多但很实用的 C++ 入门书籍,强调快速上手与理解 C++ 编程。本书主要围绕一系列逐渐复杂的程序问题,以及用以解决这些问题的语言特性展开讲解。你不只学到 C++ 的函数和结构,也会学习到它们的设计目的和基本原理。

  • 《More Effective C++(中文版)》,该书围绕55条准则,每一条都介绍了一个可让你写出更好的C++程序代码的方法,并以特别设计过的例子详加讨论。

  • 《提高C++性能的编程技术》,本书认为 20% 的性能缺陷将会占用我们 80% 的时间。因此我们把精力集中在最有价值的地方。本书详细讨论了临时对象、内存管理、继承、虚函数、内联、引用计数以及 STL 等一切有可能提升 C++ 效率的细节内容。无论你是相关领域的从业人员,还是 C++ 程序设计爱好者,或者是渴望突破编程瓶颈、大幅提升自我修为的程序设计爱好者,本书都必将使你获益良多。

  • 《从缺陷中学习C/C++》从本质上来说,这就是一个 C/C++ 的错题集。全书中包括 63 个问题引发的错误,即书名中的缺陷。也是避坑指南。

  • 《C++ Templates中文版》,深入了解现代 c++ 模板的实用书籍。本书不仅是对 C++ 模板的权威解释,而且本书还深入地介绍了其他一般的 C++ 思想。

  • 《STL源码剖析》详细地了解 STL 的底层实现机制,同时也可以对常用数据结构,C++ 内存管理拥有更深的理解。

  • 还有《C++标准库(第2版)》、《C++并发编程实战》、《C++编程思想(两卷合订本)》等,介绍的这些书我都买了,不过说实话,后面的几本都是泛泛的看了下,当作工具书。

其他文档:

需要下载下面电子书的话,直接点击书名,输入提取码!

  • 一、基础知识
    • 1、goto 语句(不建议使用)
    • 2、一维数组
    • 3、二维数组
    • 4、函数中的值传递
    • 5、函数的声明
    • 6、函数的分文件编写
    • 7、指针
      • 7.1 指针的基本概念
      • 7.2 指针变量的定义和使用
      • 7.3 指针所占内存空间
      • 7.4 空指针和野指针
      • 7.5 const修饰指针
      • 7.6 指针和数组
      • 7.7 指针和函数
      • 7.8 指针、数组、函数
    • 8、结构体
      • 8.1 结构体基本概念
      • 8.2 结构体定义和使用
      • 8.3 结构体数组
      • 8.4 结构体指针
      • 8.5 结构体嵌套结构体
      • 8.6 结构体做函数参数
      • 8.7 结构体中 const使用场景
  • 二、核心编程
    • 1、内存分区模型
      • 1.1 程序运行前
      • 1.2 程序运行后
      • 1.3 new操作符
    • 2、引用
      • 2.1 引用的基本使用
      • 2.2 引用注意事项
      • 2.3 引用做函数参数
      • 2.4 引用做函数返回值
      • 2.5 引用的本质
      • 2.6 常量引用
    • 3、函数
      • 3.1 函数默认参数
      • 3.2 函数占位参数
      • 3.3 函数重载

C++干货文章

C++视频推荐

C++开源推荐

  • FreeNOS:深入理解C++,以及操作系统原理。FreeNOS(Free Niek的操作系统)是一个基于C++的基于微内核的学习操作系统。这是一个用C++实现的微内核的操作系统,各种宏内核中的服务作为一个独立的services在微内核中,基于消息的通信方式,这点其实跟mac内核中的mach那部分机制相似。
  • Boost:Boost 库是一个经过千锤百炼、可移植、提供源代码的C++ 库,作为标准库的后备,是C++ 标准化进程的发动机之一。 Boost 库由C++标准委员会库工作组成员发起,在C++ 社区中影响甚大,其成员已近2000 人。 Boost 库为我们带来了最新、最酷、最实用的技术,是不折不扣的“ 准” 标准库。
  • muduo:一个基于 Reactor 模式的现代 C++ 网络库,它采用非阻塞 IO 模型,基于事件驱动和回调,支持多核多线程,适合编写 Linux 服务端多线程网络应用程序。
  • libevent:一个是轻量级的网络库.
  • log4cpp:日志库, 支持多线程, 日志重定向到网络等都有, 反正你能想到的日志的功能, 都有。
  • OpenSSL:OpenSSL 包含一个命令行工具用来完成OpenSSL 库中的所有功能,更好的是,它可能已经安装到你的系统中了。
  • wfrest:简单高效的c++11异步restful网络框架。
  • workflow:当前最火最简洁好用的c++异步网络库workflow。
  • modern-cpp-tutorial:modern-cpp-tutorial 是现代 C++ 教程,它的目的是提供关于现代 C++(2020 年前)的相关特性的全面介绍。
  • MyTinySTL:用 C++11 重新复写了一个小型 STL(容器库+算法库)。代码结构清晰规范、包含中文文档与注释,并且自带一个简单的测试框架,适合 C++ 新手来实践一番。
  • Tinytetris:Tinytetris 是一个用 C++ 编写的终端版俄罗斯方块游戏。它提供了两个版本的源码,分为注释版和库版,注释较多易于理解和学习。

4、Linux C/C++ 校招

5、Linux C/C++ 社招