The Hard Way Learn Computer Science [实践班]

我们在 The Hard Way Learn Computer Science 分享了一些学习的书籍和视频,不过都理论大过实践,所以我的女朋友觉得贼难,那我们今天就实践大于理论来分享一下。

Pre

让我们先重温下 Teach Yourself Programming in Ten Years 一切都不用那么着急。

编程基础

语言学习

当然程序员应该懂好几门语言,入门的时候,我还是推荐 Python | C | Java 三者之一

面向对象 语言处理 IO 一般还是会比 函数式 语言略好的一点,但是 IO 是我们程序不可回避的部分,编写一个入门的 CLI 程序是作为入门的最好办法。

计算机网络

基础

网络编程人人要,打基础从 Socket 编程开始

实验: 基于 TCP 聊天

目标: 在两台网络互连的机器上通过 tcp 相互可以聊天,效果如下:
关键词: socket bio


当我们完成了基础的 socket 编程之后,我们进入不同系统的特定的 多路复用 网络部分。

实验: 基于 TCP 聊天室 Plus

目标: 在多台网络互连的机器上通过 tcp 相互可以聊天,服务端用 UDP 对所有的的聊天客户端进 MulticastBroadcast,效果如下:
关键词: socket nio thread

进阶

上面的学习都没有涉及到如何做 TCP 上层的协议解析,当我们完成了 TCP 通讯部分的代码之后,我们就可以进入 协议解析 部分

实验: 静态 Web 服务器

目标: 接受 HTTP 请求根据请求的 Path 返回对应的 静态文件
关键词: http