【答疑现场】我一个搞嵌入式的,有必要学习Python吗?

【答疑现场】我一个搞嵌入式的,有必要学习Python吗?

文章目录

  • 1 写在前面
  • 2 一个结论
  • 3 Python在嵌入式领域能干啥事
  • 4 Python是用来干大事的
  • 5 友情推荐
  • 6 福利活动

大家好,我是架构师李肯,一个专注于嵌入式物联网系统架构设计的攻城狮。

今天我打算结合自己的真实案例,跟大家一起来聊一聊Python与嵌入式的藕断丝连。

1 写在前面

相信很多刚进入大学或者刚应届进入嵌入式开发领域的朋友,都有过这样的一个疑问:我将来是计划搞嵌入式研发的,我有必要去学习Python吗?

这个问题,说起来,肯定是不同人有不同的答案,下面我会结合我个人从事嵌入式研发近10年的工作经历,和大家一起探讨探讨这个话题。

2 一个结论

在读下文之前,我先拎出我的一个结论:搞嵌入式研发,真的非常有必要学习学习Python!

从我刚应届出来那会,说真的,由于我是电子科学与技术专业出身,本身是一个偏硬件的专业,毕业投简历的时候志在嵌入式软件岗位上发光发热,结果阴差阳错,被第一东家以嵌入式硬件工程师的岗位录用,从此走上了上班画板子,下班拿烙铁的苦逼生活。

说来也巧,我进入的团队由于业绩不理想,是一个新兴部门,并且团队内的硬件工程师严重饱和,所以部门领导见我是个可塑之才(一直空白,容易塑造),就想着把我往嵌入式软件工程师的岗位上培养。

这样可把我乐坏了,这不正是我一年前的理想吗?我怎么也得好好干一把,发挥发挥软件开发的优势。

但是,其实那个时候开发嵌入式软件,我是压根不知道有Python这玩意的,由于在学习只学过C语言、C++、汇编语言,而对于Python语言,也仅仅是从团队中资深的老大哥们口中得知的。基本上,大家都是统一口径:Python可牛B了,有必要学好它!

显然,那个时候我并不知道它牛B在哪,也可能无法理解它将会在我的嵌入式开发生涯中,一直伴随着我。

3 Python在嵌入式领域能干啥事

扯了这么多有的没的,下面我将结合我个人的实际工作经历,给大家梳理一下Python在嵌入式领域能干啥事?

  • Python上手快,组件(软件包)非常丰富,平时用于跑一个应用Demo,可以很快就能得到验证。比如我需要测试一下嵌入式终端的客户端网络通讯能力,我可快速用Python打一个网络服务器即可验证。比如我想验证一个ftp文件下载的功能,比如我想验证一个http文件下载的功能,比如我想验证一个MQTT订阅和发布,等等。这些对于Python而已,都是小CASE,有大量的第三方库,一分钟就帮你搭建好整个验证环境。

  • Python是脚本化编程语言,在嵌入式编译构建中,应用非常广泛,大名鼎鼎的 scons 就是完全用Python写的;了解了它之后,你也就不用去学习复杂繁琐的Makefile了

  • Python的还有一大利器,就是应用于嵌入式领域的自动化测试。在嵌入式中,性能测试和功能测试都是非常重要的两个环节,而传统的使用人工去执行测试,不但效果低下,而且容易出错,得不到有效的测试数据。而有了Python,我们就可以利用Python工具来搭建各种自动化测试环境,可以执行性能压力测试、可以执行批量的功能测试、可以挂长负载运行等等测试场景,不但减轻了测试人员的工作强度,也大大提升了研发定位问题的速度,这就是Python带来的好处。

  • 如今,嵌入式芯片的运算能力越来越强大了,想要在嵌入式平台上直接跑Python已经编程了一种可能,而MicroPython可能就是一种比较理想的方案。Python 编程语言具有浅薄的学习曲线,这使得开发人员可以非常轻松地开始使用它。当你有一个好的产品想法时,可以很快就用MicroPython实现验证,加速产品商用落地。

以上几点,都是我亲身体会到的优势点,大家还有其他重要用途吗?欢迎大家再评论区补充,我们一起来交流交流Python的牛B。

4 Python是用来干大事的

讲了这么多,你以为Python就仅仅是用于嵌入式领域吗?那你就大错特错了。

从我个人角度出发,我个人认为Python用于人工智能领域,这才是干大事的节奏。

由于我本身不是搞人工智能相关研发的,所以我的观点可能不具备说服力,于是我在某乎上,搜索 Python 人工智能 关键字,得到一个高赞答案,如下图所示:
感兴趣了解全部答案的可以 戳这里 !

在这里插入图片描述

