小白想要入行计算机?按这个基础学习路线来! 附计算机基础教程

本文作者:程序员鱼皮

免费编程学习 - 编程导航网:https://www.code-nav.cn

这篇文章汇总分享一些计算机领域的通用基础知识,方便零基础但想入行学习计算机的朋友学习。主要包括:

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

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

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

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

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

计算机导论

介绍

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

学习建议

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

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

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

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

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

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

知识

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

资源

入门

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

进阶

想要进大厂、或者准备考研的同学,可以抽些时间去啃下面的书籍。

这里鱼皮给出对应的视频公开课,自己学校的老师讲的不清楚的话,可以通过这些课程查漏补缺:

数据结构和算法

因为程序的本质就是 "数据结构 + 算法",所以数据结构和算法可能是所有计算机基础知识中最重要的,也是面试时最容易被考察的。

对于科班的同学来说,一般大一学编程语言时,学校老师就会让你刷 OJ 题目来接触数据结构和算法了;对于非科班的同学、或者着急就业的同学来说,数据结构和算法可以先不学,先去学习能让你做出作品的技术框架,之后有时间了再刷刷题。

更详细的路线请见:https://www.code-nav.cn/post/1640586867363954689

操作系统

操作系统是管理计算机硬件与软件资源的计算机程序,是计算机系统中 最基本 的系统软件,大到 PC 电脑,小到微型芯片,都离不开操作系统,学习它的必要性也就不言而喻了。

后端开发(尤其是 C++ 开发),一定要学好操作系统,才能帮助我们开发出更高性能的系统。

更详细的路线请见:https://www.code-nav.cn/post/1640587909942099969

计算机网络

如今,我们开发的绝大多数程序都依赖网络来加载文件和数据,比如网站、小程序、后台程序等,因此计算机网络的重要性不言而喻。

个人感觉,计算机网络的知识可能比操作系统更普适一些,无论是前端、后端、还是网络运维,都要学好计算机网络,有助于我们开发出占用带宽更少、加载更快的网络程序。

更详细的路线请见:https://www.code-nav.cn/post/1640588119619551233


加油小伙伴们 💪🏻

更多编程学习资源

相关推荐
前行的小黑炭18 分钟前
设计模式:为什么使用模板设计模式(不相同的步骤进行抽取,使用不同的子类实现)减少重复代码,让代码更好维护。
android·java·kotlin
Java技术小馆23 分钟前
如何设计一个本地缓存
java·面试·架构
XuanXu1 小时前
Java AQS原理以及应用
java
风象南4 小时前
SpringBoot中6种自定义starter开发方法
java·spring boot·后端
mghio13 小时前
Dubbo 中的集群容错
java·微服务·dubbo
咖啡教室18 小时前
java日常开发笔记和开发问题记录
java
咖啡教室18 小时前
java练习项目记录笔记
java
鱼樱前端18 小时前
maven的基础安装和使用--mac/window版本
java·后端
RainbowSea19 小时前
6. RabbitMQ 死信队列的详细操作编写
java·消息队列·rabbitmq