大家好,首先声明:本文纯干货,单纯为了帮助大家快速入门。有用的话大家点赞评论加关注即可。谢谢大家
题主是从一个毫无编程基础的Labview小白到现在能独立承担软件开发项目的工程师,作为瑞文的老玩家,题主觉得,正所谓:前车之鉴,后车之师。我把学习过程中遇到的困难和宝贵的学习经验分享给大家,让大家少走弯路,快速成长。我相信我的粉丝里面有许多同学正处在学习的迷茫期,话不多说大家听我分享。
经验分享目录
- 1. 个人学习经历
- 2. 学习思路推荐
- 2.1 基础阶段(三个月)
- 2.2 强化阶段(六个月)
- 2.3 进阶阶段(一直保持)
- 3. 学习过程避雷
1. 个人学习经历
题主个人情况: 本科机械自动化方向,读研为电子信息偏测控方向,电子信息硕士,学习该软件时仅有C语言基础(大学时的C语言水课),基础很差。
题主入门周期:
题主在2020年的时候,初次接触Labview这个软件,当时了解到是用作仪器控制的,我的导师在我还不知道什么是“Labview”的前提下直接甩过来一个大程序的所有项目文件,包括各种文件夹和dll文件,当时完全懵逼状态,根本就是无从入手,所以就像许多初学者一样迷茫,就是挣扎着学习,摸爬滚打。大概半年时间,从一个巨小白变成了可以基础编程的一个小白,但这个过程并不这么顺利,我和大多数人一样,因为是全凭自学,踩坑较多,成长的比较慢。
半年以后, 我开始尝试自己改别人的程序,哪个函数不懂就去查,自己写一些简单的vi,但是这期间,还是在不断强化基础和进阶的,这是个不断进步的过程,经过一年时间, 才稍微开始独立去承担项目,现在我明白,无论控制仪器还是做一些板卡仪表等的上位机软件,首先了解该仪器仪表的工作原理,其次了解电脑和这些仪表如何通讯,最后通讯成功使用什么协议连接(串口/GPIB/网口) ,这是一个固定的进阶过程。那么题主是如何进阶的?有哪些经验可以分享呢?如何少走弯路? 请大家继续往下读。
2. 学习思路推荐
题主打算把这个学习过程分为三节来讲,分别对应题主的三个学习周期,它们分别是基础、强化、进阶三个阶段。
2.1 基础阶段(三个月)
在这个阶段,大概的周期题主定为了三个月,当然这只是稳健一些的入门的时间,为了将所有有价值的基础知识弄明白,这里提供了详细的基础阶段的学习思路:
首先, 如果大家没有过硬的C语言基础,建议先刷视频, 视频这里题主只推荐平台,大家可以去小破站找一个播放量和评价最高的博主,这里有一个重要的点:要先看视频是否已更新完, 看视频与读文章是不同的,视频是个循序渐进的过程,如果看了一半的博主断更了,对大家的的学习积极性也是一个打击。如下图直接搜索“Labview”,可以试听一下选一个自己喜欢的博主即可。当然基础视频大家看哪个博主差别是不太大的,因为这是帮助大家入门的一个扶手。
其次, 看视频的过程要和自己做的过程时间占比要均匀,要自己多动手,看懂了并不就是自己会了, 这个过程我建议大家把更多时间用在自己仿写视频的代码上,时间可以大概为看视频:自己写=1:2,自己写的过程可能有点痛苦,但是坚持住了这几个月,就能有质的飞跃!
最后, 关于是否需要看书的问题,我想告诉大家:不必按章节细看,但是大家可以自己买一本入门级比较全面的书,并非从第一章开始看,而是我希望大家作为一本手册来用,哪些地方遇到问题了,去翻找目录查看。当然大家如果基础视频强化过了,可以快速翻看一遍这本书,切忌浪费太长时间。
2.2 强化阶段(六个月)
这个阶段可长可短,取决于大家学习这个软件的目的,如果你是为了竞赛,已经有师兄师姐或者学长学姐提供的 “祖传代码” 并且可能竞赛完很长一段时间不会再用了,那么我建议大家大大缩短这个时常,基础学完直接读代码。但是, 如果为了承接项目或者自主编程,或者长期作为可投资学习的语言来讲,建议大家好好对待强化期。那么这个阶段能做什么呢?
首先, 基础阶段的学习过程不能断,就像题主已经三年了,目前还会定期强化一下基础知识,因为基础知识永远是这层高楼的地基,要时不时砸一下,但不用之前基础阶段那么久了。
其次, 在学习过程中,相信基础阶段大家更多的会学习到 “什么是字符串啊?”“什么是事件结构啊?” 这种基础结构或者函数,当然这是一个个砖瓦,那么到了强化阶段大家要综合起来,了解结构间的配合,函数间的搭配, 来完成我们的上位机程序的编写,那么怎么办呢?我建议大家在有一定的基础的前提下。通过Labview界面中的帮助 — 查找范例来打开范例。如下图所示:
那这个怎么用呢,这些文件夹中,大家仅看 “创建用户界面” 就行了,其他的大家在做上位机用到的话,可以直接搜索就行,比如UDP/TCPIP等协议的编程,相信很多同学是用不到的,用到什么就搜索什么,而 “创建用户界面” 文件夹里面是大家做界面编程几乎都能用到的技巧,建议大家这样使用:打开VI后,先看一遍这个软件是做什么用的,实现了什么目的自己读一遍,然后自己新建VI仿照着自己做一遍,这些学完大概半个月到一个月的时间,相信大家会有很大的提升! 相信题主,NI自带的Labview程序都是精挑细选过的经典,大家对照着学习是完全没有毛病的。
最后, 中间穿插着读一些相关的文章,类似于题主之前写过的文章,会有一些编程小技巧是自学学不到的,可以在放松之余刷一刷文章,或者遇到问题时搜索答疑即可。
本阶段就是要明白Labview是基于数据流编程的软件, 并且一个程序中,数据流的流向是朝向什么方向的,这点非常重要,可以说所有编程的人脑子里都带有一个虚拟的画面,记录了程序中的数据流方向,本阶段大家就锻炼这个能力即可。
2.3 进阶阶段(一直保持)
那么进阶过程对于大家来说需要判断自己是否是处于已强化完可以进入该阶段,以下有几个标准:
①几乎常用函数全部掌握,并且前面板控件的功能也基本掌握。
②理解了Labview中的数据流的方向,拿过一个简单程序后可以剖析出数据流的流向,大致程序是怎样运行的。
③拿过一个简单问题,能大致知道如何去编程,比如说:写一个程序,要求实现一个功能,即按下一个按钮后,保存数据到txt文件中。此时应该反应出首先按下按钮有反应应该是事件结构的功能,保存数据应该是将数据写入txt文件中,这就可能会用到“文件I/O”中的函数。
基本满足以上几点就可以进行进阶锻炼了,那么本阶段的重点是什么呢?
如上图所示,该阶段更重要的是了解硬件和软件之间是如何沟通的,我们可以将软件和仪器之间的通信理解为二者之间的对话,软件说指令,硬件来应答。当然其中需要了解到软件和硬件之间通信的桥梁,即通信协议,往往有串口、GPIB、网口、TCP/IP、UDP等通用的协议。
了解了该原理之后,就投入到项目实践中,有些同学会说,我没做过项目能行吗!你不做永远都不行,一开始都是痛苦的,但是当你经历了一两个项目之后没我相信你的自信心和能力各方面都有所提升。加油
3. 学习过程避雷
①禁止陷入自证的陷阱,戒骄戒躁。 许多同学一开始学习就想一口吃个大胖子,就想着我怎么还不会,我真的很笨吗?千万别这样想,按部就班,按照题主说的,你慢慢就会意识到,从量变到质变的过程有多舒服。
②切勿眼高手低,看懂就觉得会了。 在看视频和书籍前期,许多同学觉得视频听起来太简单了,觉得“就这?” 但是仅仅停留在看懂了,但是让他做,他又做不出来,一定要把动手做放在第一位,做到看视频:自己写=1:2。
③坚持才是最重要的。 很多同学今天学一个,明天学一个,后天不学了,又过一周重新学。这是学习的大忌讳。一定要不间断,期间最好不要间断超过三天,因为前期一旦断开,再补上就需要更多的时间了。
本文会定时更新技巧,目前题主的方案是值得大家参考的,但并非绝对,找到适合自己的学习方法才是最重要的,希望学习这条路上,我能陪大家一起进步,加油!