在通信设备商工作那几年技术上的得与失

本人硕士毕业后的头几年是主要在通信设备商(他们研发生产通信设备(如基站)卖给电信运营商(如中国移动))工作,那时是通信业的黄金十年,单是通信设备商就有很多家,国内有华为、中兴、大唐、烽火等,国外有爱立信、诺基亚、西门子、摩托罗拉、朗讯、北电、阿尔卡特等。这里面的有些公司现在刚毕业的可能都没听说过,因为它们要么被兼并要么倒闭了,这要“归功”于华为(是华为打的他们无还手之力导致要么兼并要么倒闭的)。现在这个领域主要有四个玩家了,国内的华为和中兴,国外的爱立信和诺基亚。这个诺基亚跟手机领域的诺基亚当年可以说是兄弟关系,是诺基亚公司的两大业务:手机(通信终端)和通信设备。后来诺基亚把手机卖给了微软,通信设备就成了诺基亚的主营业务了。现今的诺基亚可以说是多家通信设备商的综合体,包括诺基亚、西门子、朗讯、阿尔卡特、北电、摩托罗拉,即这么多家最后并成了一家叫诺基亚。上面说了那时是通信业的黄金十年,同时外企明显强于国内公司,是毕业生眼里的香饽饽,很多毕业生都进了外企,其中不乏相当优秀的。这跟现在完全不一样了,现在是移动互联网的黄金时代,毕业生都想进移动互联网公司。这也很正常,大家都想进处于黄金时期的行业。我就在那时进入了一家外资背景的通信设备商,做媒体网关(media gateway)上的语音软件开发,从刚开始的啥都不会要人带到后来的我带别人。做了几年后由于我们这个产品的开发要transfer到其他site,我要去做其他领域软件开发。当时觉得前面几年的积累用不上太可惜了,也就不太愿意做其他领域开发,于是就换了公司,到一家芯片公司继续做音频相关的开发。这么多年过去了,现在想想当时出来是正确的,通信设备商的黄金时代早已过去,人不能逆趋势而行。今天就聊聊我在那段时间技术上的得与失。

先说得吧。好多做技术的前一两份工作就决定了自己的技术方向,我也是这样。进入通信设备商做媒体网关上的语音软件开发,而且一做就是几年,这就决定了我的技术方向是音频相关。直到现在我仍然做着音频相关的工作,只不过现在音频知识面更广了,做的东西难度更大了。如果后面还在做技术,我想还会是音频相关。所以这第一得就是得到了我的技术方向。我是学自动化(控制理论和控制工程)出身,而音频属于信号处理。记得刚进公司的时候听着周围人讲的术语基本都不懂,觉得自己好弱。一听到不懂的就记下来,下班后回家到百度上搜(那时公司里只有部分人能上网,我作为一个新人肯定没有上网的权限)。老大交待的任务完成后就主动要求做新的任务,好使自己快速上手。经过一段适应期后,我可以很好的跟大家讨论技术问题了。就这样从刚开始的什么都不懂到后来通过做不同产品形态上的音频开发掌握了除算法(算法主要是理解基本原理,然后去优化使用)之外的绝大多数的音频知识。做音频技术的相对偏冷门,做的人不多,我能坚持下来,并且一做就是这么多年,我也挺佩服自己的,哈哈。

这第二得是得到了较为全面的语音通信知识。整个通信网络分为通信终端(用户)、接入网和核心网,大意如下图:

