计算机科学速成课

建议看看计算机科学速成课,一门很全面的计算机原理入门课程,短短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经验,欢迎大家关注~

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Django的可重用HTML模板示例

01-配置并运行Django项目 首先按照博文 https://blog.csdn.net/wenhao_ir/article/details/131166889配置并运行Django项目。 02-创建可重用模板文件 templates目录下新建目录common,然后在目录common下新建文件:navbar.html,并写入下面的…

Pandas 求平均值

Pandas是Python中最流行的数据分析库之一,它提供了许多强大的工具来处理和分析数据集。其中,求平均值是数据分析中最常见的操作之一。在本文中,我们将从多个角度分析Pandas中如何求平均值。 一、基础操作 Pandas中求平均值的基础操作是使用m…

电磁场与电磁波part3--静态电磁场及其边值问题的解

1、当场源(电荷、电流)不随时间变化时,所产生的电场、磁场也不随时间变化,称为静态电磁场。静止电荷产生的静电场、在导电媒质中恒定运动电荷形成的恒定电场以及恒定电流产生的恒定磁场都属于静态电磁场。 2、静电场基本方程微分形…

深信服AC应用控制技术

拓扑图 目录 拓扑图 一.上班时间不允许使用qq(假设上班时间是上午9到12,下午14到18) 1.新增上班时间不允许使用qq访问权限策略 2.将策略应用到组,例如修仙部 3.验证 上班时间发现登录不了 下班时间可以登录 二.上班时间不允许访问视频网站(假设上班时…

springboot323基于Java的美妆购物网站的设计与实现

交流学习: 更多项目: 全网最全的Java成品项目列表 https://docs.qq.com/doc/DUXdsVlhIdVlsemdX 演示 项目功能演示: ————————————————

梦想编织者——Adobe Dreamweaver

今天,我们来谈谈一款在Adobe系列中推出的一款Adobe Dreamweaver,简称“DW”,中文名称 “梦想编织者”,是集网页制作和管理网站于一身的所见即所得网页代码编辑器。 利用对 HTML、CSS、JavaScript等内容的支持,设计人员…

java并发编程JUC:一、专栏配置+进程与线程+并行和并发+同步和异步+线程的创建、调用、查看、运行原理和相关API

专栏配置 pom.xml <properties><maven.compiler.source>1.8</maven.compiler.source><maven.compiler.target>1.8</maven.compiler.target> </properties> <dependencies><dependency><groupId>org.projectlombok<…

(论文阅读46-50)图像描述2

46.文献阅读笔记 简介 题目 Learning a Recurrent Visual Representation for Image Caption Generation 作者 Xinlei Chen, C. Lawrence Zitnick, arXiv:1411.5654. 原文链接 http://www.cs.cmu.edu/~xinleic/papers/cvpr15_rnn.pdf 关键词 2014年rnn图像特征和文本特…

目录自动清洗

文章目录 前言一、需求分析二、操作步骤详解&#xff08;标准章节&#xff09;1. 提取文章目录2. 更改保存目录.txt3. 二级标题前面加4个空格4. 在章字和节字后面添加一个空格5. 在页码前面加上>符号6. 代码完全体 三、进阶一&#xff08;有章无节小数二级标题&#xff09;1…

git基础命令

git简介 什么是git&#xff1f; git是一种分布式版本控制系统。 git与svn之间的区别是什么&#xff1f; svn是集中式版本控制系统。git是分布式版本控制系统。 什么是集中式版本控制系统&#xff1f;有哪些特点&#xff1f; 版本库是集中存放在中央服务器。集中式版本控制…

kk模组的具体应用场合

KK模组是一种高精度、高刚度的直线模组&#xff0c;广泛应用于各种自动化设备和精密仪器中。以下是KK模组的一些具体应用场合&#xff1a; 1、半导体设备&#xff1a;半导体制造过程中需要使用精密的定位和运动控制设备&#xff0c;KK模组作为一种高精度、高刚度的直线模组&…

Selenium——利用input标签上传文件

Selenium利用input标签上传文件 完整流程 打开文件上传页面选择要上传的文件点击上传按钮确认文件上传成功介绍怎么方便的获取对应元素的Xpath或者Css 简单介绍 在使用Selenium进行浏览器自动化测试时&#xff0c;文件上传是一个常见的需求。而 标签就是实现文件上传功能的…

【Python自动化】定时自动采集,并发送微信告警通知,全流程案例讲解!

文章目录 一、概要二、效果演示三、代码讲解3.1 爬虫采集行政处罚数据3.2 存MySQL数据库3.3 发送告警邮件&微信通知3.4 定时机制 四、总结 一、概要 您好&#xff01;我是马哥python说&#xff0c;一名10年程序猿。 我原创开发了一套定时自动化爬取方案&#xff0c;完整开…

十一、统一网关GateWay(搭建网关、过滤器、跨越解决)

目录 一、网关技术的实现 在SpringCloud中网关的实现包括两种: 作用&#xff1a; 二、搭建网关服务 1、新建模块&#xff0c;并添加依赖 2、新建Gateway包&#xff0c;并编写启动类 3、编写yml文件 4、启动服务&#xff0c;并在网页内测试 5、步骤 三、路由断言工厂 …

Python与ArcGIS系列(九)自定义python地理处理工具

目录 0 简述1 创建自定义地理处理工具2 创建python工具箱0 简述 在arcgis中可以进行自定义工具箱,将脚本嵌入到自定义的可交互窗口工具中。本篇将介绍如何利用arcpy实现创建自定义地理处理工具以及创建python工具箱。 1 创建自定义地理处理工具 在arctoolbox中的自定义工具箱…

C++初阶 日期类的实现(下)

目录 一、输入输出(>>,<<)重载的实现 1.1初始版 1.2友元并修改 1.2.1简单介绍下友元 1.2.2修改 1.3>>重载 二、条件判断操作符的实现 2.1操作符的实现 2.2!操作符的实现 2.3>操作符的实现 2.4>,<,<操作符的实现 三、日期-日期的实现 …

Flutter笔记:Matrix4矩阵变换与案例

Flutter笔记 Matrix4矩阵变换及其案例 作者&#xff1a;李俊才 &#xff08;jcLee95&#xff09;&#xff1a;https://blog.csdn.net/qq_28550263 邮箱 &#xff1a;291148484163.com 本文地址&#xff1a;https://blog.csdn.net/qq_28550263/article/details/134474764 【简介…

java回调函数

在java中是存在回调函数的&#xff0c;我们可以把回调函数理解为一个被作为参数传递的函数。 类似于&#xff0c;我可以设置一个功能给系统&#xff0c;但是只有特定时候才会触发&#xff0c;触发的时候就会把函数作为参数的形式传递到另外的函数中。一般都是使用系统中写好的…

Vue3+Vite实现工程化,插值表达式和v-text以及v-html

1、插值表达式 插值表达式最基本的数据绑定形式是文本插值&#xff0c;它使用的是"Mustache"语法&#xff0c;即 双大括号{{}} 插值表达式是将数据 渲染 到元素的指定位置的手段之一插值表达式 不绝对依赖标签&#xff0c;其位置相对自由插值表达式中支持javascript的…