计算机科学速成课

news2024/11/16 13:39:49

建议看看计算机科学速成课,一门很全面的计算机原理入门课程,短短10分钟可以把大学老师十几节课讲的东西讲清楚!整个系列一共41个视频,B站上有中文字幕版。

每个视频都是一个特定的主题,例如软件工程、人工智能、操作系统等,主题之间都是紧密相连的,比国内很多大学计算机课程强太多!

这门课程通过生动形象的讲解方式,向普通人介绍了计算机科学相关的基础知识,包括计算机的发展史、二进制、指令和程序、数据结构与算法、人工智能、计算机视觉、自然语言处理等等。

每节课程短小精悍,只有短短十几分钟,适合平时碎片化时间观看。

课程目录如下,光看课程大纲都有学习的欲望~

  1. 早期的计算
  2. 电子计算
  3. 布尔逻辑与逻辑电路
  4. 二进制
  5. 算术逻辑单元
  6. 寄存器 & 内存
  7. 中央处理器
  8. 指令和程序
  9. 高级 CPU 设计
  10. 编程史话
  11. 编程语言
  12. 编程原理:语句和函数
  13. 算法初步
  14. 数据结构
  15. 阿兰·图灵
  16. 软件工程
  17. 集成电路、摩尔定律
  18. 操作系统
  19. 内存 & 储存介质
  20. 文件系统
  21. 压缩
  22. 命令行界面
  23. 屏幕 & 2D 图形显示
  24. 图形用户界面
  25. 3D 图形
  26. 计算机网络
  27. 互联网
  28. 万维网
  29. 网络安全
  30. 黑客与攻击
  31. 加密
  32. 机器学习与人工智能
  33. 计算机视觉
  34. 自然语言处理
  35. 机器人
  36. 计算机中的心理学
  37. 教育型科技
  38. 奇点,天网,计算机的未来

课程地址:https://www.bilibili.com/video/av21376839/?vd_source=2b77c4a826e636ae19a4f75a4b2ca146

建议关闭弹幕认真观看~

在这里给大家分享一本谷歌大佬撰写的算法手册,整整 300 道 LeetCode 题目,并且都是最优解,非常强!这本手册帮助不少朋友加入大厂,大家加油!

Github疯传!谷歌大佬撰写的算法手册开源了

操作系统

无论学习什么编程语言,和需要和操作系统打交道。如果对操作系统不熟悉,那么你在未来的学习路上将会遇到很多障碍,比如线程进程调度、内存分配、Java的虚拟机等知识,都会一头雾水。所以只有把操作系统搞明白了,才能够更好地学习计算机的其他知识。

视频教程推荐

Udacity的Advanced OS公开课:https://www.classcentral.com/course/udacity-advanced-operating-systems-1016

还有国内不错的操作系统的课程,清华大学的公开课:https://www.xuetangx.com/course/THU08091000267/5883104?channel=search_result

由清华大学两位老师向勇、陈渝讲授,同时配有一套完整的实验,实验内容是从无到有地建立起一个小却五脏俱全的操作系统,以主流操作系统为实例,以教学操作系统ucore为实验环境,讲授操作系统的概念、基本原理和实现技术,为学生从事操作系统软件研究和开发,以及充分利用操作系统功能进行应用软件研究和开发打下扎实的基础。

另外推荐另一门MIT操作系统课程:MIT6.268

课程地址:https://pdos.csail.mit.edu/6.828/2018/schedule.html

MIT6.828 是一门非常值得学习的课程,广受好评。

只要你跟着项目一步一步走,做完 6 个实验,就能实现一个简单的操作系统内核。

每个实验都有对应的知识点,学完理论知识后会有相应的练习,学习体验非常棒!

建议在开始学习这门课之前先熟悉C和汇编,对计算机组成有一定了解。

操作系统主要知识点

  • 操作系统的基础特征
  • 进程与线程的本质区别、以及各自的使用场景
  • 进程的几种状态
  • 进程通信方法的特点以及使用场景
  • 进程任务调度算法的特点以及使用场景
  • 死锁的原因、必要条件、死锁处理。手写死锁代码、Java是如何解决死锁的。
  • 线程实现的方式
  • 内存管理的方式
  • 虚拟内存的作用,分页系统实现虚拟内存原理
  • 页面置换算法的原理
  • 静态链接和动态链接

计算机组成原理

计算机组成原理,主要学习计算机的基本组成原理和内部运行机制,并探索硬、软件之间相互作用的关系,以及如何有效利用硬件提高系统性能。

视频推荐

计算机组成原理(哈工大刘宏伟): https://www.bilibili.com/video/BV1WW411Q7PF

刘宏伟老师主讲,他的课不仅适合考研人,也非常适合初学者,初学者也听得懂。

【麻省理工学院-中文字幕版】计算机组成原理:https://www.bilibili.com/video/BV1kU4y177x9

