你好,我是姜汁啤酒,我们又见面了。python
不知道你是否注意到,网络技术群里面的聊天画风慢慢开始变了。ios
之前,聊天内容是这样的。程序员
兄弟,最近实验敲得咋样啊。shell
我刚把NP的题看完。编程
嗯,我准备学点安全和语音的技术。安全
而如今的聊天内容,以个人《老司机网络运维-读者群》为例。bash
你们讨论的不光是平常网络故障和经验汇总。微信
慢慢地,朋友们开始研究如何学习Python。网络
如何把玩Juniper的PyEZ模块实现平常运维自动化。架构
连这13周年庆学习专栏送书活动。
你们购买的再也不是什么思科学习指南。
更多的是Python,Ansible等书籍。
难道,这个世界变了么?
个人回答是:世界不只变了,并且速度超乎你的想象。
若如今的你,仍然像昔日的王朝,固守传统的网络技术疆土。
那很抱歉,云技术,虚拟化,SDN,NetOps网络运维自动化会慢慢撕开你坚固的防线。
所谓和你一条战线上的厂商们,纷纷倒戈。
思科IOS-XE系列的设备,华为CloudEngine系列的设备纷纷开始支持SDN,Python自动化,更别说Juniper以及其余大厂,全都自愿的,不自愿的投入了将来技术的怀抱。
新的网络技术时代 - 网络工程师2.0 到来!
每一次新的技术出现,并存着机遇。
若你抓住了,就会被技术的浪潮抬升到新的高度。
若负隅顽抗,最好的结果就是随波逐流。
正如文章标题所述,这是一次逆袭的机会,也是一次挑战自我,提高自个人机会。
在这网络工程师2.0时代?我到底须要准备什么?
我不想提早回答这个问题。
相反,我相信你通读完此篇文章之后,答案天然而然就在你的脑海里面了。
而你所收获的,可能不只仅这一个答案而已,也许包含了认知的升级,更有多是职业生涯的蜕变。
让咱们先看看一个简单而实际的问题。
你去找工做,或者跳槽。不用说,是为了挑战本身,为了得到更好的工做环境,提升生活质量?
而你所能碰见的工做机会,换个角度来看,就是招聘公司的业务发展需求,或者说是行业的发展需求。
既然是发展需求,就存在一个时效性问题。
可能,今天这个行业须要这样的技能型人才,可是并不能表明明天仍是这样?
例如,对于网络工程师来讲,好几年前,你们会思科的东西就行了。但是如今,由于华为市场规模不断扩大,公司又要求你会华为的技能,难保明天又有什么新的东西出来,搞得你措手不及。
这种状况下,就会出现两种可能性:
或者
想一想大数据、人工智能刚刚兴起的时候,第一批吃螃蟹的人,就能够当着雇主的面,漫天要价。
那做为网络工程师的咱们,该如何去把握市场业务的发展方向,让咱们不那么被动。
其实很简单,看看业界的巨头都在干什么,招聘什么样的人才。
他们的今天,就是许许多多普通公司的明天,把握住了这一点,就是变被动为主动的关键。
限于篇幅有限,此处展现了三个在业界名声赫赫,也很是具备表明性的公司。
Google,亚马逊,Facebook。
首先看看网络一哥Google的网络工程师招聘要求。
职位:网络工程师
最低要求:
亚马逊这几年的AWS云计算服务是一路狂奔,是彻彻底底的市场领跑者,让咱们看看他们都须要什么样的网络工程师。
职位:网络工程师
最低要求:
最后让咱们看看Facebook的招聘要求。
Facebook,不用说你们都知道,全球使用最多的社交平台。
职位:网络工程师
最低要求:
我不知道,当你看到以上行业领头羊的招聘需求之后,你是否有了些感触?
你会发现,基本上以上几个职位,都提到了同一个东西:写代码的能力。
什么Python,Perl,Go,Java语言,都是必备项。若要是没有这个编程能力,连筛简历这一关都过不去。
有朋友就说了,人家是全球的规模,咱们相比小得多,没那个必要,参考意义不大。
若是这样想,那可能就错了。
要记住,他们表明着(也把控着)网络行业的发展方向,他们的今天,就是咱们的明天。
你要是还没以为有什么危机感,让咱们继续往下看。
讨论此话题以前,看几个小例子:
当年,苹果研发iPhone的时候,诺基亚嘲笑说,你搞的啥玩意儿。连个实体按键都没有。
谁会用啊?
不用我说,你也知道最后谁输谁赢。
一样的,当阿里巴巴在杭州倒腾支付宝,腾讯后来玩微信支付的时候。
银行的柜台员工们并不认为这和他们有什么关系,银行ATM机的制造商们还在那里逍遥的过着小日子。
几年之后,你们都不怎么去柜台办理业务了,一切都电子化,谁还去取现金?
ATM机制造商怎么办,柜台人员怎么办?
回到网络行业,我也给你说一个我本身的感觉,这也是促成我学习编程,写这份专栏的最根本缘由。
在我刚开始学习Ansible的时候,我发现Ansible帮我减轻了两个负担:
可是,初期的Ansible,我仍是得输入须要执行的CLI命令行。
换而言之,我只有熟悉思科,Juniper,华为等设备的命令行才能够,若不是网络工程师,就不会。
但是,后来Ansible迭代进化了,各个 厂家分别更新了本身的Ansible模块,你只须要提交相应的参数,就能够完整的配置网络设备。
例如,传统状况下,你须要配置思科的接口,你须要这样:
interface gi0/0 ip address 10.1.1.1 255.255.255.0 no shutdown
可是,如今的Ansible,你只须要选择对应的厂商模块,而后传递给Ansible对应的参数,例如接口名称,IP地址。
以下所示,给了接口名称和IP地址,完工。(若还不理解,专栏里有详细介绍)
- name: set GigabitEthernet0/0 IPv4 Address ios_l3_interface: name: GigabitEthernet0/0 ipv4: 10.1.1.1/24
Ansible就帮你完成全部的命令并配置设备。
你彻底不须要了解特定厂商的配置内容。
再次强调,你再也不须要了解某个厂商的配置细节,照样能够把工做干得好,干得快,干得漂亮。
若是网络工程师不须要配置设备,剩下的也就只有两个看家本领:
但是惟一存在的问题是,一个公司若是大量的维护工做都自动化了,它会招聘多少网络工程师?
5个,10个?
我猜,可能1-2个经验丰富的网工+2个码农的就搞定了。
那剩下的人怎么办?
你说呢?
有句话说的好,最好的防守就是进攻。
传统的网络工程师,是指熟悉网络技术,例如路由交换,安全语音,以及各个厂家的设备调试等技术。我我的称之为网工1.0时代。
但是正如我上面所述,现现在由于网络大规模化,云计算化,数据中心化带来的运维自动化需求,以及厂商针对自动化开放的程序接口,使得那些会自动化的软件开发工程师、或具备写代码能力的网络工程师,在工做效率和层次上远高于传统的网络工程师。
这就比如人家用枪,你还在用刀,彻底不在一个量级上。
因此,若不想被历史的车轮碾压,最好的办法就是升级本身,让本身的技能也能遇上时代的潮流。让本身成为新一代网络工程师,即所谓的网工2.0。
首先,你须要选择一门编程语言。至于选择哪个。
不用说,你光看各个IT网站头版的广告就知道,编程语言Python是最佳选择,尤为是初学者。
做为一门专一于解决问题的语言,全部的各类工具早已有人给你写好,你只须要专一在你所须要实现的程序功能便可,固然python还有不少其余的优点,这里再也不陈述了。
除此以外,我为何推荐Ansible做为另一个学习的对象和工具。
由于它一样也是极其容易上手,很是简洁明了,厂商支持程度也很高,就算对编程不熟悉的朋友,通过一番讲解以后,也能上手写本身的Ansible自动化脚本,立刻就能看见成效。
啰嗦一句,编程语言也好,仍是自动化工具也好,选择但是五花八门,在咱们有限的时间和精力之下,选择一个业界流行,你们承认的工具,并潜心研究,才是正道。
相反,若各个工具都有所染指,虽然能够成为和朋友的谈资,可是真正用起来,你会发现哪个都不怎么会用,浅尝辄止。
有部分朋友说 :“姜汁哥,不瞒你说,我搞网络就是由于对编程不感冒,不是那块料。要否则我早去干编程了,说不定如今随着哪一家初创公司上市,都财务自由了。”
这位朋友,其实我也不瞒你,我和你同样,当时上大学也学过编程,可是就是怎么都入不了门。
有句话说得好,不是你不会,而是身上的压力还没到那份上。
我我的接触了一些作自动化的朋友,加上本身涉猎Python + Ansible这一方向后,我就开始有深深的危机感。
上有老下有小,丢工做了可不是一件好玩的事情。因此我硬着头皮就啃了下来。
可就在我啃的过程当中,我发现一些学习编程的小窍门和方法,这对于初学者来讲,尤为有帮助。
我暂且称之为“基于需求的编程学习法”。
因为此方法不是一句话就能说清的,我特意把这一民间偏方写成一篇文章,放到了新开的专栏《网工2.0晋级公攻略 - 零基础入门Python/ Ansible》内,共你们揣摩。
说了这么多真心话,怎么也得给你们介绍下本身的新专栏。
此专栏目的只有一个:做为过来人和你一块儿入门Ansible和Python。
为了实现这个目的,此专栏存在以下奇葩风格:
其实写代码和画画很相似。
首先你须要知道画什么。
其次你脑海里面有一个即将画的物体的大概轮廓。
最后再动笔。
在此专栏里面,咱们会一块儿针对每个案例详尽剖析,从需求,到构思,最后到代码的生成。
以及每一行代码所要表达的意思以及相关的含义,都会仔细讲解。
本专栏提供了多个Python和Ansible的基础案例和实践案例。
我提供的这些案例,最终达到两个效果:
第二条即为我所说的拿来主义。
例如,某一天厂商报了一个软件bug,须要升级IOS、才能解决。
这时,领导急着让你搜集全网全部设备的软件版本。
你如果手工一个个的弄,费时费力,还不讨好。
可是学习了本专栏,你就有两个选择了。
如有人对你说。
你的代码不够简洁,代码写得比较low,写得像流水帐。
以上问题若是是程序员之间的交流,我彻底能够理解,毕竟他们是吃这一碗饭的。
可是,做为一名初学者,做为一名网络工程师,个人观点是,去他的代码质量,先能写,能用再说。温饱都没解决了,给我谈什么艺术情操
如今这个时代,计算资源过剩,刚开始入门编程,你彻底不用考虑代码的执行效率等问题。你执行10个循环和执行一万个循环,对你来讲,仍然是一秒钟的时间。
因此,在这个专栏里面,我尽量的采用你们容易理解的方式来实现程序的功能,而不是为了作我的表演show,虽然我表演爽了。
但是你阅读起来,就很不爽了。
再次重申:这个专栏,就是带你如何从不会编程这个0,到会基本的代码技能这个1的质变。
而从会基本代码技能,到写的很漂亮,那就靠你将来的一步步的练习精进了。
最后一个,付费也算是本专栏的一个优点。
你可能会说,Ansible和python的东西,网上最不缺了。
我干吗犯得上花这点钱来买专栏?
我不会反驳你的观点,相反,我以为你说的很对。
一块儿看看网上的免费资源,大体分为两类:
这100G搜集了各路神仙的python视频,表面上你拥有了全世界,但是你却少了一个东西 - 时间。
回忆一下,这100G视频,你看了百分之一了么?
不能否认,不少大神写的博客文章,的确很详细很独到。
但是,以Ansible为例,要么你是在须要用Ansible的时候,才想到去搜相关知识,并找到一两个网站。
或者,你无心间浏览到某个Ansible为主的网站,并习得了相关技能。
可是这些技能都是碎片化的,你很难系统的把它拼装到一块儿。
还有一个问题,你没法去搜索那些你不知道的东西,因此有一我的系统的带领你一块儿走,事情就变得很简单了。
网工们,如今的咱们正处于技术变革的过渡阶段,一方面你们仍然温馨于传统的网络技术区域,另一方面世界正朝着新的技术进发,运维自动化,SDN,虚拟化等技术层出不穷。
你能够选择多带几把刀(传统网络技能),或者带上一支枪便可(编程技能)。
选择权在你。