计算机各方向学习路径(突出C++)

本文主要讨论四部分内容:

1.计算机学习的内容究竟有哪些,

2.怎样做好理论概念学习,工程实践锻炼

3. 行业主要岗位描述(JD)分析,如何面向面试与入职大厂而学习

4. C++ 方向常见的开源项目


一. 计算机开发的学习路径主要分两个部分

【理论概念】 与 【工程实践】



1. 理论概念

理论概念的学习就是要理解清楚计算机系统、软件系统的设计原理、思路、方法。

学习的目标是能够正确把握各个组件之间的关系,优缺点,理解设计的正确方法。

这部分学习不要求过多的进行实践,更多地是需要进行阅读、理解、思考,分享。

基础一级领域:(通用领域,基础知识各个领域交叉)

计算机网络,计算机组成原理 (以及体系结构)(组成原理体系结构,大致对应深大的计算机系统2/3),

操作系统:看书、PPT、MOOC,实践结合。

基础物理:看书,MOOC

逻辑电路:看书、PPT,MOOC

离散数学:PPT,MOOC

概率论与统计:PPT,MOOC

数据结构:看书、PPT、MOOC,实践结合,

算法:看书、PPT、MOOC,实践结合。



二级领域(更加专业性,各个学科之间交叉较少)

计算机图形:计算机动画、图形学、计算机视觉,虚拟现实等等

音视频:人机交互, 多媒体编码, 图像音频识别, 视频处理

数据库理论:分布式系统、关系型数据库理论,数据分布式,SQL优化 等等

分布式技术:后台系统架构,分布式服务,微服务,容器化,大流量下的优化

机器学习:很多,神经网络相关理论

密码学:数论,数学分析方法,离散数学

虚拟化技术:虚拟机,服务器等等

程序语言:编译器,语言设计,动静态之分,类型系统,运行时环境,常见基础库

Serverless:响应式编程,Lambda 编程,函数式编程

编译原理与优化原理

嵌入式:RTOS,操作系统,内存管理,驱动程序


2. 工程实践

C语言基础:官网,MOOC,参考网站(菜鸟Runoob, Cppreference等)

C++ 语言基础:官网,MOOC,参考网站(菜鸟Runoob, Cppreference等)

STL与C++的特性:看书,官网,参考网站,博客,实践结合。重点是理解常见数据结构,体会算法与数据结构的分离,理解抽象(元)编程, Abstract Programming / Meta-programming。

内存管理:看书,博客,语言参考,实践结合。 重点是理解存储体系,理解内存管理的目标,常见问题,已经应对方式。

代码规范:实践,文档,博客结合

资源访问与管理:实践,文档,博客,实践结合

调试器:实践,文档,博客,实践结合

测试工具:实践,博客,实践结合

自动化:博客,实践,文章,实践结合

脚本:Python等MOOC,博客,实践结合。

构建系统:实践、文档结合, 

编译器的使用:文档,博客,实践结合

Linux 常用工具的基本理解:实践,文档,博客结合

代码审议与结伴编程:实践、看书结合

敏捷开发:看书


此外还有一些二者综合的部分

譬如,开发的一些协作工具(Git),https://git-scm.com/book/zh/v2

如何重构代码,敏捷开发模式 https://www.jianshu.com/p/ee653f91cd63

有哪些设计模式 https://www.runoob.com/design-pattern/design-pattern-tutorial.html

等等。


三、一些行业JD可以做分析:


腾讯的研究类JD



游戏引擎方向



后台开发方向




PC客户端方向



四、给出一些方向的开源项目建议大家可以尝试参与:

有一些国外大哥汇总了一些:https://github.com/fffaraz/awesome-cpp

下面是我自己考虑的一些:

1. 计算机网络

Nginx, http://nginx.org/

Apache2,  https://github.com/apache/httpd

Git, https://git-scm.com/

Tcpdump,

Lynx, 


2. 编译系统

Open64,  https://github.com/lugt/open64

GCC, https://github.com/gcc-mirror/gcc

Clang+LLVM, http://llvm.org/


3. 游戏

主流端向:

Unity,  使用者以 C# 为主要开发语言,游戏引擎本身没开源(截止2020年)

Unreal, 部分使用前提下开源,https://www.unrealengine.com/zh-CN/get-now

开源向:Wesnoth,

OpenGL


4. 安全性方向

OpenSSL, 官网需要科学上网,只能放个Github, https://github.com/openssl/openssl

GDB, GNU LD

SELinux


5. 操作系统与虚拟化

Docker (Go)

Qemu

LVM

GFS 的理论成果


6. 数据库

ClickHouse: https://clickhouse.tech/

TiDB:(Rust) https://pingcap.com/

SQLite:(纯C)https://github.com/

MySQL (不太推荐新人看)


7. 音视频

ffmpeg


8. 图形方向

OpenGL, 

Qt


9 编程语言

Wasmer / Wasm3 / Wasm micro runtime

OpenJDK

Lua Interpreter

V8

你可能感兴趣的:(计算机各方向学习路径(突出C++))