<title>**labview工程师“小草”成长访谈纪要**
LabVIEW工程师炼成记
小编导读:学习LabVIEW好找工作嘛?LabVIEW的发展前景有如何呢?LabVIEW相对于其他语言有啥优势呢?真的是冥冥之中自有安排啊!抱着这些问题我们找到了小草童鞋,他的热情,乐于分享的经验深深打动小编。下面就跟着小编的采访揭开上述迷雾吧!
1、电子发烧友:我们称呼你为徐工,可能大家都会比较默生,毕竟大家对你的那本《小草 手把手教你LabVIEW串口仪器控制》还是很感兴趣,还是称呼你为“小草”如何 ?
小草:
以前网名叫浅浅的小草,在LabVIEW的论坛上昵称也是浅浅的小草(ID是happyarrow),大家都叫我小草,比较容易记。
2、电子发烧友:我们论坛大概在一周前,发布了一个采访内容征集的帖子,顺便贴上了你的那份教程的PDF版本,当天5小时内的下载次数超过200次,不到10天下载量超过1400次,但是回帖数只有25条,对这个有什么看法?
小草:
目前这个教程,应该网络下载量很多了,已经放到网上有2年时间了,下载传阅量应该很多。很多人也是通过这个PDF教程认识我的,或者有些人看过这个PDF,只是看内容,又没看作者。这些都无所谓。
现在大家学习LabVIEW,都喜欢先找源代码,找现成的资料,然后就存起来,好像下载的资料越多,看的资料越多,自己技术就会变的厉害。以前总有人找我要源码和要资料,我给了一些,然后他们还会问,还没有,还要。
当初写这个串口教程初衷是QQ群和论坛里很多问LabVIEW串口的问题的。网上的资料很多,但是都不系统,有时候也是学习的人只是一味求资料,而不好好消化。然后我就花了大概一个月时间写了这个手把手串口教程。
对于为什么回复这么少,这个很正常,大家求资料,都喜欢瞬间可以下载,有时候论坛设置回复才可以下载,有些人就抱怨。大家都来去匆匆吧。
有时候想想,自己写这个教程花费了很大时间精力,有些人连回复一下都懒得回复,确实有些悲哀。或许免费的劳动成功,大家确实不怎么“尊重”和“珍惜”
不管怎样,能帮助到需要帮助的人就好。当然,有些人就算下载了我的教程,还是继续去寻求其他资料,就不说什么了。
3、电子发烧友:结合在论坛做的采访内容征集,我们整理一下几个问题内容如下:
① 能不能给大家分析一下您对Labview市场前景发展的看法呢?
小草:
LabVIEW这几年学习的人越来越多,市场也越来越大,也有一些新手经常问我LabVIEW可以用来做什么,我觉得这个问题应该反问下,你想用LabVIEW做什么,LabVIEW的应用领域很广,前景至少也是很不错的。之前看到一些科技展览会,里面很多都是用LabVIEW编程的。我也看到很多以前用VC,C#,VB,Delphi编程的人,开始学习LabVIEW编程。所以未来使用的人会越来越多。而且目前人们对产品的可靠性,稳定性等要求越来越高,作为测试行业来说,使用LabVIEW是个绝佳的选择。
② LabVIEW编程相对于其他语言的优势在哪里,现在最新版本的Labview可以实现哪些功能?
小草:
LabVIEW的优势:前面已经讲到很多以前用其他语言编程的人,开始转向用LabVIEW编程。为什么呢?他们的答案都是LabVIEW编程快速,做界面方便。很多东西有现成的函数。还有是用的连线方式(数据流)编程比较直观。我想这些优势是一般人可以直观看到的。当然还有后期修改调试方便,移植性好什么的优点,具体的随便百度一下都可以看到。
③ 能否讲解下labview的设计模式,例如生产者和消费者、队列的应用等
小草:
LabVIEW设计模式,如果纯粹一点,基本是LabVIEW的模板自带了。大家在LabVIEW菜单-文件-新建下可以看到如下的几个选项。基本就是是LabVIEW常用的设计模式。
具体的看模板的解释就可以了。
不过总结一点就是,LabVIEW里的编程模式有一种常见的结构叫 状态机,我觉得是个万能的结构,还有很多状态机的拓展。另外,关于队列在LabVIEW使用也很多,有一种叫结构队列状态机。所以学习LabVIEW的人,一定要学好状态机和队列。很多初学者不理解队列,其实只要想想下日常生活中的排队现象就可以了。打个比方,银行办业务,银行上班后,首先我们会上去排队(排队前要知道自己在哪里排队,也就是要存在一个队列,没有就创建队列),然后前面的人办完事后离开队列,银行下班后,就不能排队了。撤销队列。队列用的灵活,在LabVIEW编程中会带来很多方便。
至于应用方面。生产者消费者模型,其实就是用了队列作为缓冲。我们在数据采集,或者仪器通信方面,由于数据量太大或者处理内容太多,我们的计算机CPU单个线程循环没办法即使处理。就多增加几个线程循环。只要自己考虑到一个线程有延迟,或者运行缓慢的,都可以用生产者消费者模型。也都可以用队列。
④ 多个串口传输数据,可能速度(等待接收)不一样,放在一个循环好还是不同的速度各建一个循环好呢?
小草:
串口问题,很多人也在问,我觉得是具体问题具体处理吧。LabVIEW是自动多线程编程。如果串口多,不想相互干扰,还是各自用各自的线程吧。不过一般串口通信都不会很快。特别是做一些状态测试的,对时间要求不高的,不需要同时的,都可以考虑用一个线程就够了。对需要同时并行的,就多个线程吧。
4、电子发烧友:电信类学科分布比较广,当时上学的时候怎么就看中Labview了呢,然后毕业后工作也是与这个相关的呢,怎么一步步走过来能跟大家分享下吗?
小草:
当时本科是测控技术与仪器专业,硕士是控制专业,偶尔用到LabVIEW,当时纯粹凭兴趣学习,一个人自学的。当时也学习了其他语言,比如VC++,C#,VB之类的,连网页编程ASP.NET等也研究过,读书的时候学的比较杂,什么都想学。LabVIEW应该是自学研究中比较成功的。后来有一些公司请我做程序,我就帮忙做了一些,补贴读书时候的生活费,也是不错的,学以致用。
具体学习步骤,就没有那么细了。完全凭兴趣了。当时看了很多LabVIEW的书,然后看LabVIEW的范例,几乎所有的基础范例我都看了并且研究过。也经常上网上的相关LabVIEW论坛逛逛。一路走来,慢慢的自己就会了。总之就是:兴趣+积累。时间长了,自然就会了。
目前工作,也是从事测试方面工作,会用到LabVIEW,当然也会用到其他的一些知识。LabVIEW知识一个编程工具,单单会一个工具是无法胜任工作的,还需要专业知识。
5、电子发烧友:你觉得初学者学习Labview 相对于其他语言C、C++、C#、Java,在学习方法、难度和周期上有没有一些区别?
小草:
LabVIEW的优势前面已经讲了。学习方面,前面也讲过。难度个人觉得LabVIEW最简单的。因为我发现很多LabVIEW使用者,都是业余的,学电子的,或者学机械的。周期看自己的熟练程度。一般如果做一个简单的应用,用LabVIEW从初学到编程实现,应该一个月内就可以弄完。LabVIEW基本上很适合没有编程基础的人去快速开发软件。
但是要深入LabVIEW编程,还是需要很多知识的。比如要学习数据结构啊,学习ActiveX,批处理啊,.NET方面第三方接口等等,有些底层的驱动LabVIEW无法调用,还得自己用C++封装DLL。像数据库等,你得去学习数据库知识。
6、电子发烧友:在Labview编程方面,你个人有没有比较好的习惯和建议?
小草:
习惯,建议大家去看一本书,叫《LabVIEW编程样式》。里面有些好的规则。个人觉得LabVIEW编程习惯最基础的是,连线要直,程序框图要美观。建议就是多看自带的帮助文档,和看自带的范例。这些是LabVIEW最原始的材料,也是最权威的。
7、电子发烧友:你现在和之前的项目都使用Labview做过哪些项目的开发,有没有比较典型又不涉及知识产权的1-2个项目跟大家分享下?
小草:
这个没什么好分享的。LabVIEW做的东西,看具体应用。我觉得大家有时间关注下历届NI组织的LabVIEW天下会,LabVIEW挑战赛,看看里面的参赛选手的代码就足够了。里面晋级的选手很多程序都是很不错的。而且你会发现很多共性。比如都会用到状态机队列等。
8、电子发烧友:用Labview做一些软件开发,在需求分析、开发流程、测试、软件优化、版本方面和软件相关文档撰写方面有没有个人的一些想法?
小草:
这个问题涉及到一门学科,叫软件工程。《LabVIEW编程样式》这本书有介绍。具体和其他的软件编程一样。而且需求分析很重要。有时候你发现后期经常要加功能。如果前期LabVIEW编程结构做的不好,加功能是很头疼的事情。
9、电子发烧友:你之前是准备一口气把“手把手教你学Labview”这个系列完成,包括Labview入门、Labview之串口仪器控制、Labview之数据采集、Labview之图像处理,怎么又中途放弃了呢。(私心的问一句如果咱们这篇采访稿的回帖数超过1000条,小草君有没有把这个系列完成并第一个选择在我们论坛发表的想法?)
小草:
以前上学时候,空闲时间比较多,有大量时间研究一些知识。而且比较热心,也帮助过很多人,也经常无偿给别人修改代码,有时候修改一两天。我也经常在网上发表过一些分享帖子和回复网友问题。不过总体觉得LabVIEW学习的人,求资料的和求代码的人太多了。我的串口教程,放网上后,还是一直有人找我要源程序,求其他资料,其实他们看完我那个PDF教程就够了,有时感觉很心寒。另外,加上现在工作十分繁忙。写其他教程的可能性比较小。不过如果真心有很多人有需求的,我会考虑写的。
10、电子发烧友:我们这次采访,大概接近尾声了,小草君大概还有什么经验、想法跟大家沟通一下的呢?感情、生活、工作都可以,咱们主题不限哈!
小草:
以前刚开始学LabVIEW的时候,也和很多人一样,喜欢加QQ群,看论坛。当时我买了几本LabVIEW的书,加了几个QQ群。后来发现QQ群里问的都是基础知识,每次他们问的时候,我就去翻翻书,然后去回答他们,其实我当时也是刚学,也各种不会。但是我却能回答他们问题。论坛里也是,看到有人问问题,我也会自己翻翻书,自己百度下,然后去帮忙回答。
其实我想说的是,学习是一种态度问题。学习LabVIEW的人,很多态度就不是很好,最常见的是其他专业的,比如农业,化工生物等专业的,就老师让使用,毕业了也就不用了。就随便学学,也不系统看书,有了问题就使劲在论坛和QQ群问。这样是很不科学的。还有些人,甚至都不自己买一本书,到处看电子书,有些还看的比较旧的书籍,而且不会灵活变通,比如LabVIEW有些控件和函数变化了,他们也不去思考,而且到处问某个控件在哪里,某个函数在哪里。还有一些牛人,也是成天炫耀自己多么牛,没见过帮助谁解决什么问题。
很多事情,我们身体力行才知道得来不容易。编程是个力气活,我们需要一点一点的去操作鼠标键盘。一点一点的完成一个项目。
其他方面,感情方面,单身有为青年,有时候可能套一个技术宅的称呼。喜欢研究很多东西,编程方面也不仅限于LabVIEW,其他语言也会涉及,毕竟很多东西是可以相通的。这些都是生活的积累。可以锻炼大脑。
总之,做自己喜欢的事情就好了吧。就算没人回贴或者回复,自己开心就好。
社区之星招募:不限专业领域、不限技术方向,只要你是一个有活力并乐于分享的开发者,只要你愿意把自己的经验收获分享给大家,帮助众多从业者共同学习、共同进步,我们就欢迎你来做客社区之星。
联系方式:陈晨 chenchen@elecfans.com,论坛用户名:zhou2sheng。快来联系小编吧!
往期回顾:
第十八期:社区之星——中兴资深工程师聊Linux的设计与开发
第十七期:社区之星——学霸教你如何考进嵌入式国家实验室
第十六期:社区之星——资深工程师指点:如何走好电路设计之路
第十五期:社区之星——勇于试错,Be Brave
第十四期:社区之星——资深工程师现身:谈谈嵌入式开发的那些年
第十三期:社区之星——酸甜苦辣兼有之,资深工程师谈创业之路
第十二期:社区之星——FPGA资深FAE的经验独白
第十一期:社区之星——特权同学从自学FPGA到权威翻译的这五年
第十期:社区之星——怎样完成从电子工程师菜鸟到研发主管的蜕变
第九期:社区之星——如何成长为资深的嵌入式工程师
第八期:社区之星——持之以恒:FPGA工程师对行业新人的经验分享
第七期:社区之星——天道酬勤:资深FPGA工程师成长故事
第六期:社区之星——“剩”者为王:资深嵌入式工程师的进阶指南
第五期:社区之星——电源技术牛人版主:刘佳文
第四期:社区之星——嵌入式社区达人:王巧玉
第三期:社区之星——ARM技术智多星达人:程志
第二期:社区之星——资深单片机技术牛人:谁才是真正的工程师?
第一期:社区之星——DSP牛人miachael_xing