(1)语言类
•C/C++:假若连C都学不好那基本上与通讯的研制无缘了。教材毋庸置疑是K&R的C语言旧约《TheCProgrammingLanguage》,这是基础中的基础,勿必打牢。进阶教材:《C和表针》、《C圈套与缺陷》、《C专家编程》、《C标准库》。这前三本与K&R称作C语言四大新约,《C标准库》也很精典,介绍了所有标准库函数的实现原理,可以研究下。C++教程可以选《C++Primer》,很厚的板砖书,不过啃透以后C++也可以算得上熟悉了。进阶教材:《EffectiveC++》、《STL源码分析》、《C++CodingStandards》。为何要学C++?由于这是个面向对象的世界,但是我之前也说过鬼佬喜欢用C++,假如想进国企C++勿必要好。
•Python:为何要学Python?由于便捷,好学,但是好处大,除了在文本处理,网路编程,并且系统管理方面等都十分有用。我如今做这些路由合同软件bug剖析的时侯,光形成的日志文件都是几十M甚至几百M,用文本编辑器打开都要半分多钟。这时侯假如跑一段脚本代码做一些字符串处理,将自己须要的内容生成另一个简单的文本再打开便捷多了。推荐教材:《Python核心编程》,也是一本板砖书,不过不须要每章都读,选后面的一些基础东西看下,旁边的进阶内容留着须要的时侯再看。进阶教材:《PythonCookbook》、《PythonforUnixandLinuxSystemAdministration》。后者是一些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多unix网络编程百度云,该有的功能就会有,之后就是不断学习编程实现功能了。教材的话目前国内的我还没不晓得,假如有朋友晓得请勿必告诉我哈。国外的教材我推荐一套(不是广告啊,我是真认为写得好):《51单片机应用从零开始》、《51单片机应用实例讲解》。两本书的作者为同一人,写的特别细致,这两本搞定后51也就深谙了。并且这两本书全部是用的汇编语言,据说没有用C,因而要自己用C实现。那位作者还有另一本书我感觉也很好,《电子设计从零开始》,都是针对小白的,假如想做电子设计大赛的朋友可以参考下。
•STM32:为何要学STM32?由于Cortex-M系列的32位单片机功能强悍,帧率低,但是价钱低廉,正在代替8位单片机的地位(但并不是说8位的之后就无用武之地了)。在物联网领域Cortex-M系列的单片机绝对大有作为,因而想从事物联网开发的朋友勿必学好。首先也是去某宝淘一块开发板回去,接着就学习文档进行编程。教材的话相关开发板就会有配套的教材,可以先学一下。熟悉以后最重要的教材就是相关芯片的《STM32ReferenceManual》和《ARMCortex-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等应用层领域的合同unix网络编程百度云,第二卷的话讲实现,有兴趣可以看下。把APUE、UNP第一卷、TCP/IP解读第一卷都吃透以后,我可以保证你结业的工资不会多于1W。
•数据结构与算法:数据结构在软件修练中很重要,由于程序=数据结构+算法,基本的例如数组、堆栈、二叉树等等必需要熟悉linux系统怎么样,那些在通讯领域中用的太多太多,即使代码可能不用你写,而且还是对实现过程要了如指掌。算法之类的在具体工作中用的极少,总之我到现今为止还没见到几个要实现的复杂算法,并且了解下总是好的。学通讯的同志可能这方面会较CS的朋友较缺乏,CS的大牛们就会去刷ACM题库,通讯的子弟们似乎极少有这些热情,假如感兴趣可以刷下。推荐教材:《数据结构与算法剖析--C语言描述》,很精典的一本书,对复杂度描述、各种数据结构做了深入讲解,并且附加相关C代码,啃透了心法也算是深厚了。另外假如认为这本比较难的话可以从国外的一些小白教材开始,例如《大话数据结构》、《啊哈!算法》都是国外的上乘之作。《算法概论》的话,假如你时间充足,毅力顽强可以挑战下,假如啃完了你会是大牛。
•操作系统:这是通讯的薄弱环节,据我所知通讯工程极少有开OS这门课的,总之答主当初是没在课堂念书过linux操作系统安装,全是课外自学的。学了OS可以对系统调用函数有深一层次的了解,会晓得进程如何组织和切换,内核级线程和用户级线程的区别,虚拟显存是如何回事等等。假如想从事驱动开发的话,OS功力就要挺好了。推荐书籍:《现代操作系统》。这是一本OS的精典书籍,并且比较容易看懂,适宜入门初学者,注重学习2、3、4、5、6章。对OS相关概念熟悉后,就可以阅读Linux源代码了,推荐书籍:《Linux内核设计与实现》,比较适宜入门。另外像STM32单片机可以跑uCos操作系统,因而假如对这方面感兴趣学下uCos,代码开源而且简单易学,可以先学习uCos,之后再学习Linux之类的,推荐书籍:《uCos-II嵌入式实时操作系统》。
以上是针对通讯工程软件研制的一些建议和书目,这种都弄通以后你将成为一名非常优秀的通讯软件研制工程师了。通讯领域是一个落后就要挨骂的领域,必须不停的学习知识。