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

本文作者:程序员鱼皮

免费编程学习 - 编程导航网: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


加油小伙伴们 💪🏻

更多编程学习资源

相关推荐
陈大爷(有低保)10 分钟前
UDP Socket聊天室(Java)
java·网络协议·udp
kinlon.liu24 分钟前
零信任安全架构--持续验证
java·安全·安全架构·mfa·持续验证
李小星同志25 分钟前
高级算法设计与分析 学习笔记6 B树
笔记·学习
霜晨月c37 分钟前
MFC 使用细节
笔记·学习·mfc
王哲晓1 小时前
Linux通过yum安装Docker
java·linux·docker
java6666688881 小时前
如何在Java中实现高效的对象映射:Dozer与MapStruct的比较与优化
java·开发语言
Violet永存1 小时前
源码分析:LinkedList
java·开发语言
小江湖19941 小时前
元数据保护者,Caesium压缩不丢重要信息
运维·学习·软件需求·改行学it
执键行天涯1 小时前
【经验帖】JAVA中同方法,两次调用Mybatis,一次更新,一次查询,同一事务,第一次修改对第二次的可见性如何
java·数据库·mybatis
Jarlen1 小时前
将本地离线Jar包上传到Maven远程私库上,供项目编译使用
java·maven·jar