看完这个回答,我想各位也应该深入思考一下,如果有志于从事人工智能领域的研发,是不是得把Python给学透了,毕竟那么多优秀的深度学习框架都是用Python来构建的,掌握了它们,也就开启了人工智能的大门。

5 友情推荐

基于Python语言学习人工智能,我留意到最近有一个畅销书非常火爆,它就是**《Python深度学习:基于PyTorch 第2版》**。

相信大家最近都被chat GPT的智能化给震惊到了,那么chat GPT究竟是怎么来的呢?

我这个门外汉搜集了一些资料,简单回答一下:

chat GPT是语言生成模型,是用人工智能技术来生成内容(AI Generated Content,AIGC)中的一种,像图像、视频和语音的生成模型,如VAE、GAN及扩散模型Stable Diffusion、DALL-E2等构成AIGC的另一个分支。这些模型或算法凭借其强大的生成能力,已成为生成模型的一大热门。

chat GPT背后的主要技术从架构、微调等方面来说,主要涉及三个核心技术。

(1)Transformer是底层核心架构,Transformer架构有很好的并发性、可扩展性、长距离依赖等特性。

(2)Codex用于代码、文本生成,可以根据用户描述生成代码,而且因其上下文窗口长达8192,无形中大大提升了整个模型推理能力。

(3)人类反馈强化学习(Reinforcement Learning from Human Feedback,RHFL)模型将预训练语言模型按照人类反馈进一步微调以符合人类偏好,利用人类反馈信息直接优化模型。

而今天我要推荐的这边书,《Python深度学习:基于PyTorch 第2版》,它涉及AIGC技术的核心内容,本书第8章、第14重点介绍了注意力机制及Transformer架构及其应用,第10章、第16章介绍了生成式网络核心架构(如AE、VAE、GAN等),这些架构包括降噪、重参数化等技术,此外,本书还包括目标检测、强化学习等内容。除理论、原理介绍外,还包括大量可动手实践的实例。

同时,本书还配置了丰富的PPT文档,更好地辅助读者朋友了解和实践书中的例程。另外,它还与 《Python深度学习:基于TensorFlow 第2版》 誉为 深度学习领域的双子星,阵容不可谓不强大。

在这里插入图片描述

关于本书的更多详细介绍,欢迎来我的 社区帖子 进一步深入了解。

6 福利活动

为了回馈广大粉丝的大力支持,特开展粉丝专属的赠书福利活动,活动详情可见我的 社区帖子:

总共送出3本 畅销书《Python深度学习:基于PyTorch 第2版》,再额外加2个幸运大礼包哦。

还在等什么,一起来参与吧。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/95.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【蓝桥杯嵌入式】ADC模数转换的原理图解析与代码实现(以第十一届省赛为例)——STM32G4

🎊【蓝桥杯嵌入式】专题正在持续更新中,原理图解析✨,各模块分析✨以及历年真题讲解✨都在这儿哦,欢迎大家前往订阅本专题,获取更多详细信息哦🎏🎏🎏 🪔本系列专栏 - 蓝…

Linux--多线程(1)

目录 一、概念 二、理解 三、创建、退出、合并进程 //man pthread_create //Compile and link with -pthread. //1.为什么没有fun函数? //2.加上sleep来改进 //3.线程结束会不会影响主线程运行? //4.那如果主线程比较少呢? 四、如何…

IP协议+以太网协议

在计算机网络体系结构的五层协议中,第三层就是负责建立网络连接,同时为上层提供服务的一层,网络层协议主要负责两件事:即地址管理和路由选择,下面就网络层的重点协议做简单介绍~~ IP协议 网际协议IP是TCP/IP体系中两…

RecyclerView流程学习

RecyclerView流程学习模块划分绘制流程onMeasuremLayout为nullmLayout开启自动测量未开启自动测量onLayoutonDrawonLayoutChildren缓存预加载滚动和fling模块划分 RecyclerView中根据其功能可以分为以下几个模块: Recycler mRecycler // 缓存管理者,fi…

yolov5的基本配置