通信设备商一般做接入网和核心网(刚开始时一些通信设备商连通信终端都做,后来陆陆续续的把通信终端卖掉了,专心做通信设备,比如阿尔卡特和西门子),而在接入网和核心网里都有好多网元,一般一个网元都有一个具体的产品部门做。做开发的除了关注自己开发的网元内部实现外,还要关注与之交互的其他网元的行为,如果没有兴趣一般就不会关注整个通信网络的架构了。我除了关注自己开发的以及与之交互的,对整个通信网络也十分有兴趣,想知道整个通信过程是如何进行的,比如两个手机之间打电话,信令是怎么交互的,语音数据是怎样从手机经过接入网核心网传输给对方手机的。公司除了有产品部门外还有整体解决方案部门,他们不做具体开发,关注网络整体方案,同时还要负责对外交流,告诉客户公司的从接入网到核心网的整体一揽子方案是什么。这种部门一般会写很多关于网络或解决方案之类的PPT,他们也会把这种PPT放在公司内网上供内部员工学习交流。我在公司的中后期正处于3G研发已成熟刚开始布网(国内上3G比国外迟了好几年)同时4G(LTE)已开始研发的阶段。我就从内网上找到一些关于通信网络架构的PPT学习,先学习了3G的接入网和核心网有哪些网元它们之间从控制面到数据面是如何交互的,后来重点放在了4G的网络架构上。4G是一个全IP的网络,即全是PS域(Packet SwitchedDomain,分组域)不再有CS域(Circuit SwitchedDomain,电路域)。接入网从3G时代的两个网元(分别是RNC和NodeB,RNC负责控制面,NodeB负责用户面)演进到只有一个网元(eNodeB,控制面和用户面都在eNodeB上处理)。核心网演进到EPC(Evolved Packet Core)。为了实现全IP下的语音通信,提出了VoLTE(Voice over LTE)的概念,通话双方都有4G网络时就用VoLTE通话,否则就回落到2/3G网络在传统CS域通话。VoLTE实质上也是VoIP,在终端上对语音数据编码后码流也用RTP/UDP打包。跟固网的VoIP相比,主要是网络承载不一样,固网是以以太网(ethernet)为承载,而VoLTE从终端到接入网是无线承载。语音通信时在核心网会用到IMS(IP Muitimedia Sub-system, IP多媒体子系统)。我当时做的媒体网关属于核心网网元,刚开始时属于NGN(Next Generation Network,下一代网络)下的一个网元。随着IMS的提出,NGN的概念慢慢淡化,媒体网关就成了IMS下的一个网元。就这样利用零散时间的学习,逐渐的掌握了整个通信网络的架构,尤其是语音通信方面的。

通信设备商都是大公司,做事风格上都会讲流程,相对正规些。在这样的环境下工作了几年,个人觉得也养成了相对良好的工作习惯,这是我的第三得。软件工程师的日常工作有设计、写代码、调试、解bug等。当时在软件设计阶段一定要写设计文档,还要开会review,确保在设计阶段尽最大可能想明白想清楚,然后再去写代码,不允许返工,因为越到后面返工的代价越大。我做了那么多feature,没有一个返工的,周围同事也是如此。后来在其他公司工作,我也是先尽最大可能想清楚然后再写代码,只是由于公司的风格不同,有时候就不再写设计文档了。在编码阶段,遵循部门制定的coding rule,有注释方便他人阅读,在关键处有log,方便后面调试。代码写完后还要给他人review,再后来就是自测,根据自己设计的测试用例测试,发现bug并fix掉。最后是给测试人员测并做bugfix。测试人员设计的测试用例会更复杂综合些,如果测试人员发现了一些简单的bug说明自测没做好,这会影响到年底的KPI,所以那时大家的自测做的都是不错的。

