学习网络基础知识

4
没有计算机科学学位使得我的编程知识存在着很大的漏洞。尤其是我真的想学一些在好的计算机科学学位中将会学习到的计算机网络方面的知识。我真正遇到的问题是“不知道我不知道什么”。 到目前为止,就计算机网络而言,我知道自己不知道以下内容:
- sockets
- ports
- 网际协议(整个 IP 协议栈我经常听到)。
有人可以把更多的内容添加到列表中吗? 有人可以建议一个项目(编写一个玩具 Web 服务器?)
谢谢。

5
我拥有计算机科学学位,但对这些内容一无所知。它们是UIUC(伊利诺伊大学香槟分校)的400级选修课程,而我选择了其他的选修课。现在我意识到我的选择很不明智也不实用。学习网络技术会更加明智。 - Tesserex
2个回答

1

这是一个很好的观点,更多了解通常相当有益。但是我认为深入了解网络系统只对特定类别的编程问题真正必要。大多数编程项目不需要如此深刻的知识。实质上,程序员和网络专家(微软喜欢称呼他们为 IT 专业人员)是两种不同的职业(除了少数情况),甚至需要,我想说,两种不同的思维方式。


IT专业人员需要了解如何配置网络(路由器、服务器等),但原帖的问题是关于网络编程的。在我看来,网络编程是程序员工具箱中相当有用的技能。显然,这取决于您计划编写哪些应用程序。 - Daniel Stutzbach

1

我推荐阅读《TCP/IP详解 卷1:协议》(英文名:TCP/IP Illustrated, Volume 1),作者是Stevens。这本书非常易懂,读完后你将会 1)学到很多知识,2)对自己还不了解的内容有更清晰的认识。:-)

至于好的项目,我建议先做一个玩具级别的网页客户端。只需编写一个能够下载网页并将其保存到文件中的程序(类似于wget或curl)。接下来可以考虑做一个玩具级别的Web服务器。


谢谢你,我会去看看的,我也喜欢你的项目想法。谢啦! - handles
谢谢您的推荐,但您能否推荐一些近5到10年内出版的书籍呢?这本书是1993年的,这让我觉得现代编程领域可能有很多内容没有被涵盖到。 - Azurespot
1
@NoniA。这本书有第二版(由Kevin Fall更新),于2014年出版。ISBN 9332535957。 - Daniel Stutzbach

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接