Not only will I be covering a specific software later in this post, but I would first like to elaborate on different ways software knowledge is obtained.
PART I – Learning
If you read my post from several weeks ago, I compared Autodesk Inventor to Solidworks. My knowledge in both came from two different sources. One I had learned in a classroom setting and the other I had learned while in the field without formal education. These were two totally different ways to learn and implement each software package and I found that each situation offered its own unique advantages.
In undergrad, my learning of Solidworks was structured and the course I attended advanced in a well thought out progression moving from rudimentary concepts at the beginning to more complex projects at the end of the term. Such structure provided me with:
- A group learning environment in which I could ask my peers questions or obtain immediate feedback.
- Ability to develop my skills in a low pressure environment.
- An instructor who was already an expert in the software.
In contrast, when learning Inventor while at work, I was often put in a “sink or swim” position. I either had to self-teach the software to myself when given a project or fail at the task assigned to me. I did not have any peers to fall back on nor did I have an expert I could readily seek help from. What did end up happening though was this:
- I learned the software thoroughly through my independent struggle.
- I delved deeper and explored more broadly because there was no structure.
- The pressure of being paid to preform forced me to cultivate self-discipline.
- Improved how I learned and focused in the classroom by understanding myself and how I master information.
However, both scenarios have their disadvantages. In the classroom, the real world element is often stripped away. Furthermore, the classroom lacks an emphasis on critical thinking and problem solving (skills that are invaluable to an engineer). Classroom learning acts as a ping-pong match where the instructor serves up an assignment only to have it volleyed back by the student during which exchange points are tracked. Such a learning style does not allow learners to develop deeper levels of understanding nor think critically.
Conversely, self-training can often lead to vast amounts of wasted time learning a topic if not provided the right sort of guidance. One also needs to maintain a great deal of internal discipline to continue learning and there is no instructor to detect your mistakes quickly which can often lead to frustration and going in circles, especially with software.
Personally, I prefer to self-teach myself any type of software. Without instruction, I am often left to figure out how it works and more importantly, how it does not work. I believe there is something to be gained from sitting in front of the software and clicking away without direction or purpose just to see how it works because I think this leads to more discovery.
After all, it is up to you as an individual to evaluate the best way they learn. One suggestion I do have is to at least try both ways discussed in this post or do both simultaneously as I will elaborate on further in Part II.
PART II – LabVIEW
One software that I had the unique privilege to learn both in the classroom and then on the job is National Instruments LabVIEW software. Given the opportunity to learn the software in both settings in back to back semesters, I was able to experience the advantages of a classroom education and the self-teaching mentality.
The classroom provided me with a basic understanding of the software’s functionality and application while using it in the field provided me with the real world experience that is often lacking in the classroom.
LabVIEW it in itself is a unique software. Unlike programming languages such as Python or C, which are textual programming languages, LabVIEW is a visual programming language. In such an interface, the user creates programs by manipulating program elements graphically rather than specifying an element with text. See below for a screenshot of a visual programming language.
The primary use of LabVIEW is data acquisition and instrument control. For instance, the company I am employed by sells mechanical testing and the results of the testing are generated by LabVIEW software. Being that I worked in the laboratory and was the only one at the company that knew how to use the software, I would spend a lot of my time interacting and manipulating our LabVIEW modules for our lab technicians and customers.
PROS of LabVIEW
Because I spent so much time interfacing with LabVIEW there are a wealth of advantages that I found useful compared to other data acquisition software. The first being that LabVIEW integrates seamlessly to other devices. For example, when my company needed to buy a new pressure transducer for data acquisition, all that had to be done was plug it into the existing system and recalibrate the system. Seems to be good to be true, but LabVIEW included extensive support for interfacing to devices, instruments, and other devices.
Another advantage in using LabVIEW is that it is very easy to program multiple tasks that are performed in parallel because the language is concurrent. This is an invaluable benefit anytime one is recording multiple sets of data at the same time.
The ease of which you can learn the language is relatively simple as well. On National Instruments website they offer free tutorials and a free educational version of their software for novices. Furthermore, because LabVIEW has been in existence since the 1980’s, there is a large community of users and online forums to help you learn.
CONS of LabVIEW
Some criticisms I have about the software is its performance. LabVIEW tends to produce applications that are much slower than textual coded languages such as Python or C. Additionally, compiled executables are not truly standalone and require the LabVIEW run-time engine to be installed on any target computer which runs the application. The engine also needs to be installed by an administrator and properly authorized, an inconvenience if you work for a company without proper IT support.
Overall, LabVIEW is a great software especially if you want to go into manufacturing/automation controls or a testing position as an engineer. In fact, you will probably be required to know the software before you even get hired. Regardless, it is an easy software to learn and if you have the time, download the educational version of the software and click away!