两个多月之前写了一篇“送给打算考IE,正在学网络,纠结要不要转行学网络的你们”的文章,意外地收到了不少小伙伴的私信,大多咨询如何学习网络工程,以及什么方向的IE更有前景之类的问题。其实IE的话题我不想再多说,今天我们聊聊如今火得一批的Python对网络专业带来的影响和机会。
Again, 进入正题之前,先申明一下立场是有必要的:鄙人不服务于任何一家培训机构,写此文章纯粹因为看到不少小伙伴在私信中表达出来的困惑和迷失,希望能够帮助大家少走一些弯路。如果观点不合,请直接忽略,不喜勿喷。
回归正题,我们先来聊聊本文第一个话题:
网络工程师为什么要学Python
这个问题可以和知乎上另一个话题“如何看待KTV陪酒女孩”共用一个回答:
当然是为了钱啊!
什么大环境,大背景,云计算,啥啥啥的废话没必要多说了。直接去最能说明问题的市场看行情。每天早上起床,打开订阅的邮件,市场上招普通的中高级网络工程师薪水大概是这样的:
然而,猎头在Linkedin上撩骚会python的工程师时候是这样的:
好好好,咱不说国外,咱们看看国内的:
我觉得看到这里,大家也不需要我用更多文字来表达为什么网络工程师要学Python了吧?我们接下来来谈谈:
网络工程师如何学习Python
现在网上的Python教程,课件,一抓一大把,各种公众号打着转发朋友圈就免费领取Python学习资料旗号疯狂吸粉。但是,如果你是一名完全没有programming/scripting背景的网络工程师,前面提到的这些教程,基本上帮不了你什么。到目前为止,我也没有在国内的网站上找到什么适合网络工程专业的python教程。
我的建议是,零基础的网络工程师的python学习,理论部分,去搜这两个人的教程:
Kirk Byers和David Bombal.
此两人制作了大量的Python for network engineer教程以及视频,从python基础,到模拟器搭建,Python中网络模块的介绍和使用场景都非常详细并且浅显易懂。
但是,和你学CCIE一样,只看教程,不动手,你是学不会Python的。一定要大量的练习。
然后,问题来了,怎么练习呢?练啥呢?如果你只会用python批量配置几台设备,那最多只能算入了个门(其实我想说连入门都不算)。
知乎上网络话题已经有些作者对Python中的一块网络工具相关模块作了一些介绍,但基本上也是纸上谈兵,把国外文章翻译一下发上来。如果对英文实在无力的小伙伴还是可以学习一下作为理论基础,但也仅此而已。
要想真正提升自己的python技术,必须要想办法把python应用到实际工作中去。不过,我也知道,这也是很多网络工程师在学习Python中的一个痛点,怎么在工作中使用Python。下面,我给大家举一个我在实际工作中应用python的例子,大家可以尝试去实现,如果大家有兴趣,可以关注我或者留言,我们可以再开更多的帖子来聊更多的使用场景。
一个应用场景
我管理一个网络覆盖美国,英国,澳洲,香港,新加坡几个站点。每个站点之前有一到两条专线,每个站点本身有至少一个数据中心或一个及以上办公点。每个站点之间,站点到本地办公室之间都使用BGP,涉及到大概几千条路由条目,涉及到的设备有几十台。每一次网络变更,你要如何保证你的变更没有引起一些计划之外的路由变化或是导致一些问题呢?你可以用python通过下面两种方法来帮你实现你的验证工作:
- 直接用python写Nagios plugin来抓设备的路由表,抓关键字,如果路由有更新,life
timer会变归0。如果发现路由更新就告警。你便可以判断告警的路由更新是否计划之内的。 - 第二种方案是我自己用的,就是用Python写一个脚本,在做变更之前抓取所有设备的FIB表,变更做完之后,运行一次脚本再抓一次FIB表。最后再用脚本把变更前后的FIB表做对比,列出哪些路由条目消失了,哪些路由下一跳变了以及新增了哪些路由条目。这样,你的变更对网络带来的影响一目了然,也能帮你快速发现错误并及时更正。这样,如果有人在工作中出了差错想甩锅给你的网络变更,你也可以把你的脚本结果甩他脸上以证自己的清白。
好吧,今天就写到这里了。看看大家反响怎么样,如果感兴趣,不要偷懒,给我反馈你的看法,当然了,也要记得点赞!
关于Python学习资料:
朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】。
一、Python所有方向的学习路线
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
二、Python必备开发工具
三、Python视频合集
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
四、实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
五、Python练习题
检查学习结果。
六、面试资料
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
最后,千万别辜负自己当时开始的一腔热血,一起变强大变优秀。