计算机网络太难?如何系统自学计算机网络?

这是我在元旦假期肝出来的计算机网络学习攻略

先用一张图打开全文:

关于计算机网络学习的一点感想:

我在大学期间,学习计算机网络课程的教材是谢希仁的《计算机网络》,先不说这本书好不好,至少是非常不适合入门

枯燥的行文方式,上来就是深入到网络各层的细节,知识点那么多,令人云里雾里,直接劝退。然后考试也是各种死记硬背的题目,令人毫无兴趣。

图片

好的教学方式一定是讲的让别人能听懂,对于初学者,我认为好的方法应该是这样的:

  • 从实际案例出发(比如我们在浏览器输入一个网址到展示出内容中间发生了什么事情)

  • 计算机网络出现的背景是什么?遇到了什么问题?是为了解决什么问题?

  • 不能一下子就陷入细节,一开始应该快速入门,了解其概貌。

  • 入门后,然后再进阶学习,建议从自顶向下的方式来学习。

  • 一定要多实战,通过抓包工具查看实际的数据包长啥样,通过动手实现一个聊天工具等。

什么是计算机网络?

通俗的说,计算机网络是指将各个计算机设备连接起来使其能够相互交换数据和共享资源。这些连接的设备之间使用被称作交换协议的规则来通过物理或无线设施传输信息。

图片

computer network, two or more computers that are connected with one another for the purpose of communicating data electronically. Besides physically connecting computer and communication devices, a network system serves the important function of establishing a cohesive architecture that allows a variety of equipment types to transfer information in a near-seamless fashion. Two popular architectures are ISO Open Systems Interconnection (OSI) and IBM’s Systems Network Architecture (SNA).

图片

一个计算机网络示例:

图片

为什么要学习计算机网络?

网络十分重要,在当前这个社会,离开了网络几乎无法生存。

而工作中,无论我们从事哪个方向,我们也必须掌握基础的网络知识。

虽然我们实际写的代码可能只有CRUD,不会亲自写底层框架,但是当我们遇到问题需要排查,或者要做性能优化,那么网络知识必不可少了

企业级应用,服务器都是集群部署,那么就会涉及服务器之间的网络通信,不管是服务同步调用还是消息中间件异步通信。RPC调用,如果失败了,怎么排查失败原因?失败了是否要重试?消息中间件进行消息通信,消息消费失败,是否要重试?如何保证一致性?

比如我最近就在实际的工作中遇到一个线上问题:

系统中调用一个依赖的下游服务,总是概率性出现报错,maybe write overflow。

通过查阅netty相关资料,发现是参数过大导致超过netty buffer限制,被限流了,这个调用根本没发出去。

后面通过调整JVM参数中netty buffer大小予以解决。

图片

那么计算机网络到底应该如何学习呢?

为什么大家都觉得计算机网络难学啃不动?

学习讲究循序渐进,入门和进阶的学习路线跟大家分享一下:

基础入门

(一)视频课程推荐 

哈工大-《计算机网络》

https://www.icourse163.org/course/HIT-154005

本课程分为三个单元,分别介绍了计算机网络基础、计算机网络内部原理以及网络安全威胁相关知识。

B站视频:

https://www.bilibili.com/video/av10101468/

(二)书籍推荐 

①《网络是怎么连接的》

图片

本书以一个实际的案例开始:浏览器中输入一个网址,到最终浏览器展示内容,中间经历了什么?逐步探索,给出了非常多的图解,讲述了网络的全貌。

图文并茂,通俗易懂,是一本非常棒的网络入门书籍。

②《图解HTTP》

图片

http协议入门书籍,读完对http会有基本认知。

③《图解TCP/IP》

图片

以图文的方式介绍了TCP/IP网络的每一层。

进阶学习

(一)国外经典公开课 

推荐CS144,具体来说就是跟着cs144的课程安排走一遍,完成课程的lab啦。

课程链接:

https://www.scs.stanford.edu/10au-cs144/

https://cs144.github.io/

视频:

https://www.youtube.com/playlist?list=PLvFG2xYBrYAQCyz4Wx3NPoYJOFjvU7g2Z

图片

不能翻墙的B站也可以看:

https://www.bilibili.com/video/BV1Tt411s7ei/

图片

配套的LAB非常给力,跟着一步一步可以实现一个协议栈。

再推荐一个CS144自己实现的网友学习笔记:

https://zhuanlan.zhihu.com/p/175998415

(二)书籍推荐 

①《计算机网络-自顶向下》

图片

这本书堪称计算机网络的圣经书籍,非常经典,被众多海外名校用作教科书。

翻译质量也不错,一层一层进行剖析,而且并不局限于某个具体的协议,从宏观角度来解释计算机网络。

②《TCP/IP详解 卷一》

图片

讲透TCP/IP,英文水平OK的话可以直接读英文原版。

看了那么多理论的书籍,我们还需要结合实战来加强理解。

首先是动手抓包分析,用工具查看报文的详细信息。

抓包书籍推荐:

①《Wireshark网络分析就这么简单》

图片

作者行文幽默风趣,由浅入深的用Wireshark分析了常见的网络协议,还提供了很多实际的案例,通过这些案例可以更好的加深对协议的理解。

②《wireshark网络分析的艺术》

图片

和第一本书是同一个作者,这本书实际中的案例更多。

题外话

初入计算机行业的人或者大学计算机相关专业毕业生,很多因缺少实战经验,就业处处碰壁。下面我们来看两组数据:新职业在线学习平台发展报告

  • 2023届全国高校毕业生预计达到1158万人,就业形势严峻;
  • 《新职业在线学习平台发展报告》 ,显示国内Python人才缺口高达40万,而人工智能人才目前缺口超过500万。

Python的优点:

易于学习:简单、易学、对新手极度友好。

免费开源:Python的所有内容都是免费开源的,不需要花一分钱就可以免费使用Python,并且可以自由地发布这个软件的拷贝、阅读其源代码、对其做改动、把其一部分用于新的自由软件中;
可扩展:Python除了使用Python本身编写外,还可以混合使用像C语言、Java语言等编写;

对于0基础小白入门:

如果你是零基础小白,想快速入门Python是可以考虑的。

  • 一方面是学习时间相对较短,学习内容更全面更集中。
  • 二方面是可以找到适合自己的学习方案

包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、机器学习等习教程。带你从零基础系统性的学好Python!

👉Python学习路线汇总👈

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(全套教程文末领取哈)

在这里插入图片描述

👉Python学习视频600合集👈

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

在这里插入图片描述

👉实战案例👈

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。


👉100道Python练习题👈

检查学习结果。

在这里插入图片描述


👉面试刷题👈

在这里插入图片描述

 👉python副业兼职与全职路线👈

上述这份完整版的Python全套学习资料已经上传CSDN官方,朋友们如果需要可以微信扫描下方CSDN官方认证二维码 即可领取↓↓↓在这里插入图片描述

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值