首页 > 关于电子信息类,通信类的就业问题
头像
牛爱网无颜祖
编辑于 2022-02-17 19:58
+ 关注

关于电子信息类,通信类的就业问题

为我本科也是电子信息工程专业,硕士是通信类的,看到很多学弟学妹对专业对口有些疑问,所以开个帖子希望对大家有帮助。
当然了,首先虽然本人是通信毕业的,不过现在算转了半个行吧,做产品经理了,当然了,转行互联网也算是一条路吧,做开发产品运营等等,各位来牛客网肯定或多或少也有这方面的意愿,毕竟是一个互联网为主的论坛。

今天看到大家的疑问,想到了去年看到的一篇某乎的回答,翻了半天才翻出来,觉得这位学长说的很到位,现在转过来,希望给大家一些参考。。


通信党路过,现身说法。
介绍一下,本科时候985学校的通信工程,到现在工作满4年,在武汉一私企,14K月薪,这水平在很多北上广的程序猿眼中可能不算什么,但在武汉这个互联网二线城市里拿这个价我已经很满足了。当时选专业的时候觉得这名字蛮叼,通信工程,communication engineering,卧槽,带你装逼带你飞,毫不犹豫的跳坑了。结果四年下来,最大的感受就是,尼玛学的东西太多了,但是然并卵。。。我敢说,通信工程是所有工科学科中要学科目最多的一种,金工实习马列主义思想通识这些扯蛋的课就不说了,高等数学概率论线性代数这些理工科最基本的基础也不提了,但是我们尼玛还学化学!没错!大!学!化!学!你敢说这不是然并卵系列?!好在这门课趣味性强,考试也不难。但是大学物理就坑的一逼了。你可能会说大学物理也是基础呀,没错,是基础,但是以后的专业课基本用不到啊,而且巨尼玛难啊,什么动能角动量谐波热力学电场磁场光学电磁波,想想就头疼,而且要学整整两个学期,反正当时身边的同学们上课基本都是玩手机,是的,这就是985大学上物理课的风景。结果到考试的时候老师又在报复社会,班上基本一半以上都要补考,答主当年人品爆发,清晰的记得大物第一学期63,第二学期61,是不是很叼。大二的时候学了好多数学科目,复变函数、积分变换、离散数学等等,不得不说,这几门课还真得好好学,如果你想做通信理论,复变和积分必须学好,这是信号系统的基础,如果以后想搞软件,离散数学就必须扎实,问问现在CS的同学,算法才是优秀程序员与一般程序员的分水岭。答主也是毕业一两年后才悟出的,当年没重视这些,搞得现在还天天学数学,学弟学妹们吸取教训啊。到了大二下学期,专业课来了,尼玛又是巨多坑,硬件软件理论学了个遍,软件方面有C、C++、MFC、数据结构,硬件方面模电、数电、高频电路、EDA、DSP、单片机、通信电路、计算机组成原理、PCB电路板焊接,理论方面计算机网络、通信原理、信号与系统、离散信号处理、电磁场与电磁波(真正虐心)、数字图像处理数字语音处理(这两门好像是选修)。是的,你没看错!不要四年!不要三年!也不要两年!只要一年半的时间就能上这么多课程!还在犹豫什么,赶快拿起电话报名吧!冷静冷静,嗯。。这么多课程就压缩到一年半的时间学完,你觉得能学到什么?很多都是走马观花的上一遍,到了考试又要求老师指点江山,考完之后发觉只领略到了一点皮毛。现在是不是觉得然并卵?
不过可以理解,通信工程本来就是一个很大的学科,是很多学科交叉的重灾区,是一个理论与实践紧密结合的典型科目,里面每一个方面都是可以独成一面的大学问,本科生也就只能这样走马观花似的教学了,不可能面面深入。这样做的好处是通信工程学生的接触面都很广,而且这样能帮助你发现自己的兴趣点,到底自己是适合软件,适合硬件,还是适合搞理论。毕业后我大部分同学都直接工作了,到现在做什么的都有(刚毕业那会还有成天玩***赚了不少钱的人),但是真正搞技术的貌似不多了,销售、技术支持、跑工程的比较多,所以想要搞技术还必须得耐得住性子。工作的话看你自己擅长什么,就我自己的经历而言给学弟学妹们提供一些经验,能帮一些是一些吧,毕竟江湖险恶人心叵测社会不好混啊。
如果你喜欢软件,可以选择以下方面:嵌入式软件,BSP驱动,通信协议,上层应用软件。
简单的嵌入式软件的话就是单片机之类的,像什么51、STM32、AVR,一般都是做工业控制,搞这一类就必须对单片机的具体功能和实现特别熟悉,什么USART、I2C、PWM、DMA之类的都要信手拈来,而且要对芯片寄存器很熟悉,知道哪个功能配哪个寄存器,像SMT32这种提供外围设备驱动的还要对提供的固件库函数熟悉,运气好的话会碰到让你用单片机实现算法之类。但是这一类的话技术含量不是太高,因为毕竟知识点只有那么多,所以薪水不会太可观(当然特别厉害的除外),在武汉的话一般就是5K左右。所以一般搞单片机的都要往更深层次发展,就是裸板上跑跑操作系统,比如Linux或者VxWorks。只要上了操作系统,那内容可就多了,拿Linux来说,命令行要会用吧,系统编程要会写吧,网络编程要熟悉吧,GCC要会耍吧,Vim要会玩吧,操作系统的基础知识要熟悉吧,兴致来了兴许还要跑跑shell或者python之类的脚本文件,高级点的就要玩玩内核和驱动。个人建议通信工程的学生其实可以往驱动方面走,因为软硬件都懂,恰好驱动就是软硬结合的一个方面,而且一个产品中驱动如果做成熟之后就不用经常变了,我现在的项目组里面那几个做BSP的哥们儿就是立项之后那一段时间忙死,但是现在都是让我们羡慕嫉妒恨的对象,每天准时乐呵乐呵下班。但是驱动这条路学习曲线很陡,操作系统知识必须烂熟于心,内核代码也要好好研究,相关的硬件也要懂(数电必须懂,模电的话看个人造化),还时不时来个芯片让你驱动,那就还要去研究相干芯片的datasheet。但是学出来就好了,因为底层的知识变化不会那么快,所以做驱动的不会像做手机软件的整天加班成狗。如果VxWorks功底好,那工资不是一般的高。
通信协议,咩哈哈,答主感触颇深,因为就是靠这个薪水基本一年翻一番。可能是运气好,当时毕业的时候进了MPLS协议组(不懂的同学可以查下),这个协议很重要,现在电信联通的核心网里都用,但是做的人比较少,市场供不应求,恰好几年来工作的时候都是做这方面的协议,什么LDP、RSVP、L2 ***、OAM之类的都懂,因此找工作可以放心跟别人谈价钱。这是我的经历,但是还有很多协议啊,像什么OSPF、ISIS、BGP等等,这些协议的RFC文档都是一百多页,光把协议看懂都要花不少时间(RFC文档都是全英文,所以英文必须要好,切记切记!),更不用说编码实现了。不过还好,现在大公司里基本上都会买别人成熟的代码,只会让你维护,不会从头开始写。这些协议只要精通其中某一个,你都会成为通信市场上抢手的人才,因为实在是太重要了。但是搞协议有很多短处,其中最大的一个就是方向面特窄,到最后只会这一个协议,对整个产品的架构能力不会提高,而且都是买的成熟代码,编码能力不会得到很大的提升,所以你如果以后想自己创业的话就最好不要选协议,或者就要在业余时间多下点功夫学东西。
上层应用软件的话就不多说了,iOS,安卓,做好了工资高得离谱,但是数学必须要好,数据结构算法什么的必须烂熟于心。看看那些BAT的面试不都是问算法题么。
硬件方面不太懂,不做这一块,如果想做硬件的话,最基本的像模拟电路、数字电路、PCB布线等等必须要好。现在不是开源硬件挺火的么,想做硬件的同学们可以去看看。
理论的话可就深了,信号与系统、离散信号处理、数字图像处理、数字语音处理、通信系统集成等等,这些都是高大上的理论知识,研究透了成了大牛了基本不缺银子,而且市场需求比较广,比如美图的图像处理、微信的摇一摇歌曲识别功能,这里面就多少信号与系统的知识。想从事理论的话最好去读研读博,同时基础数学必须要好,复变函数、积分变换、微积分、概率论、模式识别这一类的课程很重要。同时也要加强自己的编程能力,因为光会理论不行,还要理论与实践相结合,C语言要会,MATLAB要会玩,C++最好也要会,因为老外喜欢用C++封装功能。
发现写了好多。。。不过这都是一个通信工程过来人的感受,如果能给学弟学妹们有所帮助我就已经感激涕零了。是的,我们要学的课程是很多,但是只要你认真学,并且在某一个方面研究的有深度,你就是一个通信市场的人才,而且是跨市场的人才,我们不仅可以做硬件,还能做软件,学CS的是不是羡嫉恨?嘿嘿。但是,学习是无止境的,刚毕业后你会发现学校里的东西太不够用了,因此必须不断的学习,不断的充实,这样才能保持自己不仅是在在通信市场,而且是在整个IT市场的竞争力。always stay hungry stay foolish,这是一个通信人应有的工作和生活态度。

