Just about every LabVIEW user would agree the software was ground breaking when it first released, and it continues to improve with every new release. Most of us early adopters disregarded whether the established computer folks thought LabVIEW was a "real" programming language. As we leaped into the realm of data flow programming, we quickly realized that we were solving "real" problems in a fraction of the time and effort spent by our counterparts. In addition, we were having fun solving new problems by expressing our creativity inventing new data flow methodologies and design patterns.
Therefore, it is no surprise that a group of people sharing this common bond of excitement, enthusiasm, and appreciation for LabVIEW would form a tight-knit user community, unlike most others. Today we can draw from and contribute to a wonderful set of community resources. In my own experience with LabVIEW, I have enjoyed participating in many aspects of the community, meeting very talented and inspiring individuals who share the almost universal passion for LabVIEW. The LabVIEW community has been invaluable to me over the years, so I want to share with others some of the ways that I have found to be involved.
2. Getting Involved
Find a LabVIEW Buddy -- This is where community begins -- two people discussing a topic they love. The age old saying that two heads are better than one certainly applies to LabVIEW. It is much less embarrassing to ask a simple question to your LabVIEW buddy than to send it to an e-mail list or news group with several thousands of subscribers. When you get an interesting idea for a new VI or discover a cool LabVIEW trick, send it to your buddy for comments. It is a lot of fun. If you are lucky, you will find a LabVIEW buddy who can carpool with you to LabVIEW user group meetings and hang out with you at NIWeek. If you cannot find a LabVIEW buddy, go to a LabVIEW user group meeting and find one.
Subscribe to LabVIEW E-Mail Lists -- Participate in the e-mail lists, news groups, and discussion forums. The first place beginners should get involved is in the National Instruments Developer Exchange. The LabVIEW General Discussion Forum is a front-end to the LabVIEW news group. With a news reader client, you can access this news group directly from the National Instruments nntp server (newsgroups.ni.com). You can start by asking questions and reading interesting discussion threads. If someone asks a question even remotely related to something that you are doing, read it. Soon you will be able to answer other people's questions. This is a great way to learn. I have often learned some very useful new information when trying to help people solve their technical problems. Recently NI has added the LabVIEW Zone which presents coding challenges, discussion forums, and links to LabVIEW user groups and resources. Since this is a new site, I expect the breadth and quality of content will grow -- so stay tuned.
Subscribe to LabVIEW Technical Resource -- LabVIEW Technical Resource (LTR) is a quarterly journal for LabVIEW users and developers. It is not free, but it is worth the price. I eagerly await every issue of LTR, just to see what clever new trick I can learn. The back issues are also extremely useful because you can watch LabVIEW design patterns evolve over the years and see the first queue, state machine, message handling, and error handling architectures and how they have gradually improved. LTR is very interested in helping the LabVIEW community, and it has recently been posting meeting highlights of the advanced LabVIEW user group, LAVA, in hopes of encouraging others to start similar user groups in their area.
Attend User Group Meetings -- At local National Instruments sponsored LabVIEW user group meetings, you can often hear presentations and product demonstrations given by NI staff, as well as more advanced LabVIEW users on very interesting topics.
Find a LabVIEW Mentor -- Initialize your shift-register grasshopper -- a LabVIEW mentor is hard to come by, but can be a valuable asset. Try to find someone that is willing to let you buy them a beverage of their choice in exchange for some wire-working wisdom. Bad habits are hard to break -- a LabVIEW mentor can help you develop good habits from the start to help you hurdle the initial obstacles that stand between you and the next level in the hierarchy of LabVIEW enlightenment. Try to spend some time looking over the shoulder of your mentor as they code - you will learn a slue of time-saving techniques that they do not teach in any course.
3. Continuing Involvement
Subscribe to Info-LabVIEW -- Subscribe to the Info-LabVIEW mailing list. You can visit Info-LabVIEW.org for information on how to sign up for the list. I would start by reading the mailings. Over the years, this list has preserved a very good "signal to noise ratio" and most of the postings prove to be useful and informative. To be certain that it stays that way, please make sure you have useful information when responding to questions. People commonly search these archives for answers to questions prior to posting, and it gets difficult to find things if the noise floor gets too high. The people on the list are very nice and extremely helpful, but I have seen a flame or two thrown for inappropriate use of the list.
Submit an Article to LTR -- Writing a well-thought article is a very educational experience. Choosing a topic and exploring all of its nuances will help you understand LabVIEW to a greater depth. Additionally, it is a way of helping evolve the collective understanding of LabVIEW and the design patterns others can use to implement challenging solutions. If you have a LabVIEW buddy, then consider co-authoring the article with them. This will improve the quality of the article and make it a much more enjoyable experience. Visit LTR's contribute page for more info.
Go to Advanced User Group Meetings -- In some areas, there are Advanced LabVIEW user group meetings. The topics cater to long-time users of LabVIEW. A couple of years ago, an advanced user group called LAVA formed in the San Francisco Bay Area, and recently similar groups have formed in Southern California and Ontario Canada. Others are on the way. If there is not an advanced user group in your area, consider starting one. It does not take more than five or six people to get a lively discussion going.
Give a Presentation at a Local User Group Meeting -- Maybe you are thinking about writing an article for LTR and you want to test the content on a group of your peers, or you just have some cool reusable code that you want to show off. Give a presentation at a user group meeting and share your knowledge with others. When possible, leave a portion of time open for discussion about ways to improve a design or solve a problem. This sort of exchange usually produces some great ideas. Talk to the National Instruments sales people in your area for more information.
Go to NIWeek -- I cannot think of a better way to spend a week in August, than hanging out in Austin with a LabVIEW buddy or two at NIWeek. I always enjoy the keynotes and the presentation sessions, but the really exciting stuff happens on the expo floor. I like to walk around and talk to people about what they are working on and new things happening in the LabVIEW community. The San Francisco Bay Area LAVA group had a booth last year, and there were some extremely interesting discussions taking place in the vicinity. Members of the NI LabVIEW development team would occasionally stop by and participate in these discussions. Also, National Instruments invites people to submit NIWeek presentation proposals and virtual instrumentation applications papers. These are great ways to support this annual international LabVIEW community event.
Beta Test Upcoming LabVIEW Releases -- The LabVIEW development team tries hard to deliver useful new features that work flawlessly. However, a team of hard-working beta testers providing useful feedback and reporting bugs is necessary to ensure that the released product is of the quality that we have come to expect. By participating in the LabVIEW beta programs and providing feedback to developers, there is a tremendous opportunity to influence the evolution of LabVIEW, as well as get a sneak peak at new features and the direction of LabVIEW. Visit the NI Beta Program Resource Center for information on how to apply.
Open Source LabVIEW -- Open source software is licensed software that allows people free access to the source code. There are a variety of open source licenses - too many to describe here. For the most part, they allow redistribution and modification as long as you give others the same rights to your derivative works as the original authors gave you. In the past couple of years, open source LabVIEW development has grown. Several projects have sprung up and a community of users has formed. OpenG.org provides a project registration service, open source information, and a discussion forum for open source LabVIEW developers and users. Open Source LabVIEW is pure community in action. People from across the globe are collaborating on projects that help other LabVIEW developers solve problems faster and simpler.
The easiest way to contribute to Open Source LabVIEW projects is to download the code and use it in a project. You can give feedback to the developers on ways to improve the project or send bug fixes and improvements to the project developers. If you have a good idea for a project that you want to share with the world, start an Open Source project. SourceForge.net provides free project hosting services for Open Source projects, and OpenG.org provides a project registry service, so you can tell other LabVIEW developers about your project. It is much easier to tackle such a project if you have help, so make sure you sign your LabVIEW buddy up as well.
Mentor LabVIEW Beginners -- Give a person some LabVIEW code and he or she will automate for a day. Teach a person to code LabVIEW and he or she will automate for life. LabVIEW is a fun, powerful tool and empowering others is wonderful gift. I cannot think of anything better than exposing others to something that can provide them with such opportunities and enjoyment. Take the time to answer LabVIEW questions and be generous with your advice. Data flow can create some conceptual hurdles for some beginners, and the ability to organize large application architectures is not innate. Guidance can help people learn the important lessons without wasting time re-inventing the wheel.
I would have to say that the reason people contribute is because they get more out of it than they put in it is an investment in themselves and others. However, like any investment you really have to contribute to get anything back. The LabVIEW community provides support, networking opportunities, education, and the opportunity to affect the direction of LabVIEW itself, but it takes the involvement of many individuals to make a community.
I had a discussion with a good friend and top-notch LabVIEW programmer, about contributing to the LabVIEW community and the open sharing of ideas. He described this positive philosophy as "growing the pie." If there is a finite amount of opportunity (pie) for LabVIEW programmers, then instead of competing against each other, we should be working together to expand the market (growing the pie). By having a better set of tools, being more educated, and better able to support our systems, we can move into new markets where LabVIEW has not traditionally been used, such as large applications, embedded systems, real-time control, distributed systems, you name it (more pie for everyone). Certainly there are huge markets where LabVIEW is ready to penetrate, and even more opportunities will surface as LabVIEW and its community evolves. Together, through community and the sharing of ideas and experiences, we will continue to make LabVIEW and ourselves capable of solving new and exciting technical challenges, and we will continue to have more fun along the way.