以上主要是三得。再来说说失吧。这第一失就是失去了在二十几岁的黄金时间做相对核心技术的机会。硕士毕业已经二十五六岁,刚从学校出来没多久,基础理论知识还在,可以做相对核心一点的技术,比如做算法。再加上二十几岁,精力旺盛,又单身,一人吃饱,全家不愁,可以把全部的精力放在工作上。哪像现在,有老有小,虽然老的目前不需要自己花什么精力,但是小的花了好多精力,不管是刚出生时的带娃还是大一点后的教育,都是很花精力的,尤其在教育上,由于忙而忽视小孩的教育,以后会后悔的。我想工作多年且家里有小孩的肯定有同感。我那时虽然是做语音开发,但是解决方案是芯片供应商做的,我们只是调提供的API(或者说我们只是做适配层),具体的实现对我们是黑盒子,我们是不清楚的。当我从通信设备商出来进芯片公司做voice engine的时候已经三十出头,学校里学的那些基础理论知识已经忘了好多了。前面说过我是学自动控制出身,信号处理只是学了一下应付了考试,学的不精通,现在做的是音频,算法就是信号处理方面的。毕业多年后再把信号处理理论知识拾回来难度是特别大的,我最终还是选择了做工程。我想如果毕业一出来就做算法,尤其是做控制上的算法,是能做的(我在读硕士期间就做的控制算法的具体实现)。这跟大环境有关,当时是通信热,硕士班上的同学绝大多数都去做通信了;外资热,同学们以进入外资公司为荣。当时的外资通信设备商在国内都设有研发中心,但做的都不是核心技术,甚至有的很弱。现在想想好多985甚至C9的毕业生都去做这些有点弱的技术,是对中国人才的一种浪费。我当时做的媒体网关是从国外的研发中心transfer到国内的,除了系统设计和部分测试在海外做,开发等都是在国内做,已经算是不错的了。即使是内资公司,当时除了华为中兴真正做核心开发的也没几家。

这第二失是失去了做更多东西的机会。当时公司非常注重流程。就拿开发一个feature来说吧,先需求分析、软件设计、测试用例设计,然后写代码、自测并且bugfix,再后给测试人员测试同时bugfix。做了四五家公司,我觉得做软件开发流程是要的,但是不能太拘泥于流程,不然效率偏低。就以写文档为例,要写的文档有设计文档、测试用例文档。我觉得模块设计和复杂的feature一定要写设计文档,一些简单的feature就没必要写文档,认认真真想一想怎么做,然后大家讨论一下就可以写代码了。现在想想那时花两个月做一个feature,现在两三个星期肯定能搞定了。再说当时写的那些文档,除了系统架构设计模块设计,那些小feature的文档事后基本上是没人看的,花了那么多时间写些事后基本没人看的文档真是浪费,还不如做快些,让项目早完成,早交付给客户。

原文地址:https://www.cnblogs.com/talkaudiodev/p/10085704.html

时间: 2024-10-31 22:32:32

在通信设备商工作那几年技术上的得与失的相关文章

代理IP软件对于电商工作的作用

代理IP软件对于电商工作的作用有哪些?我们现在的生活中,网络的发展速度是非常迅速的,所以有很多企业是依靠网络发展也更加壮大.现在电商的出现,方便了我们的生活.所以也有越来越多电商如雨后春笋般出现,成为了一种专业的行业,而且获取的利益也是非常可观的.但是这种特殊的行业,是如何找到自己的客源呢?代理IP软件对于电商工作的作用 我们就拿现在风靡朋友圈的微商行业来说,即使是规模非常大的微商企业,传统的实体店固定客流量是不能满足他们要求的.因此他们就会用其他方法来增加自己的客源. 代理IP软件在他们寻找客

程序员的口头禅:技术上无法实现

「技术上无法实现」这句口头禅,我在过去多年的程序员职业生涯中经常听见,甚至我自己就曾说过很多次.最近当我再次听到有人说出这句话时,就不禁思考起来,为什么程序员爱说这句话呢?为什么曾经我也时不时说这句话呢? 不知 当我刚开始工作的第一年,我在一家银行客户现场工作.当时要给银行的出纳管理部做一个系统,这个系统有个功能就是上传各个国家的高清真假币鉴别对比图片,然后银行的出纳和柜员就可以在系统上学习各国家纸币的鉴别方式了. 针对这些高清纸币图片,客户为了怕别人盗取乱用,就要求必须对对图片做加背景水印的功

如何从技术上预防抢票软件刷屏