----------------------------------------------------2015.7.9追加--------------------------------------------------------------------


很多同学问到以后的就业方向,那我就我所经历和看到的情况给大家列出一些通信行业常见而且吃得香的岗位,还没毕业的同学可以参考下。

软件方面:

1、嵌入式软件工程师。这算是最大的一个种类了,常见的就是基于SoC系统来实现某些具体功能,常见的芯片有51、ARM9、基于Cortex-M、基于MIPS的SoC系列等等,基本上都是基于硬件工程师设计的板子上进行系统开发工作,这里面的种类太多了,只要是负责编码的都属于这一块。一般用C,有些可能还会用到C++,所以想从事这方面工作的同学C语言功底一定要扎实。
2、驱动工程师。这是一个需要付出大量努力进行学习的工种,但是学好了一定吃得香。驱动,顾名思义就是要通过软件来让板子上的硬件跑起来,简单的驱动就是基于裸奔的单片机通过各种外设让相关硬件工作,更复杂的就是通过操作系统来驱动。简单的基于单片机的驱动比较好学习,只要把相关单片机的功能寄存器弄明白,按照相关硬件功能需求,编码实现就可以了。但是只要上了操作系统,那就是另一个世界了,要深入内核进行学习,所以建议想从事驱动的同学一定要学好C、操作系统和数电方面的知识。
3、应用层软件工程师。这里说的应用层是指基于操作系统的应用层,现在通信行业主流的操作系统有uCos、Linux和VxWorks。这方面主要是对OS的各种系统调用API要熟悉,同时要有很好的编程功底,要懂得进程、线程、IPC、死锁等等操作系统方面的知识,编程来实现各种功能。这里面还要懂网络编程,要熟悉五层模型、主流的二层三层协议(ARP、PPP、ICMP、FTP、TCP、UDP等等等,参考TCP/IP详解卷一),知道Linux系统的网络调用相关函数,懂得基本的网络编程模型(阻塞、多进程、多线程、select和epoll的IO复用),最好还去研究一下linux的内核,看看里面究竟是怎样实现网络的各种功能的。这编程能力就毋庸置疑了,C++也要熟悉,数据结构算法也挺重要。
4、协议软件工程师。咳咳,答主的行业。简单的说,就是编码实现各种通信协议。说道协议,那可就多了TCP/IP协议栈里就有一大堆的协议,通信设备上的协议也不少,一些主流路由协议像RIP、OSPF、ISIS等几百页的RFC文档就会让你头疼,好在大部分通信公司都是买成熟代码,编码苦手们的福音。这一方面主要是对交换机路由器的功能要熟悉,什么MAC地址、VLAN转发表、IP路由相关的概念要懂,再就是要对具体的协议很熟悉,这里的协议主要指比较大型的协议,比如OSPF、ISIS、BGP、MPLS、LDP、RSVP、L2 ***、L3 ***等等,这些个协议有些公司一个协议就要十几号人负责,每个协议的状态机、协议报文、实现算法都要熟悉。从事这个行业C语言要好,网络编程要熟悉,同时英语也很重要,不然几百页的RFC文档会让你吐血。但是短处我也提到过,就是方向性太窄,不适合什么都懂的技术宅。
5、FAE。Field Application Engineer,通俗点说就是技术支持工程师。从事这岗位的人一般都是从研发转过去的,而且之前都是从事芯片驱动的工作,要对某一款或几款通信芯片特别熟悉,比如Broadcom,然后等你不想写代码了就做这些芯片的技术支持,如果有公司用到你所支持的芯片出现了某些问题不能解决,就找你救急了。据我所知FAE的工资很高,而且一个区域就两三个这样的人,所以对人的研发能力也是有很高的要求。但是如果能从事FAE的话,办公比较自由,没事的话完全可以soho,发发邮件,打打电话,再不行就到现场支持(貌似是这样的,如果有误请原谅并指出)。
6、网络工程师。就是各种组网,懂得利用通信设备来组织具体功能需求的网络,主流设备有Cisco、Juniper、华为、中兴、烽火等。这个岗位需要对通信的各种路由协议很熟悉,但是不用知道协议的实现具体原理,只需要知道协议的功能和具体配置。这个岗位可能需要一系列证书,比如CCNA、CCIE、CCNP、华三的各种认证等,我一大学同学大四考了个CCIE(考试费用很贵,机试+笔试当时一共18000,而且当时要到香港去考),毕业之后在通信公司从事组网工作,年薪30W。这个岗位貌似出差比较多,而且必须手机24小时开机,因为工程上指不定出什么问题了第一时间就是找你。

