当前位置: 首页 > news >正文

【答疑现场】我一个搞嵌入式的,有必要学习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个幸运大礼包哦。

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

相关文章:

  • 《SQL与数据库基础》20. 主从复制
  • 【C语言蓝桥杯每日一题】—— 单词分析
  • 让ChatGPT介绍一下ChatGPT
  • 【随笔】《挥手自兹去》
  • 网络安全 -- 常见的攻击方式和防守
  • ETL工具的选择
  • 前后端身份验证
  • 90%的人都不算会网络安全,这才是真正的白帽子技术【红队】
  • 三天吃透MySQL八股文(2023最新整理)
  • 数据持久化层--冷热分离
  • 【跟着ChatGPT学深度学习】ChatGPT教我文本分类
  • JAVA进阶 —— Steam流
  • 分享几个常用的运维 shell 脚本
  • 模拟实现strstr函数
  • 现在的00后,实在是太卷了
  • JavaScript-如何实现克隆(clone)函数
  • 【跃迁之路】【463天】刻意练习系列222(2018.05.14)
  • 2017-09-12 前端日报
  • Hexo+码云+git快速搭建免费的静态Blog
  • k个最大的数及变种小结
  • Mithril.js 入门介绍
  • UEditor初始化失败(实例已存在,但视图未渲染出来,单页化)
  • 第2章 网络文档
  • 关于extract.autodesk.io的一些说明
  • 试着探索高并发下的系统架构面貌
  • 通过获取异步加载JS文件进度实现一个canvas环形loading图
  • 云栖大讲堂Java基础入门(三)- 阿里巴巴Java开发手册介绍
  • elasticsearch-head插件安装
  • ionic入门之数据绑定显示-1
  • 长三角G60科创走廊智能驾驶产业联盟揭牌成立,近80家企业助力智能驾驶行业发展 ...
  • 移动端高清、多屏适配方案
  • #、%和$符号在OGNL表达式中经常出现
  • #Linux杂记--将Python3的源码编译为.so文件方法与Linux环境下的交叉编译方法
  • (27)4.8 习题课
  • (二) Windows 下 Sublime Text 3 安装离线插件 Anaconda
  • (附表设计)不是我吹!超级全面的权限系统设计方案面世了
  • (附源码)spring boot球鞋文化交流论坛 毕业设计 141436
  • (全部习题答案)研究生英语读写教程基础级教师用书PDF|| 研究生英语读写教程提高级教师用书PDF
  • (原創) 系統分析和系統設計有什麼差別? (OO)
  • .h头文件 .lib动态链接库文件 .dll 动态链接库
  • .NET 6 在已知拓扑路径的情况下使用 Dijkstra,A*算法搜索最短路径
  • .Net 6.0 处理跨域的方式
  • .Net core 6.0 升8.0
  • .Net IOC框架入门之一 Unity
  • .NET 设计模式—适配器模式(Adapter Pattern)
  • .net 使用$.ajax实现从前台调用后台方法(包含静态方法和非静态方法调用)
  • .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉
  • @Transactional注解下,循环取序列的值,但得到的值都相同的问题
  • [ai笔记9] openAI Sora技术文档引用文献汇总
  • [Angular] 笔记 6:ngStyle
  • [C#][opencvsharp]opencvsharp sift和surf特征点匹配
  • [C/C++]数据结构 深入挖掘环形链表问题
  • [ccc3.0][数字钥匙] UWB配置和使用(二)
  • [C进阶] 数据在内存中的存储——浮点型篇
  • [HTML]Web前端开发技术7(HTML5、CSS3、JavaScript )CSS的定位机制——喵喵画网页