课程为 MIT 6.004 Computation Structures, Spring 2017,如果英文不错,可以跟着学学,课程质量很高的。

编译原理

编译原理介绍了编译程序构造的原理与实践,让你明白高级语言都是如何被转换为另外一种语言的。学完编译原理,可以尝试自己去实现一个完整的小型面向对象语言编译程序。

推荐哈工大的编译原理视频:https://www.bilibili.com/video/BV1zW411t7YE?p=1&vd_source=2b77c4a826e636ae19a4f75a4b2ca146

比起很多砖头书和博客,强太多!陈鄞老师的 PPT 做的很好,讲得也很通俗易懂,课程评价也很高。推荐!

另外推荐一门课,编译原理-国防科技大学:https://www.bilibili.com/video/BV12741147J3

课程前置知识:具备计算机程序设计语言和程序设计知识,对数据结构与算法、计算机原理、离散数学等相关知识有一定了解更好。视频简洁明了,适合多刷几遍。

数据结构和算法

为什么学习数据结构与算法?对于计算机专业的同学来说,这门课程是必修的,考研基本也是必考科目。对于程序员来说,数据结构与算法也是面试、笔试必备的非常重要的考察点。

数据结构与算法是程序员内功体现的重要标准之一,且数据结构也应用在各个方面。数据结构也蕴含一些面向对象的思想,故学好掌握数据结构对逻辑思维处理抽象能力有很大提升。

视频推荐

UCSanDiego的数据结构与算法专项课程:https://www.coursera.org/specializations/algorithms

浙大陈越姥姥的数据结构课程

https://www.bilibili.com/video/BV1H4411N7oD

浙江大学陈越姥姥和何钦铭教授联合授课,非常经典的课程。姥姥我的偶像!

小甲鱼的数据结构和算法课程:https://www.bilibili.com/video/BV1jW411K7yg

数据结构与算法主要学习以下内容:

  • 基本数据结构(数组、链表、栈、队列等)
  • 树(二叉树、avl树、b树、红黑树等)
  • 堆结构
  • 排序算法(冒泡排序、选择排序、插入排序、快速排序、归并排序、堆排序等及时间空间复杂度)
  • 动态规划、回溯、贪心算法(多刷刷leetcode)
  • 递归
  • 位运算

学完感觉还很吃力?可以借助一些刷题网站巩固下。下面推荐几个刷题网站。

在这里跟大家分享一份2024届秋招信息汇总表,目前已更新2000家,不仅有互联网公司,还有外企、国企、各类研究所,不断更新中,可以对照投递,避免错过秋招信息!

https://mp.weixin.qq.com/s?__biz=Mzg2OTY1NzY0MQ==&mid=2247495731&idx=1&sn=3d43de73833cd050c3bd78830272e6de&chksm=ce9b0d75f9ec84634b6009eaef765724f8d0bfeb9949b355bcda61215a8af155eadb36d2960e&token=1670473754&lang=zh_CN#rd

牛客网

作为牛客红名大佬,来给牛客宣传一波!(牛客打钱!)

牛客网拥有超级丰富的 IT 题库,题库+面试+学习+求职+讨论,基本涵盖所有面试笔试题型,堪称"互联网求职神器"。在这里不仅可以刷题,还可以跟其他牛友讨论交流,一起成长。牛客上还会各种的内推机会,对于求职的同学也是极其不错的。

LeetCode

力扣,强推!力扣虐我千百遍,我待力扣如初恋!

从现在开始,每天一道力扣算法题,坚持几个月的时间,你会感谢我的(傲娇脸)

我刚开始刷算法题的时候,就选择在力扣上刷。最初刷easy级别题目的时候,都感觉有点吃力,坚持半年之后,遇到中等题目甚至hard级别的题目都不慌了。

不过是熟能生巧罢了。

LintCode

与Leetcode类似的刷题网站。

LeetCode/LintCode的题目量差不多。LeetCode的test case比较完备,并且LeetCode有讨论区,看别人的代码还是比较有意义的。

LintCode的UI、tagging、filter更加灵活,更有优点,大家选择其中一个进行刷题即可。

计算机网络

计算机网络这门课需要学习计算机网络的概念、原理和体系结构,知道计算机分层结构,物理层、数据链路层、介质访问子层、网络层、传输层和应用层的基本原理和协议,掌握以 TCP/IP 协议族为主的网络协议结构,并且了解网络新技术的最新发展。

书籍推荐

《计算机网络自顶向下方法》

这本书是经典的计算机网络教材,采用作者独创的自顶向下方法来讲授计算机网络的原理及其协议,自第1版出版以来已经被数百所大学和学院选作教材。书中从应用层讲起,然后展开,摆脱了从物理层开始的枯燥,直接接触应用实例,更能吸引读者的兴趣。而且,书上很多例子举的很好,生动形象。