硬件方面(硬件我不懂,只能举出我身边的一些例子):

1、硬件工程师。就是能根据需求来制定电路板,包括各种电路的设计、电器元件的选择、芯片选型等等。这方面的工作硬件知识就一定要强了,什么模电数电要信手拈来,而且对常用的各种电器元件和芯片要熟悉,知道什么功能用什么硬件来实现,也要懂画PCB,焊接功夫不用说,各种工具比如万用表、示波器要像长在自己身上一样。硬件工程师比较重要的还有调试能力,因为硬件的调试不像软件,必须要上板子调,而且硬件是个自然学科,有时候出现什么古怪问题可能新手会死命查不出,所以我觉得硬件工程师的话是一个很靠经验的行当。不过硬件不会像软件那样需要不停的学新东西,底层的知识变化没那么快。
2、射频工程师。RF,Radio Frequency,就是负责无线射频技术。这行当可就深了,首先一般从事RF的都是微波专业的,也就是学电磁场与电磁波专业,这专业学通信的都知道,巨费脑细胞,反正答主当年上课全是在当听天书。但是这个行业潜力巨大,RFID是风头正好的物联网的基础核心,如果射频工程师硬件好,同时软件也会,那完全就是各大射频芯片制造公司的抢手山芋,薪水让你掉下巴,我一师姐就在武汉的一个芯片公司,月薪接近3W,注意,是在武汉。所以微波专业的同学硬件是一定要懂的,因为据我的所见射频工程师天天都在调各种板子,如果软件功底够好那完全衣食无忧。
3、FPGA工程师。这个在通信行业很重要,因为数据转发不是靠芯片就是靠这个,因为FPGA是并行运算,速度够快,比如像OAM这类保护倒换就必须用FPGA来实现发包,这样才能达到时间性能需求。同时FPGA可以用来实现芯片功能,比如我现在所在的公司就有很多FPGA工程师开发公司自己的转发芯片。FPGA用的是VHDL硬件语言,而且数电模电功底要扎实。
4、PCB制板工程师。就是画电路板,这个一般的硬件工程师都会,但是大点的公司里面都有专门的PCB专项组,专门从事PCB布线工作。

