程序员该如何转型 5G 开发?

  • 时间:
  • 浏览:5
  • 来源:大发快三_快三官网注册码_大发快三官网注册码

声明:本文来自于微信公众号  CSDN (ID:CSDNnews),作者:COCO,授权站长之家转载发布。

最近听了几位社招新进同事的述职,问了其他人同样有另1个哪此的问题报告 :从本来的软件开发岗位转到现在的5G开发,其他人未必最大的难点在哪里?几位新同事纷纷表示:感觉另一方要补课的内容未必是不要 了,操作系统、网络协议,到处就有难点。

未必这几位同事的经历和遇到的哪此的问题报告 都非常有代表性:可能做开发不懂业务,故大偏离 码农就有一颗颗螺丝钉,铆在另一方的那其他点领域上使劲往下钻,而对整体架构几乎一无所知,是导致 另一方的专业面非常窄,技术水平也比较浮于冠部。

对哪此可能拥有3- 5 年经验的程序运行运行员而言,转型到5G开发并那么想象中那么遥不可及,当然也何必 轻松。

所幸其他人可能入门了,但会 ,其他人未必普通码农转型5G开发是可行且有迹可循的。本来这次就来谈一谈5G开发所需的主要技能和推荐理由,此篇都可不还可以 作为各位有志于转型5G开发的码农们参考,也欢迎各位大牛多多指正。

熟悉 Linux 操作系统

都可不还可以 要熟悉Linux操作系统及具备Linux开发的经验,当然常用的调试手段也要熟练掌握。

5G 承载的业务种类繁多,业务内部各不相同,对网络要求不同。业务需求多样性给5G 网络规划和设计带来了新的挑战,包括网络功能、架构、资源、路由等多方面的定制化设计挑战。

但会 ,5G网络采用NFV/SDN、云原生技术实现网络虚拟化、云化部署,而NFV技术则是5G开发必选No.1。

NFV追本溯源:以往通信网络设备均采用专用设备,网元功能与硬件平台紧耦合,即不同厂家、不类事型网元采用不同的硬件。在通信网络3G、4G、5G新技术频繁变革下,可能网元与硬件平台紧耦合的关系,造成小量硬件资源浪费,本来助于新业务部快速署。

网络设备价格长期居高不下,电信运营商自然压力山大;一同供应商一家独大,运营商本来我我应该 受制于人;再去掉 各类专用设备不断增长的运维和管理成本,实现软硬件解耦的网络功能虚拟化(NFV)技术这位英雄来拯救通信行业了。

NFV技术的实现原理是通过使用x86 等通用性硬件以及虚拟化技术,来承载各类功能的软件处里。而哪此通用X86 平台的操作系统当仁不不本来Linux系统了。

Linux的特点是哪此?是多用户、多任务、支持多程序运行运行和多CPU的操作系统。既然5G开发的系统环境少不了Linux,下面本来学习重点了:比如哪此是多态?程序运行运行和程序运行运行的区别?为哪此要使用多程序运行运行?这就有linux基础知识、也是Linux内核开发都可不还可以 掌握的要点。

举个例子,出现 段错误,有哪此调试手段?如可处里?凡是多往深处想一想,要知道程序运行运行设计做的不好真的会害人害己,光填坑就能累死一群码农。

另外非要不提的还有epoll,它是Linux内核为处里大批量文件描述符而作了改进的poll,是Linux下多路复用IO接口select/poll的增强版本,能显著提高程序运行运行在小量并发连接中非要小量活跃的请况下的系统CPU利用率。

未必select、poll,epoll本质上就有同步I/O,但epoll只要从用户态往内核态拷贝 1 次fd集合,在设备守候队列上也只挂 1 次current;而select和poll每次调用就有从用户态往内核态拷贝 1 次fd集合,在设备守候队列中挂 1 次current;本来epoll相比select和poll节省了小量系统开销。

还有,select,poll实现都可不还可以 另一方不断轮询所有fd集合,直到设备就绪,期间可能要睡眠和唤醒多次交替。

而epoll尽管本来需要 调用epoll_wait不断轮询就绪链表,期间也可能多次睡眠和唤醒交替,但会 它是在设备就绪时调用回调函数,把就绪fd贴到 去就绪链表中,并唤醒在epoll_wait中进入睡眠的程序运行运行。

未必就有睡眠和交替,但会 select和poll在“醒着”的但是要遍历整个fd集合,而epoll在“醒着”的但是只要判断一下就绪链表是是是不是为空就好,从而节省了小量的CPU时间,这本来回调机制带来的性能提升。

总之,作为开发人员,不仅要知其然都可不还可以 知其本来然。

编程知识储备

具备扎实的计算机基础,较强的算法能力,熟练掌握C\C++等开发语言,熟悉敏捷开发流程。

计算机基础、算法能力,哪此就有码农们的基本技能,《计算机原理》、《数据内部》等等就有大学理工科的经典课程,不记得了都可不还可以 再回去翻一下,在此不做赘述。敏捷开发是当下比较流行的高效开发模式,以用户的需求进化为核心,采用迭代、循序渐进的法律依据进行软件开发,这方面的文章也本来就不展开来讲了。其他人有点痛 针对编程语言来讲一讲,为哪此5G开发要首选C语言而就有其他编程语言。

