美文网首页技术路线系列
计算机各方向学习路径(突出C++)

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

作者: Neuroway | 来源:发表于2020-10-20 16:50 被阅读0次

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

    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++)

        本文链接:https://www.haomeiwen.com/subject/dppdmktx.html