计算机科学速成课
建议看看计算机科学速成课,一门很全面的计算机原理入门课程,短短10分钟可以把大学老师十几节课讲的东西讲清楚!整个系列一共41个视频,B站上有中文字幕版。
每个视频都是一个特定的主题,例如软件工程、人工智能、操作系统等,主题之间都是紧密相连的,比国内很多大学计算机课程强太多!
这门课程通过生动形象的讲解方式,向普通人介绍了计算机科学相关的基础知识,包括计算机的发展史、二进制、指令和程序、数据结构与算法、人工智能、计算机视觉、自然语言处理等等。
每节课程短小精悍,只有短短十几分钟,适合平时碎片化时间观看。
课程目录如下,光看课程大纲都有学习的欲望~
- 早期的计算
- 电子计算
- 布尔逻辑与逻辑电路
- 二进制
- 算术逻辑单元
- 寄存器 & 内存
- 中央处理器
- 指令和程序
- 高级 CPU 设计
- 编程史话
- 编程语言
- 编程原理:语句和函数
- 算法初步
- 数据结构
- 阿兰·图灵
- 软件工程
- 集成电路、摩尔定律
- 操作系统
- 内存 & 储存介质
- 文件系统
- 压缩
- 命令行界面
- 屏幕 & 2D 图形显示
- 图形用户界面
- 3D 图形
- 计算机网络
- 互联网
- 万维网
- 网络安全
- 黑客与攻击
- 加密
- 机器学习与人工智能
- 计算机视觉
- 自然语言处理
- 机器人
- 计算机中的心理学
- 教育型科技
- 奇点,天网,计算机的未来
课程地址: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经验,欢迎大家关注~
相关文章:

计算机科学速成课
建议看看计算机科学速成课,一门很全面的计算机原理入门课程,短短10分钟可以把大学老师十几节课讲的东西讲清楚!整个系列一共41个视频,B站上有中文字幕版。 每个视频都是一个特定的主题,例如软件工程、人工智能、操作系…...

基于单片机的汽车安全气囊系统故障仿真设计
**单片机设计介绍, 基于单片机微波炉加热箱系统设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机的汽车安全气囊系统的故障检测系统是一种用于检测安全气囊系统故障的智能化设备,通过单片机控…...

JPA整合Sqlite解决Dialect报错问题, 最新版Hibernate6
前言 我个人项目中,不想使用太重的数据库,而内嵌数据库中SQLite又是最受欢迎的, 因此决定采用这个数据库。 可是JPA并不支持Sqlite,这篇文章就是记录如何解决这个问题的。 原因 JPA屏蔽了底层的各个数据库差异, 但是…...

算法通关村第十关-青铜挑战快速排序
大家好我是苏麟,今天带来快速排序 . 快速排序 单边快速排序(lomuto 洛穆托分区方案) 单边循环 (lomuto分区) 要点 : 选择最右侧元素作为基准点j 找比基准点小的,i 找比基准点大的,一旦找到,二者进行交换。 交换时机: 找到小的,…...

whisper large-v3 模型文件下载链接
#源码里找到的_MODELS {"tiny.en": "https://openaipublic.azureedge.net/main/whisper/models/d3dd57d32accea0b295c96e26691aa14d8822fac7d9d27d5dc00b4ca2826dd03/tiny.en.pt","tiny": "https://openaipublic.azureedge.net/main/whisp…...

Ajax 之XMLHttpRequest讲解
一直以来都听别人说Ajax,今天终于接触到了。。。。。。。。。。 一.什么是Ajax? 答: AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。 AJAX 异步 JavaScript和XML&#x…...

小程序里面循环使用ref的话获取不到
文章目录 概要问题案例解决方法 概要 在小程序里面一般循环使用ref的话会获取不到 问题案例 //这个时自己封装的组件,然后循环使用 <jilianXuanzhe huoqu"huoqu" :ref"jilianXuanzhe i"></jilianXuanzhe>//如果这样使用的话获取…...

