查看原文
其他

作为计算机专业学生,最应该学习的课程前五位是什么?

程序员吴师兄 吴师兄学算法 2022-06-20
点击关注上方“五分钟学算法”,

设为“置顶或星标”,第一时间送达干货。

来源:五分钟学算法


前几天读者群里有小伙伴询问作为计算机专业学生,最应该学习的课程前五位是什么。问题一抛出来,讨论还挺厉害的,各有各的看法,以下为个人看法,欢迎补充或者反驳:

不知不觉自己的程序员生涯已经有 6 年。

变秃了,也变强了。

如果让我回到大学生涯,我一定会认认真真的学习下面的课程,起码我的头发可以少掉一半!

1、计算机组成原理

2、计算机操作系统

3、计算机编译原理

4、数据结构与算法

5、计算机网络

一、计算机组成原理

计算机组成原理这门课很好地向我们阐述了计算机是如何工作的,妹子咨询你电脑问题的时候,答案就藏在这门课程里面(大雾)。

推荐书籍:《深入理解计算机系统》

这本书是从程序员的角度来看待整个计算机系统的,所以是非常适合程序员的。但是这本书不仅仅包含了计算机硬件的相关知识,同时还包含了包括操作系统、计算机网络等相关知识。

二、计算机操作系统

无论你学习什么编程语言,和都避免不了和操作系统打交道,比如你学习 Java,用到多线程技术,实际上操作系统才是负责管理进程和线程的;比如你学习到内存分配的知识,c++ 里可以直接分配一段内存,此时实际上是调用操作系统提供的 API 进行内存分配。

如果不懂操作系统,你在未来学习编程语言的高级特效,涉及到线程进程调度,内存分配,或者是学习 Linux 相关的知识时,都会一头雾水,所以,只有学会了操作系统,我么才能够更好地学习其他语言和技术。

基于此,计算机操作系统的知识点 频繁出现在笔试环节。

毕业的程序员或者非科班的程序员可以看看下面的两篇文章,就当再复习学习一遍。

推荐几篇操作系统的文章。

当初我要是这么学习操作系统就好了(附带思维导图)

当初我要是这么学习「进程和线程」就好了(附带思维导图)

内存都没了,还能运行程序?

三、计算机编译原理

首先正式一个问题:编译原理并非随随便便就能入门的

换言之,需要准备一些基础知识在学习。

编译原理的学习和实践通常基于对计算机编译过程、计算机基本工作原理、甚至一定的数学知识有一定积累,这些知识分别分布并应用在了编译原理的不同阶段。没有这些基本知识的积累,很快就会在某个阶段由于功底不够而无法再继续后面的学习。

所以,先认认真真的积累上述的一和二在入门学习吧。

四、数据结构与算法

相信无论是已经毕业的同学还是正在学校学习的同学,都或多或少地被数据结构与算法这门课给折磨过。数据结构与算法这门课开篇就讲了一个非常重要的概念:程序 = 数据结构 + 算法,对于初学者可能还不能完全地理解这句话,不过对于已经工作两三年的同学相信对这句话是深信不疑的。

对于数据结构与算法的学习,我个人认为应该分层三个步骤:首先先大致了解什么是算法,可以通过一些科普读物来入门,这个过程我称之为入门阶段;接着可以尝试实现一些比较容易的数据结构和算法,这样可以更加深对数据结构和算法的了解,这个过程我称之为实践阶段;最后去了解数据结构与算法背后的相关数学原理等,这个过程我称之为原理阶段。

不管你认为数据结构与算法重要与否,你都必须有所了解,因为在面试环节肯定会问的!

数据结构和算法学习指南

五、计算机网络

计算机网络的相关知识在工作时使用的频率还是挺多的,毕竟,所谓的CURD工程师总是在处理 API 相关的业务。 

面试官,别问我 HTTP 了!看这 30 张图就行!


  



发文的时候发现当当自营的图书在搞活动,连忙申请了几十张 优惠码,有需要的小伙伴可以趁机屯一波书。

当当自营的图书满减活动:

  • 每满 100 减 50
  • 满 200 减 100
  • 满 300 减 150
  • 满 400 减 200
优惠码:RG3AFR
优惠码可以和满减活动叠加使用,简单的说就是可以,花 170 买 400 的书,四舍五入约等于白嫖(逃



END



● 去你丫的算法!

● 「LeetCodeAnimation」动画是如何做出来的

● 五分钟学算法:什么是线段树?

来了,来了!你们要的写给Java程序员看的算法学习指南!



点“在看”你懂得 

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存