我的本科是吉林大学的电子信息工程专业,培养计划上更侧重于底层硬件和电路设计。虽然和计算机知识密不可分,但和计算机专业“科班”的学习内容总归不太一样。本科那时还认真学了MATLAB,以及各种绘制电路的专业知识和工具,现在看来暂无用武之地。
后来到北邮的人工智能专业读研,一开始就感觉到了在编程方面确实差了很多,我从那时才开始学习Python。
而且我经常觉得十分欠缺计算机网络相关的知识,研一那时完全搞不懂什么IP地址、DHCP、DNS服务器、局域网,连上实验室的打印机都花了很长时间研究。我意识到计算机网络真是和生活最息息相关的一门计算机基础课了。
总而言之,我想结合自己本科和硕士的专业背景,绘制一份融合两个学科的专业基础知识地图。方便自己查阅,或许也能方便别人学习。
虽然现在工作和生活中最常用的是计算机专业相关的知识,但是仍然不想遗弃电工专业的基础。一方面具备电路设计能力可以极大扩展自身DIY能力,本科时也经常做些小玩意,希望今后仍可以重拾这种乐趣;另一方面,电工专业的知识提供了一些基于底层硬件和信号处理的视角,与计算机专业相结合,当然更有助于看待和分析问题。
“基础不牢,地动山摇”,或许即便工作经验渐渐丰富,这份地图仍会不时的派上用场。
计算机相关专业入门阶段的核心课程,涵盖硬件、软件、编程、网络、数据管理等底层逻辑和基础知识。不同学校或领域的课程设置可能略有差异,但核心内容大致包括以下几类:
1. 计算机硬件与组成基础
电路:电路设计基础、模拟电路和数字电路
- 数字逻辑与电路
核心内容:逻辑门(与、或、非)、组合逻辑电路、时序逻辑电路、触发器、寄存器等基础电子元件的工作原理,以及如何通过电路实现简单的运算和控制功能。
作用:是计算机硬件的“微观基础”,解释硬件功能的物理实现。
- 数字逻辑与电路
信号与系统:
[[计算机组成原理 MOC]]
核心内容:计算机的硬件结构(CPU、内存、外存、输入输出设备等)、指令系统、数据的表示与运算(二进制、十进制转换,定点数/浮点数运算)、存储器层次结构(缓存、主存、辅存)等。
作用:理解“计算机如何通过硬件实现计算和数据处理”的底层逻辑。微机原理
全称 “微型计算机原理与接口技术”,主要以 微型计算机(尤其是个人计算机 PC) 为研究对象,聚焦于微型处理器(如 x86 系列 CPU)为核心的硬件系统结构、工作原理及外部设备接口技术。
定位:更偏向 “具体微型计算机的实现细节”,贴近实际应用场景(如 PC 的硬件组成、接口开发)。计算机组成原理
研究 通用计算机系统的硬件组成、各部件工作原理及协同机制,是所有类型计算机(从微型机到大型机、超级计算机)的共性硬件理论基础。
定位:更偏向 “抽象的硬件体系结构”,揭示计算机硬件的通用规律。
2. 软件与操作系统基础
操作系统原理
核心内容:操作系统的功能(进程管理、内存管理、文件管理、设备管理)、进程调度算法、内存分配策略(分页、分段)、文件系统结构、死锁处理等。
作用:理解“操作系统如何协调硬件资源、管理软件运行”,是软件运行的“底层管理者”。软件工程基础
核心内容:软件开发的基本流程(需求分析、设计、编码、测试、维护)、软件开发模型(瀑布模型、敏捷开发等)、面向对象编程思想(封装、继承、多态)、软件测试基础等。
作用:掌握规范化开发软件的方法,避免“写代码只靠感觉”。
3. 编程语言与算法基础
程序设计基础(入门语言)
核心语言:通常以 C语言 或 Python 为入门(C语言更贴近硬件和底层逻辑,Python更易上手)。
核心内容:变量、数据类型、控制语句(分支、循环)、函数、数组、指针(C语言重点)、面向对象基础(类、对象)等。
作用:掌握“用代码指挥计算机做事”的基本工具和语法。数据结构与算法
核心内容:基本数据结构(数组、链表、栈、队列、树、图、哈希表)、经典算法(排序、查找、递归、动态规划、贪心算法等)、算法复杂度分析(时间/空间复杂度)。
作用:是“解决问题的逻辑框架”,决定代码的效率和可扩展性,是计算机领域的“内功”。
4. 计算机网络基础
- 计算机网络原理
核心内容:网络分层模型(OSI七层模型、TCP/IP四层模型)、数据传输方式(TCP可靠传输、UDP不可靠传输)、IP地址与子网划分、HTTP/HTTPS协议、DNS域名解析、路由与交换等。
作用:理解“计算机之间如何通信”,是互联网、分布式系统的基础。
5. 数据库基础
- 数据库原理与SQL
核心内容:关系型数据库(如MySQL)的基本概念(表、字段、主键、外键、关系)、SQL语言(增删改查、聚合查询、联表查询)、数据库设计原则(三大范式)等。
作用:掌握“高效存储、管理和查询数据”的方法,是信息系统(如网站、APP)的核心组件。
6. 通识性基础
- 计算机导论/计算机科学概论
核心内容:计算机发展历史、计算机科学的主要分支(人工智能、软件工程、网络安全等)、计算思维(抽象、自动化、分解问题)等。
作用:对计算机领域进行宏观梳理,建立整体认知。
为什么这些是“基础”?
这些课程构成了计算机领域的“底层逻辑”:无论是开发软件、设计硬件、搭建网络,还是处理数据,都需要依赖这些知识。例如,写代码需要编程语言和算法基础,优化程序性能需要了解操作系统和计算机组成,开发网络应用需要网络和数据库知识。
掌握这些基础后,再学习更细分的领域(如人工智能、大数据、网络安全)会更易理解其底层原理,而非停留在“工具使用”层面。
💬 评论