分享一份图解PDF系列图书,包括操作系统、网络、计算机组成原理等计算机基础书籍!强烈建议你收藏起来!

https://mp.weixin.qq.com/s/CEruH9L1jJHIUcHspztn9Q

视频推荐

视频推荐中科大郑烇、杨坚全套《计算机网络(自顶向下方法 第7版,James F.Kurose,Keith W.Ross)》课程。这门课是2020年秋科大自动化系本科课程录制版,可与中科大学生一起完成专业知识的学习。

https://www.bilibili.com/video/BV1JV411t7ow?p=7&vd_source=2b77c4a826e636ae19a4f75a4b2ca146

另外还可以看看哈尔滨工业大学李全龙老师的计算机网络课程:https://www.bilibili.com/video/BV1Up411Z7hC

计算机网络核心知识点

  • 网络分层结构
  • TCP/IP
  • 三次握手四次挥手
  • 滑动窗口、拥塞控制
  • HTTP/HTTPS
  • 网络安全问题(CSRF、XSS、SQL注入等)

数据库

互联网应用大多属于数据密集型应用,对于真实世界的数据密集型应用而言,除非你准备从基础组件的轮子造起,不然根本没那么多机会去摆弄花哨的数据结构和算法。

实际生产中,数据表就是数据结构,索引与查询就是算法。而应用代码往往扮演的是胶水的角色,处理IO与业务逻辑,其他大部分工作都是在数据系统之间搬运数据。在最宽泛的意义上,有状态的地方就有数据库。它无所不在,网站的背后、应用的内部,单机软件,区块链里,甚至在离数据库最远的Web浏览器中。

书籍推荐

  • 《MySQL必知必会》
  • 《高性能MySQL》

《MySQL必知必会》主要是Mysql的基础语法,很好理解。后面有了基础再看《高性能mysql》,这本书主要讲解索引、SQL优化、高级特性等,很多Mysql相关面试题出自《高性能MySQL》这本书,值得一看。

视频推荐

伯克利的 CS168 课程:https://archive.org/details/UCBerkeley_Course_Computer_Science_186

国内中国人民大学王珊老师的《数据库系统概论》:https://www.bilibili.com/video/BV1pW411W7Do

最后给大家分享200多本计算机经典书籍PDF电子书,包括C语言、C++、Java、Python、前端、数据库、操作系统、计算机网络、数据结构和算法、机器学习、编程人生等,感兴趣的小伙伴可以自取:

https://mp.weixin.qq.com/s?__biz=Mzg2OTY1NzY0MQ==&mid=2247486208&idx=1&sn=dbeedf47c50b1be67b2ef31a901b8b56&chksm=ce98f646f9ef7f506a1f7d72fc9384ba1b518072b44d157f657a8d5495a1c78c3e5de0b41efd&token=1652861108&lang=zh_CN#rd

码字不易,如果觉得对你有帮助,可以点个赞鼓励一下!

我是 @程序员大彬 ,专注分享互联网校招、自学CS经验,欢迎大家关注~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1222859.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

6.7二叉树的最小深度(LC111)

审题要清楚: 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。注意是叶子节点(左右孩子都为空的节点才是叶子节点!)。 算法: 既可以求最小高度,也可以直接求深度。 最小高度: 后序…

四、程序员指南:数据平面开发套件

REORDER LIBRARY 重排序库提供了根据其序列号对mbuf进行重排序的机制。 16.1 操作 重排序库本质上是一个对mbuf进行重新排序的缓冲区。用户将乱序的mbuf插入重排序缓冲区,并从中提取顺序正确的mbuf。 在任何给定时刻,重排序缓冲区包含其序列号位于序列…

如何在远程协同视频会议中确保安全性?

随着远程工作的普及,远程协同视频会议已成为企业和团队之间进行交流和协作的重要工具。与此同时,会议中的安全性问题也日益凸显。本文将介绍如何在远程协同视频会议中确保安全性,主要包括以下方面: 1、内网部署 将会议服务器部署…

AD教程 (十八)导入常见报错解决办法(unkonw pin及绿色报错等)

AD教程 (十八)导入常见报错解决办法(unkonw pin及绿色报错等) 常见报错解决办法 绿色报错 可以先按TM,复位错位标识绿色报错原因一般是由于规则冲突的原因,和规则冲突就会报错 点击工具,设计…

3D应用开发引擎HOOPS如何促进AEC数字化架构革新?

随着科技的不断发展,建筑、工程和施工(AEC)行业正在掀起令人瞩目的数字化转型浪潮。在这一变革的过程中,Tech Soft 3D的HOOPS SDK(软件开发工具包)正扮演着关键的角色,为构建世界一流的AEC和BIM…

【HarmonyOS开发】设备调试避坑指南