PY32F002B从压缩包到实现串口printf输出
最近学习使用芯领的PY32F002B开发板,记录学习历程供有同样需求的人参考。 本文主要讲述利用开发板实现printf语句串口输出。 开发环境的初步搭建 官方提供了一个压缩文件,文件名py32f002B_231026.zip, 链接:https://pan.baidu.c…...

音视频项目—基于FFmpeg和SDL的音视频播放器解析(八)
介绍 在本系列,我打算花大篇幅讲解我的 gitee 项目音视频播放器,在这个项目,您可以学到音视频解封装,解码,SDL渲染相关的知识。您对源代码感兴趣的话,请查看基于FFmpeg和SDL的音视频播放器 如果您不理解本…...

CorelDRAW2024最新版本的图形设计软件
CorelDRAW2024是Corel公司推出的最新版本的图形设计软件。CorelDRAW是一款功能强大的矢量图形编辑工具,被广泛用于图形设计、插图、页面布局、照片编辑和网页设计等领域。 1. 新增的设计工具:CorelDRAW 2024引入了一些全新的设计工具,使用户能…...

【作业】操作系统实验一:进程和线程
文章目录 实验内容一、进程的创建1、编辑源程序2、编辑结果3、编译和运行程序4、解释运行结果 二、进程共享1、运行2、解释运行结果 三、进程终止1、运行2、解释运行结果 四、进程同步1、运行2、解释运行结果 五、Linux中子进程映像的重新装入1、运行2、解释运行结果 六、线程1…...

Linux 环境删除Conda
你可以按照以下步骤操作来删除Conda: 首先,停止所有conda环境。在终端中运行以下命令: conda deactivate然后使用以下命令获取conda安装的路径: which conda如果成功安装了conda,该命令输出的路径应该是类似于这样的&a…...

uni-app(1)pages. json和tabBar
第一步 在HBuilderX中新建项目 填写项目名称、确定目录、选择模板、选择Vue版本:3、点击创建 第二步 配置pages.json文件 pages.json是一个非常重要的配置文件,它用于配置小程序的页面路径、窗口表现、导航条样式等信息。 右键点击pages,按…...

window系统vscode 编译wvp前端代码
下载代码 wvp-GB28181-pro: WEB VIDEO PLATFORM是一个基于GB28181-2016标准实现的网络视频平台,负责实现核心信令与设备管理后台部分,支持NAT穿透,支持海康、大华、宇视等品牌的IPC、NVR、DVR接入。支持国标级联,支持rtsp/rtmp等…...

获取虎牙直播源
为了今天得LOL总决赛 然后想着下午看看 但是网页看占用高 就想起来有个直播源 也不复杂看了大概一个小时 没啥问题 进入虎牙页面只有 直接F12 网络 然后 看这个长条 一直在获取 发送 那就选中这个区间 找到都是数字这一条 如果直接访问的话会一直下载 我这都取消了 然后 打开…...

Halcon (2):Halcon基础知识
文章目录 文章专栏视频资源前言Halcon文档案例学习结论 文章专栏 Halcon开发 视频资源 机器视觉之C#联合Halcon 前言 本章我们主要讲解Halcon的基础语法 Halcon文档 按下F1,就可以看到Halcon的文档,不过都是纯英文的 如果不清楚参数如何使用&#x…...
测不准原理
测不准原理 算符的对易关系 commutation relation 测不准原理的矢量推导 Schwarz inequality: 设对易关系: 设一个新态: 投影: 那么有: 代回Schwarz inequality 即可证明:...