众所周知,ITU 为 5G 定义了 eMBB(增强移动宽带)、mMTC(海量大连接)、URLLC(低速率单位高可靠)三大应用场景。eMBB典型应用包括超高清视频、虚拟现实、增强现实等。

类事场景首先对速率单位要求极高,关键的性能指标包括1150Mbps 用户体验速率单位(热点场景可达1Gbps)、数十Gbps 峰值速率单位、每平方公里数十Tbps 的流量密度、每小时1150km以上的移动性等,本来在5G开发当中对性能要求是贴到 去第一位的。

然而,目前的硬件工艺及技术发展可能接近瓶颈,如可都可不还可以更高效的利用系统资源在5G开发当中显得尤为重要。

C语言是一门贴近硬件的系统级编程语言,C语言的指针都可不还可以 直接操作内存,速率单位奇高,未必出错率和漏洞也为人诟病,但瑕不掩瑜,你这个 点正好符合5G开发对性能和速率单位的极致追求。

在这里还是想强调一下了解底层原理对学习新技术的巨大作用。本来码农都未必C语言未必难上手就放弃了,我我应该 挑战难度、本来想付出时间与经精力去学习更多更底层的内容。

要知道几乎所有的操作系统内核就有用C语言写的,万变不离其宗,不懂底层汇编,根本无法准确了解内存和系统资源,这就像盖楼不了解地基请况一样。

拿破仑说过:“我我应该 当元帅的士兵就有好士兵。”但会 ,对于各位有志于架构师的码农们,从现在就始于英文啃C语言吧。

熟悉移动通信协议

熟悉移动通信协议,具备LTE协议研发经验,熟悉信令流程、协议。

移动通信协议是个其他人族,从何学起,往往那么头绪。尤其刚来的程序运行运行员们,很容易就被一堆协议搞得头大如斗。未必通信的基础在于网络,本来关于5G相关的协议开发如可上手,其他人都可不还可以 给出以下思路供其他人参考:

第一步,先弄清楚网桥、VLAN的原理,另一方都可不还可以 做下实验,找几台PC配置一下,再不济用虚机跑一跑。了解单播、广播、组播的概念,想清楚哪此请况下要配置网桥,划分VLAN。

第二步,了解二层、三层的概念和区别,有条件的都可不还可以 从交换机配置入手,想更进一步的都可不还可以 去配置下路由器。明白静态路由和动态路由的区别,几个概念重点了解:IGP、BGP、OSPF、IS-IS、MPLS等等。

第三步,你这个 步才是真正入门,要做5G开发,前两步理解的差不要 了就都可不还可以 去读一读3GPP的协议文档了。记得要读英文原版哈,至于英语的重要性上方也会展开讲一讲。

软技能

有较强的英文阅读理解能力,具备较强的抗压能力和良好的沟通技巧,优秀的团队合作精神以及较强的执行能力,善于学习和挖掘、使用新技术。

你这个 条也是老生常谈了。网上常常爆出英语无用论,而事实上,各类高新技术尤其是创新技术还是国外居多,原版的技术资料就有英文的,英文不好就非要用软件翻译可能等人喂食,而通常软件翻译的结果让他一言难尽,等人翻译估计黄花菜都凉了。

还有底层协议开发,也是都可不还可以 遵从英文规范,不懂不不就要走本来弯路。再比如码农必备的Stack Overflow网站也是英文的,其技术答疑常常会有惊喜大礼包:不仅给出有另1个哪此的问题报告 多种不同的处里方案,还包括对哪此处里方案的比较,以及大牛们的思考过程,甚至还有不少强力工具的有点痛 附赠。

建议各位就算那么遇到哪此的问题报告 ,本来需要 常常去浏览一下其中投票较多的哪此的问题报告 ,充实另一方的知识体系。

总而言之,英文是一扇面向世界的窗户,有了它都可不还可以看得更远,另一方不不可能懒的开窗,那就另一方在小黑屋慢慢摸索吧。偷偷吐槽一句,码农的英语不好,连变量名都非要用汉语拼音定义哦。

至于抗压能力,码农们就有经过千锤百炼的了,做到前面几个,去掉 沟通技巧、团队合作以及较强的执行力,这本来今后成长转型的关键。至于是写一辈子代码还是转型管理抑或销售及其他,这就仁者见仁智者见智了。

最后附上一首自创的《江城子》,送给屏幕前还在加班的码农们,祝其他人都能早日完美转型,成功升职加薪~

十年IT终日忙,不开源,难自强。

千页文档,需求又无常。

纵使交付运维忙,痘爆头,肤如糠。夜来加班忽感伤,格子间,冷暖尝。

相对无言,惟代码万行。

愿为自主研发闯,泡机房,又何妨。 

作者简介:

COCO, 150 后高级工程师,目前就职于广州大型通信国企,白天办公室打杂,晚上实验室码字。