Last week’s post focused on the three foundation components that, in my view, are needed for anyone looking at taking on the wonderful path of software programming. This week’s post will focus more specifically in LabVIEW training, from the perspective of someone who would start the LabVIEW learning curve from the absolute beginning.
I very often get inquires on the best methodology to learn LabVIEW from the ground up. LabVIEW is a programming language; like any other programming language out there, such as .NET and Java, to cite just a couple. The differences between text based languages are most often in the syntax only, whereas the difference between LabVIEW and text based programming languages is a little deeper, in its paradigm. LabVIEW follows the dataflow paradigm whereas text based languages follow a more sequential one. In despite of this deeper difference, LabVIEW is indeed a programming language.
I will quote a friend of mine when asked about how to learn a programming language. He says: “Learning a programming language is much like learning an actual language such as English or Mandarin. One starts by focusing on the most basic stuff like how to order a beer in a bar and ask for the bathroom in order to survive. As the person gets to practice the language, over time, more complex sentences can be formed, and if the interest is there, this person ends up mastering the language after time and constant practice.”
This is absolute genius. A programming language is indeed just like a language. A programming language needs to follow specific rules in order for the computer compiler to understand it and translate it into cohesive and executable ones and zeros. Much the same way, a spoken language also needs to follow rules in order for the information being passed by the speaker to be properly compiled into a cohesive message.
It is common knowledge that the best way for one to learn a language is total immersion in the culture that language is spoken. The main reason for that though is that it forces the person to actually practice the language through real life situations. This is basically what I suggest to people looking into starting on LabVIEW. Get LabVIEW immersion.
Some people believe the best way to shorten the learning curve in LabVIEW is to take teacher-led courses. I for one don’t think this to be the best path. Teacher led courses will give you a tremendous amount of information, at a high level, on lots of different features and capabilities of the tool. By the time that first week of training ends (and trust me, there are several weeks of structured training available for purchase), the student is probably half brain dead by drinking out of the fire hose of information for a week. He already probably already forgot topics that were covered in the first day of training.
My suggestion is quite the opposite of that approach. If you are a total newbie on LabVIEW, spend about a day learning the most basic stuff such as the dataflow paradigm itself, the connection between front panel objects and their block diagram terminals, how to create a simple A + B = C that works inside a while loop until the user presses a stop button on the front panel that stops the program. Experiment with these simple concepts for the day until you are comfortable with the LabVIEW project environment, the concept of subVIs (subroutines in the text based programming world) and how to call them from top level VIs. There is plenty of free material about those simple concepts at www.ni.com/labview.
At this point, stop with the theory, and look at what a state machine is and how it is implemented in LabVIEW. This link shows a great starting point which is a LabVIEW implementation of a state machine published by a neighbor consulting firm that focuses in LabVIEW projects.
Once you are convinced that you understand how to use this state machine, go live in LabVIEW country by implementing a real life project with it. It doesn’t need to be a rocket that will land in Mars, it can be something simple, but with real life connotation and applicability. This will be the equivalent of immersing yourself in the culture of a foreign language. It will probably be enough only to get you to order a beer and ask for the bathroom in LabVIEW at first, but will shorten the time for you to become proficient with it if you keep practicing it through other more involving real life projects.