非研发类:

1、销售。大家都知道,每个行业都少不了销售。如果嘴皮子好,性格比较外向的同学可以从事这方面的工作。销售做好了不缺银子,我一大学寝室哥们在深圳从事某品牌手机销售工作,四年了现在是东南亚的区域***,而且经常出入泰国(你懂的),逍遥的很。但是不要以为销售不用懂技术,最起码那些通信的具体参数你要能脱口成章吧。更懂技术的销售才是通信行业的好销售。
2、文档工程师。就是写文档喽,公司的设备都需要指导手册来指导用户进行操作呀。这个岗位英语一定要好,因为文档一般都会写中英文双份。沟通能力也要好,各种功能的实现你要找相应的工程师来了解才能制定文档。所以这岗位我觉得比较适合女生,本来就是个笔头功夫,而且在狼多肉少的通信公司,一个女生去进行各种功能沟通会很受欢迎的哦,嘿嘿。工作量的话看情况,设备不复杂就还好,如果需要写大型通信设备比如什么高端交换机之类的文档,可能会稍微大点,一本手册就是一本厚厚的书,但是第一版写完之后也就轻松了。
3、预研部门。这个部门在稍微大一点的通信设备公司都有,就是通过市场调查,来找出最符合公司下一步产品的技术和功能,然后制定各种计划给研发部门来实现。这个也比较适合女生(这个部门我不是很清楚,大致是这样,如果有错误请原谅并指出)。
4、测试工程师。在通信设备厂商,测试是一个很重要的部门,人数有可能比研发的还多,因为测试部门包揽着公司所有设备的测试工作,如果设备种类较多,设备功能较大,测试部门就有的忙了。测试工作的话不用怎么懂编程,设备每个功能的研发人员会提供相关的测试文档,或者有相关的测试标准(比如移动选型测试标准),照着这些资料进行配置,然后检查结果就OK了,如果没通过就找相应的研发人员解决。所以研发工程师打交道最多的就是测试工程师了,你们的关系一定要好哦,么么哒。现在的测试很多都是自动化脚本了,所以最好会一门相关的脚本语言,比如Python。工作量的话不好说,就我的经验,小公司还好,但是大型通信公司测试相当累,要陪着研发加班,设备超多,有的公司为了防止机房着火甚至每天还要安排测试人员通宵守着,而且机房里的设备很多,噪声超大,即使带上耳塞也会很烦躁,反正我如果在里面呆上半个小时就受不了了,不敢想那些测试人员怎么可以一呆那么长时间。因为不用编码,不怎么费脑细胞,比较适合女生。