微机原理_12
一、单项选择题(本大题共15小题,每小题3分,共45分。在每小题给出的四个备选项中,选出一个正确的答案。〕 十进制正数56的 8位二进制补码是()。 A. 00011001 B. 10100110 C. 10011001 D. 00100110 若栈顶的物理地址为20100H,当执行完指令PUSH…...

设计模式(5)-使用设计模式实现简易版springIoc
自定义简易版springIoc 1 spring使用回顾 自定义spring框架前,先回顾一下spring框架的使用,从而分析spring的核心,并对核心功能进行模拟。 数据访问层。定义UserDao接口及其子实现类 public interface UserDao {public void add(); }public…...

数据结构与集合源码
我是南城余!阿里云开发者平台专家博士证书获得者! 欢迎关注我的博客!一同成长! 一名从事运维开发的worker,记录分享学习。 专注于AI,运维开发,windows Linux 系统领域的分享! 本…...

nodejs+vue面向中小学课堂教学辅助软件系统的设计与实现-微信小程序-安卓-python-PHP-计算机毕业设计
主要功能有,管理员通过后台会对此教学辅助进行审核,管理员在还可以进行首页、个人中心、学生管理、教师管理、班级信息管理、科目名称管理、课程信息管理、教学资料管理、作业信息管理、作业提交管理、作业成绩管理、在线考试管理、试题管理、考试管理、…...

智能配电系统解决方案
智能配电系统解决方案是一种集成了先进技术和智能化功能的配电系统,它能够提高电力系统的效率、可靠性和安全性。力安科技智能配电系统解决方案依托电易云-智慧电力物联网,具体实施的方案如下: 智能化设备和传感器:采用智能化的开…...

Python基础入门---conda 如何管理依赖包以及复制相同环境的
文章目录 创建虚拟环境:创建虚拟环境并指定Python版本:安装依赖包:从环境导出依赖包清单:从依赖包清单创建环境:复制环境:移植环境:在Conda中,你可以使用conda create命令来创建和管理虚拟环境,而使用conda install命令来安装和管理依赖包。以下是一些基本的命令和步骤…...

JVM jstat 查看内存新生代老年代回收情况,排查oom
jstat 命令 jstat - [-t] [-h] [ []] option:我们经常使用的选项有gc、gcutil vmid:java进程id interval:间隔时间,单位为毫秒 count:打印次数 每秒打印一次 jstat -gc 9162 1000S0C:年轻代第一个survivor的容量…...

Postman启动问题:Could not open Postman
Postman启动问题:Could not open Postman 状态,在单击Postman之后一直在转圈圈,无法正常启动。 细心的朋友会发现,右下角 会经常出现防火墙关闭等提示信息,表示该程序,在向外链接。 Error Could not open…...

Golang起步篇(Windows、Linux、mac三种系统安装配置go环境以及IDE推荐以及入门语法详细释义)
Golang起步篇 Golang起步篇一. 安装Go语言开发环境1. Wondows下搭建Go开发环境(1). 下载SDK工具包(2). 解压下载的压缩包,放到特定的目录下,我一般放在d:/programs下(路径不能有中文或者特殊符号如空格等)(3). 配置环境变量步骤1:先打开环境变…...

Error message “error:0308010C:digital envelope routines::unsupported“
1.降级到 Node.js v16。 您可以从 Node.js 的 website 重新安装当前的 LTS 版本。 您也可以使用 nvm。对于 Windows,请使用 nvm-windows。 2.启用传统 OpenSSL 提供程序。 在类 Unix 系统(Linux、macOS、Git bash 等)上: exp…...

解决java在idea运行正常,但是打成jar包后中文乱码问题
目录 比如: 打包命令使用utf-8编码: 1.当在idea中编写的程序,运行一切正常.但是当被打成jar包时,执行的程序会中文乱码.产生问题的原因和解决方案是什么呢? 一.问题分析 分别使用idea和jar包形式打印出System中所有的jvm参数---代码如下: public static…...

数据结构-插入排序+希尔排序+选择排序
目录 1.插入排序 插入排序的时间复杂度: 2.希尔排序 希尔排序的时间复杂度: 3.选择排序 选择排序的时间复杂度: 所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的…...

微信小程序数据传递的方式-页面数据的存取
我们在把数据显示到页面的时候,为了实现良好的互动,都希望在用户点击某个栏目后,获取这个栏目的捆绑数据,然后执行后续的操作。 例如,从数据库里取出对应的记录后,显示在页面上,是一条条的大横条…...