Python vs. C/C++:电子工程师为什么要学Python?

作为一个嵌入式的电子工程师,你必学的一门编程语言一定是C/C++,但如果你想学习两种编程语言,那根据目前的发展,Python可能是你最好的选择。

当然,电子工程师都是一群非常傲娇的人,可能你现在觉得自己的状态很好,根本不需要学另一门编程语言,毕竟现在的编程语言可选择的太多了:Ruby,PHP,Java,C#,Javascript,Dart,Go,Rust等。而你也已经熟练掌握了C/C++,这已经可以让你从嵌入式固件一直带到GUI应用程序,颇有一招吃遍天的赶脚。

所以说,为什么要花时间学习另一种编程语言?而且所学的这种语言到底是否有用,对自己有帮助?

我只能说,小子,你还是太嫩了。告诉你个秘密,如果你愿意再学习一种语言,它可能会为你打开一个全新的世界。

作为电子工程师,如果你学习一种编程语言,它一定是C/C++,你需要用它来编程微控制器,配置寄存器,并且你将设计和编写固件以测试各个电路功能,深入了解电路原理,将值写入不同的寄存器,访问存储器总线以及控制硬件外围设备。

但是如果你还需要额外学习一种编程语言,那我认为目前而言非Python莫属。

Python vs. C/C++:电子工程师为什么要学Python?

强大+控制 vs. 简单+灵活

C/C++对硬件设计人员如此有用的原因在于它几乎可以满足你任何嵌入式系统的控制,但是相应的,操作也非常麻烦,对于微控制器的内存操作,你需要确保指针实际指向内存中的有效位置,并且您的数据类型已正确分配且不会溢出。记住这些,你才能少犯错误,否则可能直接导致你整个系统的崩溃。

C/C++力所不及的时候,Python却可以潇洒自在,这就是Python的乐趣所在。同样的问题,有时你不需要紧凑的处理分配管理你的内存,你只需做一些事就行。

Python vs. C/C++:电子工程师为什么要学Python?

Python抽象出了我们需要在C/C++中处理的许多细节,例如内存管理和可变数据类型。即便变量将溢出或者分配或取消分配正确的内存量,则也不用不再担心,你只需专注在代码上即可。真正让Python脱颖而出成为第二语言的选择是基于它庞大且不断发展的社区,对开源库的巨大支持,以及它支持各种应用程序,如Web应用程序编程,数据科学,数据可视化和通用自动化。如果您尝试在这些领域使用C/C++,这简直是噩梦,非常复杂。

即使像打开文件和解析其内容这样简单的东西,C++与Python也有截然不同的操作方式。下面是我们打开文件并将其内容打印到屏幕的示例:

C++

Python vs. C/C++:电子工程师为什么要学Python?

Python

Python vs. C/C++:电子工程师为什么要学Python?

Python案例

这里我并不是强调哪种语言更好,平时我也会根据自己的需求使用这两种语言以及Java,C#和Javascript等其它语言。不过目前来看我觉得必须要提供一点自己学习语言的建议,首先,我认为第一选择是C++,然后则是Python。(嗯...也许Verilog也不错,毕竟FPGA现在很火,这取决于你是否使用可编程逻辑。)

当然本文还是主要关于Python的,这毕竟与电子工程师的相关性非常大。而随着我们深入研究这个语言,你会发现Python将给你开辟一片新的应用世界。

上面的例子虽然非常简单,但这是大量设计自动化和数据科学的基础。除此之外,我们也将探索各种库,以了解如何设置数据库,Web服务器,创建REST API,挖掘大型数据集,创建数据可视化,使用网络摄像头检测对象等,我们还将加入一些机器学习。Python vs. C/C++:电子工程师为什么要学Python?

因此,当我们开始从电子工程师的角度探索新技术时,希望能时刻保持对Python的关注,或许Python可以更简单的帮你解决问题,我们希望这不仅可以让工程师更有效地自动化事物,还可以扩展你的世界,不仅仅是设计硬件和电路,还可以设计复杂的系统,这些系统不仅涉及电子产品,还利用了对Python的理解所衍生的大量的技术资源。

如果你对Python有什么看法,也可以在留言中畅所欲言。

 

强烈推荐阅读:

  • 还好没放弃,终于等到你——基于边缘计算的谷歌Coral USB加速棒实测
  • 将高端医疗设备平民化——Spectra开源生物医学成像系统
  • 理解电容器泄露真谛,有助延长低功耗智能设备续航
  • 搭载全球首款集成三轴加速度计&温度计的ST单芯片传感器
  • 如何保持基于RISC-V的嵌入式设计灵活性?用Linux和Zephyr microPlatforms就好
  • Python vs. C/C++:电子工程师为什么要学Python?已关闭评论
    A+
发布日期:2019年07月03日  所属分类:参考设计