码字好累啊。。。也写了这么多了,同学们大概也有了个谱。其实还有很多种类,我没有经历过或者看到过,如果以上说的地方有什么错误或者没有说到的,还请各位原谅并指出,我好修改,以免提供错误的信息。反正通信工程就是一个很大的专业,什么都能干。但是就像各位所经历的,学的很多,可都学的不深。同学们这时候就要及早找准自己的兴趣点了,看自己对哪一方面感兴趣就着重学习那方面的知识。还有就是选择了一个方面,就要持续不断的深入学习,这里面有两方面的意思,一个是持续,另一个是不断学习。持续就是在一个行业里面不断积累经验,不要东一下西一下,等你在某个行业里摸爬滚打到一定程度成某一方面的专家后,你就很受欢迎了。不断深入学习,就是一定要不停的催自己学习新知识,哪方面不懂就学哪方面,IT领域变化太快,不肯学习只喜欢肯老本,过个十几年就有得你受了。我也见过一些30好几的工程师来面试,有些没有在一领域持续深入,反而什么都做过,结果成了什么都会但什么都不深的万金油,还有一些就是做一个产品做了十几年,一直在啃老本,结果技术十几年没进步过,结果公司产品线一换就不行了。这两类人都被刷掉过,学弟学妹们谨记哦。
加班到现在一直在写这个,没码代码,心好有愧啊,滚去工作去了,方便的话各位就点个赞呗~~

-------------------------------------2015.7.18追加---------------------------------------------------------


很多同学留言和私信问通信工程的规划和发展,但是很多工种我只是看到过或者听说过,并没有经历过,所以不能给出很好的建议。我之前也列举过一些可以从事的职业,有兴趣的小伙伴们可以根据自己的特长去做做相关调查,听听从事这方面的学长的建议更好,以免我在这误人子弟。但是我可以就我所从事的软件研发的经验给同学们给出一定的建议,如果你还在读书,可以参考下,如果你刚进大一,可以按着我所提供的路子一步一步来,四年后可以保证你不仅是通信工程的软件人才,而且能力会超出大部分学CS的同学。但如果你是从高中初中甚至小学就编程的大牛们,请忽略以下文字吧。

