自我教育科学科学
一个完全免费的课程,以学习计算机科学课程
计算机科学简介(1-2周)
- 计算机科学概述
- 编程简介
- 算法和数据结构的概述
- 基本的计算机组织和架构
资源:
- 哈佛大学的计算机科学简介
- Codecademy的学习如何编码课程
编程基础(4-6周)
- Python编程语言简介
- 控制流语句
- 数据类型和结构
- 功能和模块
- 输入和输出操作
- 调试和错误处理
- 面向对象的编程概念
资源:
- 密歇根大学在Coursera上为所有人提供Python
- 通过Zed Shaw学习Python
数据结构和算法(12-16周)
- 基本数据结构(数组,链接列表,堆栈,队列)
- 高级数据结构(树,图形,哈希表)
- 算法分析和设计
- 搜索和分类算法
- 递归
- 动态编程
- 贪婪算法
- 划分和征服算法
资源:
- 加州大学圣地亚哥分校的数据结构和算法专业化
- 麻省理工学院算法简介
计算机架构和系统(8-12周)
- 计算机硬件和软件的概述
- 操作系统
- 内存管理
- 输入/输出系统
- 计算机网络
- 分布式系统
资源:
- 普林斯顿大学的计算机架构
- 操作系统:Remzi H. Arpaci-Dusseau和Andrea C. Arpaci-Dusseau的三个简单作品
数据库系统(8-12周)
- 数据库简介
- 关系数据库系统(SQL)
- 数据库设计和归一化
- 查询和操纵数据
- 数据库管理
资源:
- 斯坦福大学关于Coursera的数据库简介
- SQLBolt(在线互动SQL教程)
网络开发(8-12周)
- 前端开发(HTML,CSS,JavaScript)
- 后端开发(网络框架,服务器端编程)
- 数据库集成(SQL,ORM)
- 安全性和身份验证
资源:
- ODIN项目(免费的全栈Web开发课程)
- FreeCodeCamp(免费网络开发课程)
软件工程(8-12周)
- 软件开发生命周期
- 软件项目管理
- 需求工程
- 测试和质量保证
- 软件维护和进化
资源:
- 科罗拉多大学博尔德大学的软件工程必需品
- 弗雷德里克·布鲁克斯(Frederick P. Brooks Jr.)
人工智能和机器学习
- 人工智能和机器学习概述
- 监督学习算法(线性回归,逻辑回归,决策树,支持向量机,K-Nearest邻居,天真的贝叶斯)(4-6周)
- 无监督的学习算法(聚类,降低维度)(4-6周)
- 强化学习
- 神经网络和深度学习(4-6周)
- 自然语言处理
- 计算机视觉
资源:
- Andrew Ng在Coursera上的机器学习
- Yoshua Bengio,Ian Goodfellow和Aaron Courville的深度学习
计算机图形和可视化(8-12周)
- 图形管道
- 几何变换
- 2D和3D图形原始图
- 渲染技术(射线追踪,栅格化)
- 动画和模拟
- 可视化技术
资源:
- 东京大学的计算机图形学
- Tomas Akenine-Möller,Eric Haines和Naty Hoffman的实时渲染
人类计算机相互作用(8-12周)
- 用户界面设计原理
- 以用户为中心的设计过程
- 可用性测试和评估
- 互动设计
- 信息可视化
- 可访问性
资源:
- 加利福尼亚大学圣地亚哥分校在Coursera上的人力计算机互动
- 不要让我想到史蒂夫·克鲁格
网络安全(8-12周)
- 网络安全
- 密码学
- 身份验证和访问控制
- 恶意软件分析和检测
- 安全风险评估和管理
资源:
- 纽约大学Tandon工程学院的网络安全介绍
- 罗斯·J·安德森(Ross J. Anderson)的安全工程
软件开发工具(4-6周)
- 版本控制系统(GIT)
- 集成开发环境(IDE)
- 调试和分析工具
- 建立自动化和连续集成(Jenkins)
资源:
- github的git手册
- Eclipse IDE教程由Vogella
计算机科学数学(8-12周)
资源:
- 马萨诸塞州技术学院的计算机科学数学
- 吉尔伯特·斯特朗(Gilbert Strang)的线性代数
计算中的道德与社会(8-12周)
- 计算中的道德问题
- 计算的社会和政治含义
- 隐私和安全问题
- 知识产权和版权
- 计算的全球影响
资源:
- 哈佛大学对EDX的计算与社会
- 代码:硅谷和玛格丽特·奥马拉(Margaret O'Mara)的美国重建
希望这对所有读者都会有益,因为它对我也是有益的。请记住,完成这些课程的所有估计时间都是基于学习期间的全职工作。