# 计算机基础学习路线 by 程序员鱼皮

本文作者:程序员鱼皮 (opens new window)

本站地址:https://codefather.cn (opens new window)

这篇文章汇总分享一些计算机领域的通用基础知识,主要包括:

  • 计算机导论(计算机基本概念)
  • 数据结构和算法
  • 操作系统
  • 计算机网络

俗话说的好,基础不牢,地动山摇!只要你想入行并学好计算机,无论是什么岗位,最好都系统地学习下这些知识。尤其对于以逻辑思考为主的岗位(比如后端开发、算法工程师、系统开发、游戏开发等),这些基础知识更为重要。

短时间来看,学这些知识可能会花费你一些时间;但从长期来看,基础好的同学,往往更容易理解后面学习的新知识,后期的发展会更顺利。

就拿 “算法” 来举例,鱼皮刚开始也被算法折磨,觉得刷题没什么用,就是为了应付面试;但等到工作后,遇到复杂的业务场景时,由于我刷过算法,我才能想到用算法来解决问题,提高程序的执行效率。

当然,如果你的时间非常有限,比如只有不到半年的时间就要找工作,那么先不用系统学习这些,课外时间看看视频或书籍了解一下就好了,工作后再去补充基础知识。

# 计算机导论

# 介绍

计算机导论是介绍和科普计算机的入门课程,主要帮助大家在正式开始计算机学习前,先对计算机科学有一个大致的认识,包括计算机的历史和发展、计算机的应用领域和方向、计算机中的重要概念等等。

# 学习建议

计算机导论也是很多计算机专业同学的第一门课程,但是,它却是很多同学口中的 “水课”!鱼皮曾经也这么认为,甚至还在课堂上打起了斗地主,并且因此被点名批评。。。

不是说这门课不重要,而是很多学校没有把它讲好,再加上学生学完这个课又做不出东西,所以才给了大家一种 “水” 的感觉吧。

如果学校教了这门课,讲的还不错,那么建议适当听一听。虽说学习计算机导论并不会直接提高你的编程技能,但是它能够让你更了解计算机,从而在一定程度上帮助你培养学习兴趣、确定学习方向。

而如果你是自学编程,不用刻意去学习计算机导论(尤其是不要读什么计算机导论书籍),而是可以通过看视频、阅读课外读物的方式慢慢地了解计算机。

但无论你是跟学校的课还是自学,都必须要了解以下这些知识点和概念!都是我觉得比较重要的。

千万别真的只会埋头写代码,却连最基本的计算机知识都不懂。

# 知识

  • 计算机的历史和发展过程
  • 计算机应用领域和发展方向
  • 数字技术
    • 进制
    • 电路
  • 计算机体系结构
    • CPU
    • 内存
    • I / O 设备
    • 硬盘
  • 程序设计语言
  • 算法(简单了解)
  • 操作系统(简单了解)
  • 计算机网络(简单了解)
    • 网络拓扑结构
    • 网络设备
    • 因特网
      • 网址和域名解析服务
  • 数据库(简单了解)
  • 网络信息安全
    • 数据加密
    • 数字签名
    • 身份鉴权
    • 访问控制
    • 计算机病毒
  • 多媒体
    • 数字图像
    • 数字声音
    • 数字视频
  • 职业道德

# 资源

# 入门

一般情况下,看以下几份资料就足够了:

  • 视频《计算机科学速成课》:https://www.bilibili.com/video/BV1EW411u7th (opens new window) (从底层到上层的计算机知识科普,强烈推荐)
  • 书籍《半小时漫画计算机》:https://book.douban.com/subject/35619441/(很有趣的科普书籍)
  • 书籍《码农翻身》:https://github.com/luanguang/book-pdf/blob/master/%E7%A0%81%E5%86%9C%E7%BF%BB%E8%BA%AB%EF%BC%9A%E7%94%A8%E6%95%85%E4%BA%8B%E7%BB%99%E6%8A%80%E6%9C%AF%E5%8A%A0%E7%82%B9%E6%96%99.pdf(也是很有趣的科普书籍)

# 进阶

想要进大厂、或者准备考研的同学,可以抽些时间去啃下面的书籍。 这里鱼皮给出对应的视频公开课,自己学校的老师讲的不清楚的话,可以通过这些课程查漏补缺:

# 数据结构和算法

因为程序的本质就是 “数据结构 + 算法”,所以数据结构和算法可能是所有计算机基础知识中最重要的,也是面试时最容易被考察的。 对于科班的同学来说,一般大一学编程语言时,学校老师就会让你刷 OJ 题目来接触数据结构和算法了;对于非科班的同学、或者着急就业的同学来说,数据结构和算法可以先不学,先去学习能让你做出作品的技术框架,之后有时间了再刷刷题。 更详细的路线请见:https://www.code-nav.cn/post/1640586867363954689 (opens new window)

# 操作系统

操作系统是管理计算机硬件与软件资源的计算机程序,是计算机系统中 最基本 的系统软件,大到 PC 电脑,小到微型芯片,都离不开操作系统,学习它的必要性也就不言而喻了。 后端开发(尤其是 C++ 开发),一定要学好操作系统,才能帮助我们开发出更高性能的系统。 更详细的路线请见:https://www.code-nav.cn/post/1640587909942099969 (opens new window)

# 计算机网络

如今,我们开发的绝大多数程序都依赖网络来加载文件和数据,比如网站、小程序、后台程序等,因此计算机网络的重要性不言而喻。 个人感觉,计算机网络的知识可能比操作系统更普适一些,无论是前端、后端、还是网络运维,都要学好计算机网络,有助于我们开发出占用带宽更少、加载更快的网络程序。 更详细的路线请见:https://www.code-nav.cn/post/1640588119619551233 (opens new window)


加油小伙伴们 💪🏻

编程导航   |