有些童鞋指出想在本科毕业后找到研发方面的工作最好及早转CS,此话估计会打击很多通信人的积极性。可能现在互联网太火了,都觉得互联网才是真正的研发。大佬们说过:站在风口上,猪都能飞。现在互联网正是火了几年的风口,产生这样的想法情有可原。那么下一个风口是哪个?我认为是:物联网。物联网的英文简称是IoT,Internet of Things,意即万物相连。IoT的深远影响将会带来第四次工业***,即国外专家指出的工业4.0,规模将会数十倍乃至百倍于现在的互联网。现在各大IT厂商都已经为物联网布局了好久,想必童鞋们已经有所耳目。我觉得物联网简直就是为通信工程量身定做的一个职业,为什么?因为软硬兼施,不仅有软件,而且必须与硬件相结合,同时协议框架影响巨大,当然云计算、大数据之类的CS专业也很重要。通信工程的专业课程在这方面基本上都用得上,如果软硬同时精通,将会是IoT领域不可多得的人才。同学们可以做下相关调查。首先说在前面,如果列举出的书目国内有英文影印原版,务必选择英文原版,因为国内的翻译水平参差不齐,很多翻译错误,而且语句不通,还不如英文原版来的顺。同学们不要惧怕原版书籍,阅读技术文档比四六级的阅读题好多了,顺便也把英语巩固下,岂不一举两得。

好了,接下来我会就我的经验列举出一些通信软件工程师修行的计划和书目,有兴趣的同学们可以参考下。

(1)语言类

  • C/C++:如果连C都学不好那基本上与通信的研发无缘了。教材毋庸置疑是K&R的C语言圣经《The C Programming Language》,这是基础中的基础,务必打牢。进阶教材:《C和指针》、《C陷阱与缺陷》、《C专家编程》、《C标准库》。这前三本与K&R合称C语言四大圣经,《C标准库》也很经典,介绍了所有标准库函数的实现原理,可以研究下。C++教程可以选《C++ Primer》,很厚的砖头书,不过啃透之后C++也可以算得上熟悉了。进阶教材:《Effective C++》、《STL源码剖析》、《C++ Coding Standards》。为什么要学C++?因为这是个面向对象的世界,而且我之前也说过老外喜欢用C++,如果想进外企C++务必要好。
  • Python:为什么要学Python?因为方便,好学,而且用处大,不仅在文本处理,网络编程,而且系统管理方面等都极其有用。我现在做那些路由协议软件bug分析的时候,光产生的日志文件都是几十M甚至几百M,用文本编辑器打开都要半分多钟。这时候如果跑一段脚本代码做一些字符串处理,将自己需要的内容生成另一个简单的文本再打开方便多了。推荐教材:《Python核心编程》,也是一本砖头书,不过不需要每章都读,选前面的一些基础东西看下,后面的进阶内容留着需要的时候再看。进阶教材:《Python Cookbook》、《Python for Unix and Linux System Administration》。前者是一些Python技巧的总结,各个方面都有涉及到,后者是Python在Unix/Linux系统运维管理可以用得上。
  • Objective-C/Swift:可能同学们更疑惑了,为啥要学这东东?因为我大苹果啊,工资高啊,待遇好啊。这是一方面。我觉得这两个语言值得学是因为在现在的物联网领域,Apple目前是绝对的老大。国内的IT公司还在对智能家居进行深度布局,但是Apple的智能家居产品已经在开卖了,iWatch、Hue智能灯泡等等都挺火。更重要的是苹果有一套自己的智能家居开发API:HomeKit。到目前为止还有哪个其他厂商会有自己的一套智能家居API?而且苹果貌似在和一些协议组织联合定制物联网协议框架。现在物联网还是半温不火的状态,很重要的一个原因就是没有统一的协议框架,各大厂商只能各自为阵。如果谁能插手协议制定,谁就有发言权。苹果目前做到了,所以以后国内外在智能家居产业支持苹果设备的我认为会很多。因此这两个语言值得学下,技多不压身嘛。推荐教材为苹果的官方文档,可以在苹果的开发者中心下载。

