我先说一下自己学习C/C++技术栈的一些内容,然后再分享一些其余技能的学习,比如网络编程、计算机网络、数据库等。
我本科 + 研究生期间一直学的是C/C++技术栈,均于某中流985 CS就读。
校招时也拿到过不少互联网大厂的实习offer和正式offer,现在依然在从事Linux C/C++的开发工作,以前在百度搬砖,现在在字节从事C++技术栈的开发。
在百度实习的时候受导师影响,开始分享一些我的计算机学习经验,
慢慢的把自己的学习经验和学习资源等开源在github以及码云平台上。这是我已经分享出来的内容:
我学习计算机十年计算机学习经验汇总分享这些内容不求什么回报,只希望你先双击一下屏幕点个赞、感谢与收藏~
一是当做对我继续分享计算机学习、编程知识的鼓励,
二是作为你大步流星的往前走,是你进步的开始见证,
三是下次想再看这么好的汇总和整理,却找不到这个回答了。
我学习C语言和C++基本都是自学的,都是通过一些看的视频+各种书籍学的,或者直接说的夸张点,计算机基本都是靠我自学的。。。
这是我以前面试百度时的面经总结
如果你是一个C++面试官,你会问哪些问题?再来分享一下自己学习C/C++的经验,之前为小白写了一份C/C++语言入门的万字总结,
韩飞宇:熬夜整理的C/C++万字知识总结(一)
韩飞宇:熬夜整理的C/C++万字知识总结(二)
韩飞宇:熬夜整理的C/C++万字知识总结(三)
韩飞宇:熬夜整理的C/C++万字知识总结(四)
韩飞宇:熬夜整理的C/C++万字知识总结(五)
<hr/>1、C++ 学习笔记仓库(已开源)
这是一份涵盖大部分 C++ 程序员所需要掌握的知识。入门、进阶、深入、校招、社招,准备 C++学习 & 面试,首选CppGuide!
可能是你见过的最好的C/C++学习仓库
这是我自己的学习经验,目前已经开源在了github上,如果你因为网络等原因无法访问github,我在国内的码云也放了一份,同样可以供你学习C/C++!
github开源地址:https://github.com/GrindGold/CppGuide
码云开源地址:https://gitee.com/grindgold/CppGuide
图解操作系统、网络、计算机组成PDF下载!那些让你起飞的计算机基础知识~
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++大佬的面试总结经验PDF文件!2、C++ 入门课程41课时阿里云大学
阿里云大学的这个入门课程不错,总结的相当可以,甚至包括最开始如何进行环境搭建都给你介绍到了。
开发必备!C++离线版参考手册!免费分享!绝对属于小白向的教程了。
- C++ 教程
- C++ 简介
- C++ 环境设置
- C++ 基本语法
- C++ 注释
- C++ 数据类型
- C++ 变量类型
- C++ 变量作用域
- C++ 常量
- C++ 修饰符类型
- C++ 存储类
- C++ 运算符
- C++ 循环
- C++ 判断
- C++ 函数
- C++ 数字
- C++ 数组
- C++ 字符串
- C++ 指针
- C++ 引用
- C++ 日期 & 时间
- C++ 基本的输入输出
- C++ 数据结构
- C++ 类 & 对象
- C++ 继承
- C++ 重载运算符和重载函数
- C++ 多态
- C++ 数据抽象
- C++ 数据封装
- C++ 接口(抽象类)
- C++ 文件和流
- C++ 异常处理
- C++ 动态内存
- C++ 命名空间
- C++ 模板
- C++ 预处理器
- C++ 信号处理
- C++ 多线程
- C++ Web 编程
- C++ STL 教程
- C++ 标准库
大格局!清华大学计算机系课程攻略共享计划!附赠离线版资源!推荐一个C++语法学习网站
对了,这里再推荐一个C++学习网站吧,我受益良多、
经常在私信里看到有小伙伴问我学习完C/C++或Java、数据机构与算法等后可以去哪里练手和做项目?
其实网上有很多类似的开源题库可以供你联系,今天就 良心推荐一个计算机学习网站,可能是我用过最好的计算机学习网站,可以刷算法、C/C++、Java、硬件、前端等,还有大厂面经、面试真题等。
力扣这种比较知名的网站,我就不说了,今天来安利另一个网站:牛客网,可能计算机专业的学生最应该上的一个网站。
它是我校招找工作阶段最大的助力网站,可以说,没有牛客网就没有我后面那么多的面试邀约以及offer。
给我发的各种买时邀约
最后的字节offer
牛客网作为国内内容超级丰富的 IT 题库,题库+面试+学习+求职+讨论+考研题库+招聘内推,堪称&#34;互联网求职神器&#34;。
可能是我用过最好的计算机学习网站,可以刷算法、C/C++、Java、硬件、前端等,还有大厂面经、面试真题等。
下面是一些我用过的其中一些比较好的在线题库:
- C语言练习题库
- C++练习题库
- 算法-面试必刷101
- 计算机基础必备基础知识练习
现在是免费注册的,据我所知后面注册可能要收费了,如果你有类似的需要我建议你现在注册一个,正所谓:不白嫖就是亏!!!嘎嘎嘎!
除此之外,也有各个公司的面试题和面经分享,找工作前认真刷一刷,一定会有很大收获!拿到心仪的 offer!这个不多说,直接看图,各种类型应有尽有。
下面是一些我用过的其中一些比较好的在线题库&面经汇总,分享一波:
- 互联网面试面经合集
- C++/Java练习题库
- 算法-面试必刷101
- 计算机基础必备基础知识练习
不过现在是免费注册的,不知道后面注册会不会收费,如果你有类似的需要我建议你现在注册一个,一定用得上!不白嫖就是亏!!!
<hr/>3、推荐视频
推荐先看黑马c++的基础篇以及第四章节的入门书籍推荐再看侯捷老师的系列书籍以及并发编程等书。
1、黑马c++(基础篇)
黑马程序员匠心之作|C++教程从0到1入门编程,学习编程不再难_哔哩哔哩_bilibili2、侯捷老师的八部曲
- 侯捷C++ 标准 11 -14
- 侯捷STL 和 泛型编程
- 侯捷C++ 内存管理
- 侯捷C++面向对象高级开发
- 侯捷STL与泛型编程
- 侯捷 C++ Startup 揭密:C++ 程序的生前和死后
- 陈硕第三套、Linux CC++网络编程实践-陈硕
离线版资源
侯捷C++视频全集与网络编程4、书籍推荐
秉着好东西不藏私的原则分享出来!我把自己学习计算机八九年以来的书籍分享出来了,最后汇总开源成为一个计算机经典编程书籍仓库了。
如果对你有用可以点赞支持一下我!后续会继续分享一些计算机学习的编程资源!
其中包括经典大黑书、编程电子书、电子书、编程书籍,包括计算机基础、C/C++、Java、Python、面试题、架构设计、算法系列等经典电子书。
目前已经开源在了github上,如果你因为网络等原因无法访问github,我在码云也放了一份,同样可以供你学习编程!
github开源地址:https://github.com/GrindGold/pdf
码云开源地址:https://gitee.com/grindgold/pdf
小白入门首选《C++ Primer中文版》
《C++ Primer中文版》本书面向 C++ 语言的初学者,是一本很友好的自学教材。
作者把 C 语言的基础概念和需要注意的编程细节说得很清楚,并且例程和习题丰富,相信认真读过之后,可以完成 C 语言入门这个目标。
华为最牛逼的c++ 基础与提高PDF(含下载)当然了,你也可以选择Essential C++中文版,但我还是推荐Primer这本书。
《Essential C++中文版》是一本内容不多但很实用的 C++ 入门书籍,强调快速上手与理解 C++ 编程。
你不只学到 C++ 的函数和结构,也会学习到它们的设计目的和基本原理。
《高质量程序设计指南》,这本书看得比较过瘾,书里面有一些编程规范的东西,对于写程序的人来说,还是不错的,可以培养好的编码习惯,加深了一些知识的巩固。
比较实用,也适合面试前看看。
开发必备!C++离线版参考手册!免费分享!
C++进阶N部曲
《STL源码剖析》详细地了解 STL 的底层实现机制,同时也可以对常用数据结构,C++ 内存管理拥有更深的理解。
《More Effective C++(中文版)》,该书围绕55条准则每一条都介绍了一个可让你写出更好的C++程序代码的方法,并以特别设计过的例子详加讨论。
5、网络编程
有网络和操作系统的基础很重要。
非常适合初学者学习的,对网络编程的讲解清晰直白,完全适合新手入门,写出了网络编程的每一个步骤。
学习Unix必备的经典书籍,重要章节看看,可以当工具书使用。
进程控制 ,线程控制,进程环境,进程通信 讲得尤为精彩,网络部分讲得比较浅,但也够用。整本书可以说涵盖了Linux的方方面面,面面俱到,甚至很细。
本书是 Linux 服务器编程领域的经典著作,从网络协议 TCP/IP、服务器编程核心要素,Linux 网络编程 API、高级 I/O 函数、Linux 服务器程序规范、高性能服务器程序框架、I/O 复用、信号、定时器、高性能 I/O 框架库 Libevent、多进程编程、多线程编程、进程池和线程池等内容等多角度全面阐释了编写高性能 Linux 服务器应用的方法、技巧和思想。还包含两个综合性案例,从实战的角度讲解了高性能服务器的优化、系统监测工具的使用等内容。
本书是陈硕大佬的作品,重点讲解一种适应性较强的多线程服务器的编程模型,即 one loop per thread。这是在 Linux 下以 native 语言编写用户态高性能网络程序最成熟的模式,掌握之后可顺利地开发各类常见的服务端网络应用程序。本书以 muduo 网络库为例,讲解这种编程模型的使用方法及注意事项。
具体书单可以看下我以前的一个总结:
计算机专业必读书籍汇总!视频&源码
推荐陈硕大佬的《Linux CC++网络编程实践》以及开源的库 muduo
陈硕大佬网络编程与侯捷c++视频
libevent 是一个轻量级的基于 event 回调机制的网络编程库,可以支持 Linux、Solaris、Windows 等系统,它本身是用 C 语言写的,比较适合入门级的阅读。
GitHub - libevent/libevent: Event notification library
Asio 是 boost 里的网络编程库,是用 C++ 语言写的。里面用了很多 boost 的数据结构和技巧,包括大量模板的使用,有一定的语言难度。
Boost.Asio - 1.75.0
既然已经掌握了c语言、c++、数据结构与算法基础。我觉得还需要学习下计算机网络、操作系统、数据库。
6、计算机网络
堪称 TCP/IP 领域的圣经。作者 W. Richard Stevens,他从使用者(程序员)的角度,以 tcpdump 为工具,对 TCP 协议抽丝剥茧娓娓道来,让人叹服。恐怕 TCP 协议的设计者也难以讲解得如此出色,至少不会像他这么耐心细致地画几百幅收发 package 的时序图。
经典书籍,着重看TCP/UDP部分。
秉着好东西不藏私的原则分享出来!我把自己学习计算机八九年以来的书籍分享出来了,最后汇总开源成为一个计算机经典编程书籍仓库了。
我学习计算机以来自己收藏的计算机电子书
如果对你有用可以点赞支持一下我!后续会继续分享一些计算机学习的编程资源!
其中包括经典大黑书、编程电子书、电子书、编程书籍,包括计算机基础、C/C++、Java、Python、面试题、架构设计、算法系列等经典电子书。
目前已经开源在了github上,如果你因为网络等原因无法访问github,我在码云也放了一份,同样可以供你学习编程!
github开源地址:https://github.com/GrindGold/pdf
码云开源地址:https://gitee.com/grindgold/pdf
视频
https://www.bilibili.com/video/BV1c4411d7jb?p=1
https://www.bilibili.com/video/BV1gV411h7r7?p=1 7、数据库
书
入门书籍,书中从介绍简单的数据检索开始,逐步深入一些复杂的内容,包括联结的使用、子查询、正则表达式和基于全文本的搜索、存储过程、游标、触发器、表约束等等。
进阶书籍,mysql 领域的经典之作。不但适合数据库管理员(dba)阅读,也适合开发人员参考学习。不管是数据库新手还是专家,相信都能从本书有所收获。
升华书籍,详细讲解了 InnoDB 存储引擎内部的各个功能模块的实现原理,对大家阅读和理解 InnoDB 的源代码有重要的指导意义。适合所有希望构建和管理高性能、高可用性的 MySQL 数据库系统的开发者和 DBA 阅读。
其他书籍:
《数据库系统实现》、《Redis设计与实现》。
视频
MySQL_基础+高级篇- 数据库 -sql -mysql教程_mysql视频_mysql入门_尚硅谷
https://www.bilibili.com/video/BV12b411K7Zu?from=search&seid=2779357081480449466 8、操作系统
书
本书是操作系统领域的经典之作,讲的全面详细,包括进程、线程、存储管理、文件系统、I/O、死锁、接口设计、多媒体、性能权衡,以及有关操作系统设计的最新趋势。不仅涵盖了现代操作系统的原理和实践,而且特别关注了Linux操作系统、Windows Vista操作系统、嵌入式操作系统、实时操作系统以及多媒体操作系统。所以也是面试笔试操作系统的宝典。
这是一本很深入和方向性的书,每个 CS 学子都应该去读,它会告诉你,要想成为一个优秀的程序员,你应当重点理解哪些计算机底层原理。
其他书籍:
《计算机组成原理与设计》。
视频
- 计算机组成原理 清华大学刘卫东 全58讲 国家精品课程
https://www.bilibili.com/video/BV1c4411w7nd?p=1
https://www.bilibili.com/video/BV1t4411e7LH?p=1 其他书籍:
《操作系统真象还原》、《30天自制操作系统》。
https://www.bilibili.com/video/BV1d4411v7u7?p=1
- 2020 南京大学 “操作系统:设计与实现” (蒋炎岩)
https://www.bilibili.com/video/BV1N741177F5?p=1 <hr/>最后
身为过来人实在想说一句:学习计算机一定不要想着速成,这行是没有什么捷径和超能力的。
要下苦功夫去啃那些经典书和源码,然后自己动手写,所有技术大佬都是一行行代码敲,一本本书啃出来的。
如果有计算机学习、校招求职、考研、读研感兴趣的小伙伴也可以关注,一直致力于分享计算机学习、校招相关、硬核技术等,让你们少走弯路! |