`
嘉宾介绍:丁光宇老师(论坛账号丁光宇)在海信任职资深网络工程师,主持开发了多款智能网关、交换机、ONU、智能物联等网络通讯设备,在网络通讯以及嵌入式系统开发调试方面积累了大量实战经验。拥有博通、MTK、Realtek等平台的多年开发经验。对linux内核网络协议栈以及各种网络通讯协议有着深刻的理解。
采访内容:
一、 可以分享一下您的学习、工作经历吗,您是怎样进入网络通讯行业的呢?在我还没上大学之前,我看到那些电子的小玩意就会产生深深的好奇,觉得几个简单的电子元器件就能实现这么多的功能,对此感到非常神奇,但以我当时的知识储备除了赞叹外对其原理一无所知。后来我上了大学,选了一个电子信息工程专业,在上大学的时候我了解到有单片机这么一个东西,本着大学四年怎么也要学点实用技能的想法,于是从网上买了块51的开发板,从此差不多一整个学期整日待在宿舍和实验室里拿着那块开发板做各种实验,经常中午调代码忘了吃午饭,午饭跟晚饭合到一块吃。晚上在实验室呆到12点也是常有的事。 我之所以这么痴迷是因为这一块51开发板让我顿悟了,让我明白之前那些神奇并且摸不着头脑的电子设备的原理是如此简单。后面我又接触了各种各样的单片机,也参加了不少电子设计大赛并拿到过许多奖项。其中有一次的比赛题目是设计一个基于430单片机的红外线通讯设备。为了让传输的速度能够达到最大化,我不断的对单片机的红外线信号的处理流程做优化,使其从几kb慢慢优化到几百kb的速度,在完成这个功能的过程中我感觉就像是在不断的改装一台老爷车,最后让他快到能够参加F1方程式赛车一样激情澎湃,同时这也让我对数据通讯的快速转发产生了兴趣。在大学的其他时间里,我又了解了许多Linux相关的知识,也自学了操作系统,编译原理,计算机体系结构,计算机网络等计算机专业方面的基础课程,这让我对计算机有了系统性的认识,为我日后从事的工作打下了牢固的基础。
毕业前我还去一家做手机的企业实习过,我负责底层驱动开发,但仅仅为手机适配一些芯片编写一些功能固定的驱动程序并不能满足我对工作的期望。于是我来到了一家做家电的老牌企业,他们刚刚成立一个部门希望进军网络通讯设备这个行业,要知道通讯设备这个行业国内有华为,中兴,烽火这些老牌劲旅,国外有诺基亚,爱立信这些old money(老资本家)。我们就是在这样的环境下通过通过一点一点的积累做了不少成功的产品。因为前期人手严重不足,所以我要负责的功能非常多,但这也使我成长的非常快,并且我在大学做的那些项目和自学的那些计算方面的专业课使得我项目上上手也很容易。 由于通讯设备的数据吞吐量是一个非常重要的指标,所以很多时候我都是在想方设法的优化数据转发的流程使其能够更快的转发数据。这仿佛又让我回到了大学时优化单片机的红外通讯程序一样一行一行的斟酌代码逻辑为的就是提高一点点的性能,在不断压榨设备有限的硬件资源的同时,我对网络通讯设备以及一些网络通讯协议也有了更深的理解。
和大学时一样即便是在工作后我也会不断去市里的图书馆翻看一些我敢兴趣的技术类的书籍,每当看到有感兴趣的技术类的书,我就像是发现一部武林秘籍一样全情投入的沉浸其中。
最后,希望我能够在科技方面能有更多的建树吧。
二、您对那些想学好嵌入式以及网络通讯技术的同学,有什么建议?我在学习一些技术知识的时候一直本着这么一个理念,就是:只有理解了技术的底层逻辑才能融会贯通的掌握这门技术,你有多么了解这个技术的底层逻辑你就能多么灵活的运用这项技术。
比如说在调试一个运行在Linux系统上的网络应用程序时,你只对linux系统有非常粗浅的了解,那么你只能将目光钉在这个应用程序本身来进行调试,如果你对linux内核有一些了解,那么你就可能就会联想整个系统的运行对这个程序会有什么影响,如果你还对计算网络和操作系统的原理有很深刻的理解,那么你就会将目光拓展到整个网络和系统中进行调试。
说了这么多就是希望同学们在学习嵌入式以及网络通讯技术的时候,一定要理论结合着实践来进行学习,如果发现在技术的学习上有很多原理都摸不着头脑的时候就要回过头来思考一下有没有什么系统性的知识是自己非常不熟悉的,并且要对这部分知识进行系统性的学习。
对于嵌入式的学习我的建议是以linux系统为学习样本,找本能够让你动手跟着做的嵌入式学习书籍,再结合着操作系统,计算机体系结构的底层原理,不断的在虚拟机或开发板上进行试验,解释不了的现象及时查资料,逐渐形成一套自己的闭环学习方法。
对于网络通讯方面的技术学习难点是很难找到一个简单的试验环境以及在市面上几乎没有能够让你动手跟着做的学习资料,所以我的建议是用《深入理解Linux内核协议栈》这套课程里面的试验环境,一边看一边跟着《深入理解Linux内核协议栈》这套课程自己动手做这方面的试验,再结合着课程里面讲的计算机网络的底层逻辑,以最少的时间,透彻的理解网络通讯方面的技术。
三、您认为在从业的路上最重要的是什么?您对职场菜鸟有什么话说?首先最重要的是无论面临着多大的工作压力也不要放弃提高自己。要乐于多接一些自己从没有做过的任务,因为这样是提高自己的最快途径。在职场上要尽早想明白自己要什么,这样就不会被环境所迷惑。
四、对新入行的朋友提供些建议,并推荐几本对掌握Linux有帮助的好书吧对于C语言,我只推荐一本《C语言的抽象艺术》这本书带你深入了解C语言的设计思想。
对于计算机网络的话,我推荐两本:
《深入Linux网络技术内幕》, 《TCP/IP详解(卷一)》
上面两本一个注重计算机网络旳实践,一个注重计算机网络的理论知识
对于程序设计方面的我推荐三本:
《设计原本》,《人月神话》,《黑客与画家》
上面三本基本都是非常著名的关于软件设计开发方面上的一些思考
五、现在很多网友都很想了解有关技术项目方面的知识(特别是大学生),作为一个资深人士,能不能给我们分享一下从项目开始到结束的整体流程,项目运行过程中应该关注的关键点?总的来讲项目从开始到结束的流程可以简单概括为如下三个阶段:
1. 立项阶段:确定项目要进行开发,并且大部分的需求已经确定,技术部门开始进行评估,就像古代军队出去打仗一样,侦查好目标,点好人马准备出征。
2. 开发阶段:技术人员努力实现在立项阶段定下来的需求,这段时间会频繁地更新软件或硬件版本,同时还要召集测试组及时对这些版本进行测试,这个阶段测试人员就像是侦查连不断的对产品进行侦查,一旦发现有情况马上通知作战部队消灭敌人,项目经理就相当于一个参谋的角色,协调人力解决问题。
3. 交付阶段:对产品进行完整性测试后没有问题便将产品交付客户,但难免还有一些潜在问题没有被发现,此时就需要有一些人和驻守部队一样长期维护这些产品保证客户能够正常使用。
虽然很多不同的产品在开发时有着差不多开发流程,但即便是相同的产品在不同的公司,不同的客户,不同的竞争对手,不同的外界约束条件下其开发流程的细节上也会有不同的变化。仅仅是时间这一项就会使开发流程产生很多变化,能够根据外界的这些约束条件制定最符合实际情况的开发流程是我们在项目的开发中需要特别注意的。正所谓:兵者,诡道也。
往期社区之星回顾:
第34期:李秀君:跟随时代步伐,工程界“后浪”们才能破风向前
第32期:抗疫前线的工程师:物联网与LabVIEW的发展之路
第31期:8年经验资深工程师,剖析嵌入式的进阶方向
第30期:罗新林:PCB设计易学难精,如何才能学精学专? 第29期:13年华为工程师分享:持续积累经验才能做好硬件技术
第28期:朱有鹏:深度剖析工程师发展痛点,兴趣是最大的源动力
第27期:牟森林:艰难亦有趣味,电子工程师聊创业路 第26期:林超文:学会自我增值,才有突出重围的机会
第25期:叶学成:选择与努力相辅相成,造就优秀PCB工程师
第24期:高焕堂:VR/AR欺骗大脑,AI赋能大脑,两者结合创意无限
第23期:梦翼师兄:稳扎稳打慢慢修炼,方能成为技术牛人
第22期:软硬件开发第一线拼杀多年,资深工程师的进阶之路分享
第21期:陈杰鹏:热爱造就成功,嵌入式大佬的炼成记
第20期:韦东山:分享学习嵌入式的正确打开方式
第19期:武国平:脚踏实地,方能成就技术大咖
第18期:电子老顽童:分享电子工程师的技术及职业进阶指南
第17期:资深Layout工程师,讲述如何登顶心中的珠穆朗玛峰
第15期:我单身我骄傲,labview软件工程师的前进之路
第14期:汪成龙:资深视觉工程师分享LabVIEW技能进阶之路
第13期:白纪龙:“卧薪尝胆”,多年沉淀终蜕变
第12期:Mill:从无到有,FPGA工程师创业的过程 第11期:黄尚庆:电机工程师的成长史,学习经验分享
第10期:获多项国家专利的工程师为你道来硬件及PCB设计流程及核心!
第09期:从事开发近20年的工程师,谈开关电源产品设计要诀!
第08期:硬件工程师的未来方向以及硬件设计的流程案例
第07期:高速PCB设计行业发展前景及EDA软件工具深度解析
第06期:做个奔跑的测试工程师——分享测试开发之路
第05期:酸甜苦辣兼有之,资深工程师谈创业之路
第04期: “剩”者为王—资深嵌入式工程师的进阶指南
第03期:如何成为一位“合格”的资深电子工程师
第02期:社区之星——嵌入式社区达人:王巧玉
第01期:社区之星-DSP牛人miachael_xing
*******************************************************
`