现在,有很多人工作、学习太忙,没有充足的时间来学习传统的计算机科学专业(正常情况下,在大学读完这门课程需要4年时间)。
为了节省大家的时间,我创建了一个加速计算机科学学习的计划,只需要5个月你就可以全面了解这方面的知识。下面是课程计划,希望对大家有所帮助!

1—2周:学习Python
用Python将无聊的东西自动化
这里推荐一本书,《Automate the Boring Stuff with Python》。
如果你曾经花费数小时整理你的文件或电子表格,你就知道这件事是多么无聊乏味。现在有一个便捷的方法可以帮你做这些,只需要学会简单的Python编程,你就可以用几个小时做一个程序来帮你一劳永逸的完成整理文件的无聊工作。这项工作不需要丰富的编程经验,即使你从来没有写过一行代码,也能够完成。
链接:
https://automatetheboringstuff.com/
从Python开始继续学习
本课程对基础编程概念和Python编程语言都有很好的介绍。学完后,你将熟悉Python语法,并且能够实践在其中学到的知识。
链接:
https://www.codecademy.com/learn/learn-python
3—4周:数据结构
数据结构基础
一个好的算法通常与一组好的数据结构一起,使算法能够有效地操作数据。在本课程中,我们考虑了在各种计算问题中使用的常见数据结构。你将学习如何使用不同的编程语言实现这些数据结构,并将在编程任务中实践。
我们将在本课程中讨论几个问题:
调整动态数组大小的好策略是什么?
在C++、Java和Python中如何实现优先级队列?
如何实现一个散列表,使所有操作的平均运行时间为0(1)?
什么是保持平衡二叉树的好策略?
链接:
https://www.edx.org/course/data-structures-fundamentals-uc-san-diegox-algs201x
5—6周:算法
算法介绍
这是courses的一门课程,学习这门课程,需要你掌握Python,并具有扎实的离散数学知识。
链接:
https://courses.csail.mit.edu/6.006/fall11/info.shtml
第7周:数据库
使用Python的数据库
本课程将向学生介绍结构化查询语言(SQL)的基础知识,以及用于存储数据的基本数据库设计。本课程将使用SQLite3作为其数据库。我们还将构建web crawlers以及多步数据收集和可视化过程。
本课程的主要内容是:面向对象的Python,基本的结构化查询语言,数据模型和关系SQL,SQL中的多对多关系,数据库和可视化。
链接:
https://www.coursera.org/learn/python-databases
第8周:网络
计算机网络的Bits和Bytes
本课程旨在全面介绍计算机网络。在本课程中,我们将介绍从现代网络技术和协议的基础到实际应用和网络故障排除的所有内容。
课程的主要内容是:
用五层模型描述计算机网络;
了解所有与TCP/IP通信相关的标准协议;
掌握强大的网络故障排除工具和技术;
学习有助于计算机网络运行的网络服务,如DNS和DHCP。
链接:
https://www.coursera.org/learn/computer-networking
9—10周:Web开发
GIT -讲座:使用Python和JavaScript编写CS50的Web编程
链接:
https://www.youtube.com/watch?v=1u2qu-EmIRc
建立网站的一些想法
这里介绍了一些比较实用的设计网页和开发项目的思路想法,通过这些项目可以补充你欠缺的知识。
链接:
https://github.com/melanierichards/just-build-websites
11—12周:移动开发
开始开发iOS应用程序(Swift)
在学习的过程中,你会了解到iOS应用程序开发中的概念,加深对Swift编程语言的了解,并且熟悉苹果集成开发环境(IDE)Xcode。
这门课程的主要内容有:了解iOS应用程序开发的基本知识,学习Swift编程语言,学习开发应用程序,调试并测试你编码的应用程序。
链接:
https://developer.apple.com/library/content/referencelibrary/GettingStarted/DevelopiOSAppsSwift/
构建你的第一个应用
本课主要介绍了如何构建 Android 应用程序。课程的主要内容是:了解Android应用设计的基础知识,包括如何构建简单的界面和处理用户输入,同时将学习如何使用 Android Studio 创建 Android 项目和运行可调试版本的应用。
链接:
https://developer.android.com/training/basics/firstapp/index.html
13—14周:数据科学
用于数据科学的开源工具
这门课程是数据科学 MicroMaster项目的一部分。课程的主要内容是:数据科学的基本过程,Python和Jupyter notebooks,如何操作和分析处理数据集的应用,基本统计分析和机器学习方法,如何有效地可视化结果。
这里将介绍分析数据和开展数据科学所需的一系列强大的开源工具,具体有:python、jupyter notebooks、pandas、numpy、matplotlib、git等。
链接:
https://www.edx.org/course/python-for-data-science
15—16周:计算机视觉
计算机视觉概论
这门课程介绍了计算机视觉,包括图像形成、摄像机成像几何、特征检测与匹配、多视图几何(包括立体法、运动估计与跟踪)和分类的基本原理。我们将开发基本应用方法,包括寻找图像中的已知模型、通过立体法进行深度恢复、摄像机标定、图像稳定、自动对齐(如全景照片)、跟踪和行为识别。
本课程的重点在于激发方法的直觉和数学思维,通过问题集了解理论与实践之间的差别。在本课程中,大多数时候你不需要应用高层次的库函数,只需使用低到中层算法来分析图像和提取结构信息。
链接:
https://cn.udacity.com/course/introduction-to-computer-vision--ud810
17—18周:自然语言处理
Python中的应用文本挖掘
本课程分四部分向学员介绍文本挖掘和文本处理的基本知识,分别是使用Python处理文本、基本自然语言处理、文本分类、主题建模。
链接:
https://www.coursera.org/learn/python-text-mining
第19周:软件工程实践
包括软件开发过程和方法。
随着越来越多的自动化和技术进步,软件正迅速成为人类生活不可分割的一部分。
在本课程中,你将大致了解软件团队的工作方式,他们使用什么流程?哪些是行业标准方法?每种方法的优缺点是什么?你将学到足够多的关于软件开发过程的知识。
完成这门课程后,学习者将能够:针对给定的问题,在概念层面应用核心软件工程实践;比较和对比传统的、敏捷的和精益的开发方法;提出适合特定情况的解决方法。
链接:
https://www.coursera.org/learn/software-processes
第20周:区块链
Monero是一种允许私人交易的加密货币。这意味着,与比特币的区块链不同,发送者、接收者和交易金额都不会公开。Monero使用环签名技术、ringCT、隐身地址和I2P路由技术保持交易的私密。
我将在这段视频中解释这一切的原理。我不愿意使用这种技术进行非法交易。这是一种功能强大的东西,理想的情况是,我们开始将它作为一个垫脚石,实现交易数据(以及所有其他数据)的付费世界。
链接:
https://www.youtube.com/watch?v=cjbHqvr4ffo
课程视频的相关代码:
https://github.com/llSourcell/how_does_monero_work
(来源:Siraj Raval的youtube频道)
—完—
亲爱的朋友:
如果你关注这个领域的学习,应该对Siraj Raval老师有所了解。
今天的充电,我们整理了Siraj Raval老师关于计算机科学的学习建议,希望对你有所帮助。
祝安!
智能观 一米
2018-5-9 于北京中关村
想知道AI加教育领域有哪些最新研究成果?
想要AI领域更多的干货?
想了解更多专家的“智能观”?
请在对话界面点击“找找看”,去获取你想要的内容吧。
声明:
编译文章旨在帮助读者了解行业新思想、新观点及新动态,为原作者观点,不代表智能观观点。

网友评论