(2)嵌入式

  • 51单片机:这是最好入门的单片机,把51系列的8位单片机功能掌握后,嵌入式一些基本功能也就熟悉了,比如GPIO、ADC/DAC、PWM、USART、SPI、I2C、中断、定时器、看门狗等等,对以后学习更高深单片机也就有好基础。学51的话首先去某宝淘一个开发板,不贵才100多,该有的功能都会有,然后就是不断学习编程实现功能了。教材的话目前国外的我还没不知道,如果有同学知道请务必告诉我哈。国内的教材我推荐一套(不是广告啊,我是真觉得写得好):《51单片机应用从零开始》、《51单片机应用实例讲解》。两本书的作者为同一人,写的非常细致,这两本搞定后51也就摸透了。但是这两本书全部是用的汇编语言,貌似没有用C,因此要自己用C实现。这位作者还有另一本书我觉得也挺好,《电子设计从零开始》,都是针对小白的,如果想做电子设计竞赛的同学可以参考下。
  • STM32:为什么要学STM32?因为Cortex-M系列的32位单片机功能强大,功耗低,而且价格低廉,正在取代8位单片机的地位(但并不是说8位的以后就无用武之地了)。在物联网领域Cortex-M系列的单片机绝对大有作为,因此想从事物联网开发的同学务必学好。首先也是去某宝淘一块开发板回来,接着就学习文档进行编程。教材的话相关开发板都会有配套的教材,可以先学一下。熟悉之后最重要的教材就是相关芯片的《STM32 Reference Manual》和《ARM Cortex-M3权威指南》,前者对相关芯片的所有功能寄存器进行了详细讲解,后者对Cortex-M内核框架和相关环境开发做了讲解。另外还有一本《Cortex-M3之STM32嵌入式系统设计》我也觉得不错,这本书讲了怎么用C++来封装STM32相关函数。学习STM32的时候建议首先按着教材,对着固件库函数先实现各个功能。之后再深入研究相关寄存器,这时就会对固件库的函数为什么会这样写一目了然了。
  • Cortex-A系列芯片:Cortex-M和Cortex-A都是属于ARMv7技术框架的东东,但是M系列是属于微控制器和低成本领域,作为工业控制是不二选择,但是如果想要跑诸如Linux和VxWorks之类的操作系统就有点吃力。A系列为高端领域,可以很好的支持Linux、VxWorks、WinCE等操作系统,现在手机领域的大半壁江山都属于A8和A9。由于答主目前也是在学习这一块,还没有深入了解,因此不能给出很好的建议。也希望熟悉的同学能赐教,先谢谢哈~!

(3)系统修炼

  • Unix编程:Linux系统的重要性想必大家都知道,因此想进行通信的开发必须学会用Linux环境进行编程。推荐教材绝对是Stevens大神的六本书(如果能写出一本之类的书就足以名垂千史,Stevens大神写了六本。。。):《Unix环境高级编程》、《Unix网络编程》两卷、《TCP/IP详解》三卷。第一本书国内简称为APUE,这本书对UNIX系统调用函数进行了极其详细的讲解。学习APUE最好配合另一本经典教材:《Unix/Linux编程实践教程》。这本书会教你怎样实现Linux环境下一些常见的命令,比如ls、pwd等等,后面涉及到了unix编程的所有方面,包括线程、IPC、socket等等。这两本配合着看有奇效,谁吃谁知道。《Unix网络编程》国内简称为UNP,第一卷介绍了Unix环境下的各种网络调用系统函数,第二卷讲解了IPC。把第一卷吃透后Unix网络编程就不在话下了(其中SCTP部分可以跳过,貌似用的很少),第二卷可以选着看。《TCP/IP详解》着重看第一卷和第三卷,第一卷介绍了从二层到三层的一些主要协议,第三卷介绍了HTTP等应用层领域的协议,第二卷的话讲实现,有兴趣可以看下。把APUE、UNP第一卷、TCP/IP详解第一卷都吃透之后,我可以保证你毕业的薪水不会少于1W。
  • 数据结构与算法:数据结构在软件修炼中很重要,因为程序=数据结构+算法,基本的诸如链表、堆栈、二叉树等等必须要熟悉,这些在通信领域中用的太多太多,虽然代码可能不用你写,但是还是对实现过程要了如指掌。算法之类的在具体工作中用的很少,反正我到现在为止还没碰到几个要实现的复杂算法,但是了解下总是好的。学通信的同志可能这方面会较CS的同学较欠缺,CS的大牛们都会去刷ACM题库,通信的子弟们好像很少有这种热情,如果感兴趣可以刷下。推荐教材:《数据结构与算法分析--C语言描述》,很经典的一本书,对复杂度描述、各种数据结构做了深入讲解,而且附加相关C代码,啃透了内功也算是深厚了。另外如果觉得这本比较难的话可以从国内的一些小白教材开始,比如《大话数据结构》、《啊哈!算法》都是国内的上乘之作。《算法导论》的话,如果你时间充足,毅力顽强可以挑战下,如果啃完了你会是大牛。
  • 操作系统:这是通信的薄弱环节,据我所知通信工程很少有开OS这门课的,反正答主当年是没在课堂上学过,全是课外自学的。学了OS可以对系统调用函数有深一层次的了解,会知道进程怎样组织和切换,内核级线程和用户级线程的区别,虚拟内存是怎么回事等等。如果想从事驱动开发的话,OS功底就要很好了。推荐书籍:《现代操作系统》。这是一本OS的经典书籍,而且比较容易读懂,适合入门初学者,着重学习 2、3、4、5、6章。对OS相关概念熟悉后,就可以阅读Linux源代码了,推荐书籍:《Linux内核设计与实现》,比较适合入门。另外像STM32单片机可以跑uCos操作系统,因此如果对这方面感兴趣学下uCos,代码开源并且简单易学,可以先学习uCos,然后再学习Linux之类的,推荐书籍:《uCos-II嵌入式实时操作系统》。