备注:通过开发验证,发现每个设备调试都会存在不小的差别,开发验证需要注意~ 1、预览器调试(只能预览具有Entry修饰的文件) 修改文件,预览器将自动刷新 注意:当我们只修改了Component 组件的文件…

探索亚马逊大语言模型:开启人工智能时代的语言创作新篇章

文章目录 前言一、大语言模型是什么?应用范围 二、Amazon Bedrock总结 前言 想必大家在ChatGPT的突然兴起,大家多多少少都会有各种各样的问题,比如:大语言模型和生成式AI有什么关系呢?大语言模型为什么这么火&#xf…

python3-- Pillow10 ‘FreeTypeFont‘ object has no attribute ‘getsize‘报错解决

文章目录 一、问题二. 解决方法:1.方法12.方法2 三. 总结 一、问题 使用pillow10进行图片文字合成时获取文字大小失败 AttributeError: FreeTypeFont object has no attribute getsize二. 解决方法: 1.方法1 降级Pillow pip install Pillow9.5.0再去…

嵌入式QTGit面试题

自己在秋招过程中遇到的QT和嵌入式和Git相关的面试题,因为比较少就一起放了 QT connect第5个参数是什么? Qt::AutoConnection: 默认值,使用这个值则连接类型会在信号发送时决定。 如果接收者和发送者在同一个线程,则…

【DataV可视化工具详解】

文章目录 前言一、什么是DataV?二、主要特点1. 强大的图表库2. 灵活的数据接入3.实时数据展示4. 易于定制的仪表盘 三、应用场景1.业务监控与分析2.大屏展示3.数据洞察与决策支持 四、例图总结我是将军,我一直都在,。! 前言 今天…

⑩③【MySQL】详解SQL优化

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ SQL优化 ⑩③【MySQL】了解并掌握SQL优化1. 插…

杭州-区块链前瞻性论坛邀请函​

2023密码与安全前瞻性论坛邀请函 生成合法节点或非法节点,测试共识协议

C++各种字符转换

C各种字符转换 一.如何将char数组转化为string类型二. string转char数组:参考 一.如何将char数组转化为string类型 在C中,可以使用string的构造函数或者赋值操作符来将char数组转换为string类型。 方法1:使用string的构造函数 const char* c…

【docker】Docker网络与iptables

Docker能为我们提供很强大和灵活的网络能力,很大程度上要归功于与iptables的结合。在使用时,你可能没有太关注到 iptables在其中产生的作用,这是因为Docker已经帮我们自动的完成了相关的配置。 iptables在Docker中的应用主要是用于网络流量控…

4.5 Windows驱动开发:实现进程数据转储

多数ARK反内核工具中都存在驱动级别的内存转存功能,该功能可以将应用层中运行进程的内存镜像转存到特定目录下,内存转存功能在应对加壳程序的分析尤为重要,当进程在内存中解码后,我们可以很容易的将内存镜像导出,从而更…

解决k8s node节点报错: Failed to watch *v1.Secret: unknown

现象: 这个现象是发生在k8s集群证书过期,重新续签证书以后。 记得master节点的/etc/kubernetes/kubelet.conf文件已经复制到node节点了。 但是为什么还是报这个错,然后运行证书检查命令看一下: 看样子是差/etc/kubernetes/pki/…

一种基于NB‑IOT的粮库挡粮门异动监测装置

一种基于NB‑IOT的粮库挡粮门异动监测装置,包括若干个NB‑IOT开门监测装置、物联网后台管理系统、NB‑IOT低功耗广域网络和用户访问终端;各个NB‑IOT开门监测装置通过NB‑IOT低功耗广域网络与物联网后台管理系统连接,物联网后台管理系统与用户访问终端连接。 我国以往粮食收储…

Maven依赖传递和依赖冲突以及继承和聚合关系详解

Java全能学习面试指南:https://javaxiaobear.cn 1、Maven依赖传递和依赖冲突 1. Maven依赖传递特性 概念 假如有Maven项目A,项目B依赖A,项目C依赖B。那么我们可以说 C依赖A。也就是说,依赖的关系为:C—>B—>…

Java 算法篇-链表的经典算法:有序链表去重、合并多个有序链表

🔥博客主页: 【小扳_-CSDN博客】 ❤感谢大家点赞👍收藏⭐评论✍ 文章目录 1.0 链表的说明 2.0 有序链表去重的实现方式 2.1 有序链表去重(保留重复的节点) - 使用递归来实现 2.2 有序链表去重(保留重复的节点) - 使用双指针来实现 2.3 有序…

常见面试题-MySQL的Explain执行计划

了解 Explain 执行计划吗? 答: explain 语句可以帮助我们查看查询语句的具体执行计划。 explain 查出来的各列含义如下: id:在一个大的查询语句中,每个 select 关键字都对应一个唯一的 id select_type:…