对于很多外地的朋友来说,没到逢年过节,买张回家的火车票都是一件让人头疼的事.12306网站一到那个时候就会变得其慢无比,要多次登录才能成功,而且等到登录系统之后,回家的票很可能已经被抢光.大家只得花高价从票贩子手中购票.而票贩子之所以能顺利的买到票,是因为他们手中有各种高级抢票软件,有的甚至能在几秒之内抢光一节车厢的所有车票.12306网站想过很多方法来防止抢票软件抢票,如让验证码不断闪动,甚至让用户从图片中寻找指定的物品,但用不了几天,都被破解.那有没有办法能从技术上防止抢票软件抢票呢(在假定

物联网技术上面临的基本问题和操作系统设计

时下,在操作系统界,有一个热得发紫的名词"物联网操作系统",但物联网和操作系统究竟是什么关系,物联网将面临什么问题,操作系统又能为其解决什么问题呢? 操作系统和其他电子产品一样,是个不断迭代.与时俱进的一个东西,由用户需求.软件积累.硬件成本等共同推动发展,反过来又激发需求.定义硬件.在物联网时代,大家都在谈论物联网操作系统,我们要分析物联网的核心问题是什么,操作系统对于物联网,能做什么,不能做什么,它如何影响操作系统设计.最后,我们会发现,物联网的核心问题中,大多数问题,操作系统会表

刘强东新建三大事业群背后的野心,要在技术上战胜阿里巴巴

日前,刘强东发出内部邮件,对京东商城人事结构进行大调整.宣布组建大快消事业群.电子文娱事业群和时尚生活事业群,并分别任命王笑松.闫小兵.胡胜利为三大事业群总裁并升任京东集团高级副总裁. 关于刘强东的内部信,大家都把焦点聚在人事调整上,但何玺认为,我们更应该关注的是刘强东在内部信中对京东将坚决做"技术转型"的表态. 一.组织调整后,刘强东工作重心有转移 刘强东内部邮件显示,本次人事调整后,京东由原来的8大事业部升级为3大事业群. 1.新成立大快消事业群,由生鲜事业部.消费品事业部以及新通

(转)Oracle与DB2在数据库高可用技术上的相同与差异探讨

原文:http://www.talkwithtrend.com/Article/178339 数据库建设过程中,高可用是每一个企业数据中心数据库建设过程中至关重要的一个关注点,直接关系到业务连续性和稳定性.要想将这个工作做好,我们必须从其底层原理.机制.架构等方面进行深入了解,深入分析,深入对比才能知道我们应该如何去实践.下面的几个关键点,不仅仅是每一个DBA应该琢磨的事情,同时也是搞企业IT架构规划和建设的人必须了解和知道的事情. 下面总结了一些Oracle与DB2在数据库高可用技术上的相同与

把 14 亿中国人都拉到一个微信群在技术上能实现吗?

阅读本文大概需要 2.8 分钟. 作者:Max  来源:腾讯知乎官号 www.zhihu.com/question/293021546/answer/487157602 "最近,知乎上有一个非常热门的问题:"把 14 亿中国人民都拉到一个微信群里在技术上能实现吗?" 先说结论:也许可以实现,但你会什么都看不见. 根据 2017 年<微信数据报告>的公开数据 [参考 1] :2017 年 9 月,微信日均登陆 9.02 亿人,日均发送消息 380 亿次. 这意味着平

安晓辉:程序员在公司没事干时候,做什么好?(产品上想多一点,设计上想多一点,技术上做深一点做宽一点,思维框架上学多一点)

(一)项目相关 做下面这些事情,可以让你更了解项目和所用技术: 看看项目的需求文档.设计文档,不要局限于你负责那个模块的,看整个项目的. 看看你在项目中用到的技术,自己掌握得如何,能否进一步提高,比如了解原理.阅读源码,重构自己的代码. 看看其他人的代码,尝试理解他的设计和所实现的功能. 看看别人用到的技术点.技术栈,尝试去了解. (二)个人成长 思考下面的问题,可以让你找到更多事情来做: 我个人想在技术上做到什么程度? 这个技术,团队里哪个人用得最好,好在哪里?我该如何做到像他那样? 产品预期

电商工作代码

from selenium import webdriver from scrapy.selector import Selector import time import random import pymysql from urllib import parse import re import os # a = Selector(text=webdriver.page_source) # if a.xpath('//*[@id="J_submit"]'): # time.slee