以上是针对通信工程软件研发的一些建议和书目,这些都弄通之后你将成为一名极其优秀的通信软件研发工程师了。答主只是一名普通的工程师,上面有些书我也是只看了一部分或者甚至还没开始看,也是在不断学习进步的过程中。所以通信领域是一个落后就要挨打的领域,必须不停的学习知识。
另外有些同学问到网络工程师该怎么培养,我可以给出以下建议:
首先要明确网络工程师的具体职责任务。网络工程师要组网,因此必须对各种路由协议要熟悉,比如OSPF、ISIS、BGP、RIP、MPLS等等。另外确实网络工程师不需要写代码,但最好还是学会一门脚本语言,因为在组网配置大型网络的时候命令会很多,这样一行一行敲会很累,因此一般都会运行脚本文件。学习的时候可以去学校实验室,一般都会提供具体厂商的通信设备,如果没有这条件可以下载相关模拟器,Cisco和华为都有自己设备的模拟器,可以直接在PC上模拟组网,效果和设备是一样的。然后就要学习各种协议,从二层到三层到大型路由协议,每个协议的功能、报文、状态机都要熟悉,这样才能对各种组网能随身所欲。之后就要熟悉设备的命令行,因为路由功能都是相同的,因此不同设备的相关命令行都是相似的,可以一通百通。推荐教材:Cisco的一系列考证官方教程,从浅到深依次为CCNA、CCNP、CCIE,都有相关的培训教材。另外华三出了一套教材,《路由交换技术》,一共好像4卷,应该也不错。另外《TCP/IP路由技术》两卷书是学习所有路由协议的不二选择。MPLS也应当好好学下,因为现在核心网中都用MPLS,并且与L2、L3 ***结合的相当好,所以很重要,推荐教材:《MPLS技术架构》、《MPLS与***体系结构》。前者是带领答主入门MPLS协议族的书籍,后者介绍了L2、L3 ***方面的内容。等踏上工作岗位后,应该还要研究具体协议的RFC文档。因为答主对MPLS比较熟悉,因此列一些MPLS相关RFC文档:RFC3031(MPLS框架协议,重要)、RFC3032(介绍了MPLS报文的组织)、RFC3209(RSVP-TE协议)、RFC3036(LDP协议)、***相关draft草案。
另外有些学妹们问到女生在通信领域好就业么?对此我只能做这样的回答:如果你想从事研发,最好去读个研,因为女生读研出来之后做研发会很有保障(不是性别歧视啊,是我所见到的事实);如果想做测试,本科毕业应该就够了,毕竟不用编码;另外一些像工程维护之类的,不建议女生,你愿意一年到头风餐露宿的在各地来回跑么?据我所知一些通信设备国企里面研发和测试的女生占到了三分之一甚至更多,因此可以考虑下。学妹们不要灰心,通信公司都是狼多肉少的地方,你们进去后会很受欢迎的哦,至少个人问题不用愁啦。


全部评论

(36) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

近期精华帖

热门推荐