自学与转行程序员,必学计算机专业课

接触过很多自学或者转行到程序员行业的同学。发现很多的同学,虽然能够完成功能模块的代码,但却对计算机专业的基础很不扎实。并不能理解代码设计的意义,久而久之,就沦为了业务代码的搬运工!

下面给大家介绍 Github 接近 5W 点赞的高星计算机专业课资源项目,帮你找到从小白进阶大牛的学习之路。

项目地址:https://github.com/ossu/computer-science

项目内的所有学习内容,都是来自网络课程,并且大部分免费,可放心食用学习!唯一的缺点就是对于英文不好的同学可能不太用好,因为所有课程内容都来自于国外。

下面就一起看来看具体的内容吧!针对英文不太好的同学,可根据学习内容寻找可替代的中文资源,也欢迎留言补充。

一.计算机科学介绍

1.程序设计导论

  • 零基础 Python 入门
  • 计算原理(第 1 部分)

2.计算机科学概论

  • 计算机科学概论(Python版)

二、计算机科学核心内容

1.程序设计基础内容

  • 如何编码:入门篇:学习良好的代码编写规范,适用于任何编程语言。
  • 如何编码:进阶篇:学习如何设计更复杂的程序,使用新的数据结构、抽象和生成递归。

  • 程序设计:数据抽象:学习强大的数据抽象和分解技术来构建大型、复杂的程序。

  • 程序设计:面向对象:
    学习如何使用面向对象的设计技术设计解决实际问题的大型软件系统。

  • 编程语言(上)
  • 编程语言(中)
  • 编程语言(下)

通过一系列课程学习编程语言的基本概念,重点是函数式编程。

2.数学基础内容

  • 线性代数
  • 微积分1:微分
  • 微积分2:整合
  • 微积分3:坐标系与无穷级数
  • 计算机数学

3.计算机系统基础内容

  • 计算机科学导论

  • 依据基本原理构建现代计算机I:以俄罗斯方块为中心,从头开始建立一个现代化的计算机系统。

  • 依据基本原理构建现代计算机II

  • 计算机网络概论

  • 内核分析

4.基础理论

  • 算法:设计与分析I
  • 算法:设计与分析II

5.基础应用

  • 数据库
  • 机器学习
  • 计算机图形学:学习如何创建实时和真实光线跟踪的三维场景图像。
  • 密码学
  • 软件工程:学习如何应用工程原理,比如敏捷,来构建一个完整的软件系统。
  • 软件开发毕业项目:使用所掌握的技能,完成一个完整软件项目开发。

三、计算机科学进阶

1.高级程序设计

  • 编译器
  • 软件调试:学习如何系统地调试程序,如何自动化此过程,以及用 Python 编写自动化调试工具。
  • 软件测试:学习如何捕获漏洞和破坏软件,并了解可以帮助你构建更好的软件的各种测试方法。
  • 软件架构及设计:教授大型软件系统分析和设计中涉及的原理和概念。
  • LAFF–正确编程
    学习应用正确的方法系统地开发正确、可迭代的程序。

2.数学进阶内容

  • 多变量微积分
  • 概率论

3.计算机系统进阶内容

  • 分布式算法I
  • 分布式算法II
  • 电和磁I
  • 电和磁II
  • 计算结构:数字电路
  • 计算结构:计算机体系结构
  • 计算结构:计算机组成原理

4.进阶理论

  • 逻辑学导论
  • 自动机理论
  • 计算几何
  • 数据分析概论
  • 博弈论

5.进阶应用

  • 机器人
  • 数据挖掘
  • 大数据
  • 物联网
  • 云计算
  • Web全栈和多平台移动应用开发
  • 数据科学
  • Scala 函数式编程

推荐实验楼已有课程内容作为可替代的中文资源,若大家有其他中文资源欢迎评论补充!

  • Python 新手入门课
  • Python 简明教程
  • TCP/IP网络协议基础
  • 由浅入深学网络
  • 数据结构新版
  • 操作系统原理与实践
  • 软件工程
  • [Linux 内核分析]

知乎专栏同步:https://zhuanlan.zhihu.com/p/86577530

你可能感兴趣的:(自学与转行程序员,必学计算机专业课)