yolov5的基本配置train.pydata.yaml数据集标签文件格式:总结train.py def parse_opt(knownFalse):parser argparse.ArgumentParser()parser.add_argument(--weights, typestr, defaultROOT / yolov5s.pt, helpinitial weights path)parser.add_argument(--cfg, typestr, defau…

uniCloud在线升级APP配置教程

app在线升级背景实现思路流程流程背景 因用户需要添加手机h5页面来进数据操作实现思路流程 实现流程图流程 相关文档:帮助文档 https://uniapp.dcloud.net.cn/uniCloud/cf-functions.html 注册服务空间 https://unicloud.dcloud.net.cn/pages/login/login uni升级…

基于Yolv5s的口罩检测

1.Yolov5算法原理和网络结构 YOLOv5按照网络深度和网络宽度的大小,可以分为YO-LOv5s、YOLOv5m、YOLOv5l、YOLOv5x。本文使用YOLOv5s,它的网络结构最为小巧,同时图像推理速度最快达0.007s。YO-LOv5的网络结构主要由四部分组成,分别…

三天吃透MySQL八股文(2023最新整理)

本文已经收录到Github仓库,该仓库包含计算机基础、Java基础、多线程、JVM、数据库、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分布式、微服务、设计模式、架构、校招社招分享等核心知识点,欢迎star~ Github地址:https://github.com/…

博客系统(界面设计)

✏️作者:银河罐头 📋系列专栏:JavaEE 🌲“种一棵树最好的时间是十年前,其次是现在” 目录实现博客列表页预期效果导航栏页面主体左右布局左侧区域右侧区域完整代码实现博客详情页预期效果导航栏 左侧右侧完整代码实现…

全国程序员薪酬大曝光!看完我酸了····

2023年,随着互联网产业的蓬勃发展,程序员作为一个自带“高薪多金”标签的热门群体,被越来越多的人所关注。在过去充满未知的一年中,他们的职场现状发生了一定的改变。那么,程序员岗位的整体薪资水平、婚恋现状、职业方…

认识TomcatMavenServlet第一个Servlet程序

文章目录一、什么是Tomcat、什么是Servlet二、Tomcat的下载与使用关于下载启动欢迎页面查看可能出现的问题博客系统静态页面的部署三、什么是Maven四、第一个servlet程序1.创建Maven项目2.引入依赖3.创建目录结构4.编写程序5.打包程序6.部署程序7.验证小结五、servlet程序简化版…

学习 Python 之 Pygame 开发魂斗罗(四)

学习 Python 之 Pygame 开发魂斗罗(四)继续编写魂斗罗1. 创建子弹类2. 根据玩家方向和状态设置子弹发射的位置(1). 站立向右发射子弹(2). 站立向左发射子弹(3). 站立朝上发射子弹(4). 蹲下发射子弹(5). 向斜方发射子弹(6). 奔跑时发射子弹(7). 跳跃时发射…

图片的美白与美化

博主简介 博主是一名大二学生,主攻人工智能研究。感谢让我们在CSDN相遇,博主致力于在这里分享关于人工智能,c,Python,爬虫等方面知识的分享。 如果有需要的小伙伴可以关注博主,博主会继续更新的&#xff0c…

Python雪花代码

前言 用python画个雪花玩玩,源码在文末公众号哈。 雪花类 class Snow(): #雪花类 def __init__(self): self.r 6 #雪花的半径 self.x ra.randint(-1000,1000) #雪花的横坐标 self.y ra.randint(-500,5…

读书笔记——《富爸爸穷爸爸》

《富爸爸穷爸爸》,以前不屑读这种书。这种书就是那种走进书店放在门口展销位的成功学著作,一眼看上去没什么实在的内容,看上去很不靠谱,感觉就是骗一些社会底层又做着暴富梦的人来买的,但是由于自身原因或环境局限根本…

MySQL基本查询

文章目录表的增删查改Create(创建)单行数据 全列插入多行数据 指定列插入插入否则更新替换Retrieve(读取)SELECT列全列查询指定列查询查询字段为表达式查询结果指定别名结果去重WHERE 条件基本比较BETWEEN AND 条件连接OR 条件连…

【面试题】Python软件工程师能力评估试题(一)

文章目录前言应试者需知(一)Python 语言基础能力评估1、理解问题并完成代码:2、阅读理解代码,并在空白处补充完整代码:3、编写一个装饰器:exposer4、阅读代码并在空白处补充完整代码:5、自行用P…

嵌入式 串口通信

目录 1、通信的基本概念 1.1 串行通信 1.2 并行通信 2、串行通信的特点 2.1 单工 2.2 半双工 2.3 全双工 3、串口在STM32的引脚 4、STM32的串口的接线 4.1 STM32的串口1和电脑通信的接线方式 4.2 单片机和具备串口的设备连接图 5、串口通信协议 6、串口通信…

linux进程管理

进程管理 进程是启动的可执行程序的一个指令 1、进程简介 (1)进程的组成部分 已分配内存的地址空间安全属性,包括所有权凭据和特权程序代码的一个或多个执行线程进程状态 (2)程序和进程的区别 程序是一个静态的二进制…

第十四届蓝桥杯第三期模拟赛 C/C++ B组 原题与详解

文章目录 一、填空题 1、1 找最小全字母十六进制数 1、1、1 题目描述 1、1、2 题解关键思路与解答 1、2 给列命名 1、2、1 题目描述 1、2、2 题解关键思路与解答 1、3 日期相等 1、3、1 题目描述 1、3、2 题解关键思路与解答 1、4 乘积方案数 1、4、1 题目描述 1、4、2 题解关…