Saturday, March 13, 2010

Passed the CLD (part 3) - preparations

I passed the CLD exam a couple weeks ago, and I'm writing about that experience.  In part #2 I talked about the courses that NI offers.  Now I want to write about the example problems NI publishes.

NI has plenty of information on their website about their exams - preparation guides, slide shows, and sample exams.  There are three samples: a traffic light, a security system, and a car wash.  These problems have been posted as examples for a while.  I know for a fact that the traffic light problem has been on the NI site since at least 2003.

There are two lessons to draw from that last statement.  First, the problems are older and, in my opinion, not as sophisticated as current test problems.  Second, the solutions are old as well and not very good.  I'm not the only one who thinks this.  Do a search through the comp.lang.labview users group, or LAVA, or even on the NI discussion forums, and you'll see that many others have expressed the same opinion.

Here's what I'm saying: don't limit yourself to the practice exams and the NI-provided solutions.  Look online for the solutions from other people, read through the discussions about the problems, think about how the problem could be made more complicated.  A couple of links to get you started are here, here, here, and here.

=====================

In the course of preparing for the test, I tried to summarize what I learned from the sample exam solutions.  Here's an abbreviated list of what I wrote down as important - your own lists may differ.

  • The top level VI is at least a state machine.  Make sure you have an initialize option, and set up default properties within the initialize state.  Don’t have them sitting outside the loop – that’s messy.
  • Controls & clusters
    • When in doubt, type-define.
    • There are some things (like changing colors) on a strictly type-defined control cluster.  Make it a regular type-defined control instead.
    • For a control reference, use the To more specific class function to cast the reference as a known control.
  • SubVIs
    • Wire errors for all subVIs.  Use a case statement to skip operations if there is an error.
    • Make use of functional globals.
    • Always have an initialize case for functional globals.
    • Some subVIs will be state machines themselves.
  • Timing is an essential part of the CLD exam.  You need to understand how to time operations, pause them (while maintaining the elapsed time), and abort them.
    • If you can, just use the express timer.
    • If you have to create a timer VI, make it a functional global.
      • The main states are Initialize, Start Time, and Get Time.
      • Use the initialize option to set everything to zero
      • The stored items in the VI are the target time, start time, elapsed time, and Time Elapsed?
      • Check the time as the image below: subtract the current time from the start time to see if the difference is greater than the set time.
  • Queues are often used in sequence-type patterns.  Know them well.
    • Adding something to the queue puts it at the end of the line.  To put it at the front of the queue, use the Enqueue element at opposite end function.
      • If you must abort a sequence, place the abort action in the front of the queue.
    • Queue VIs wait until there is something in the queue to act upon.  Use the timeout option if this behavior is unwanted.
    • You can preview the next item in the queue without removing it.

Thursday, March 11, 2010

Passed the CLD (part 2) - preparations

As I mentioned last week, I recently passed the Certified LabVIEW Developer (CLD) exam.  In that post I said that I'd write more about my preparations.  One way I prepared was studying course materials.

There are three courses that NI recommends you take before trying the CLD exam: Core 1, 2 and 3.  In fact, they offer a money back guarantee if you don't pass.  That's a good thing, since the price just for Core 3 is ~$2k.

Note: the courses used to be named LabVIEW Basics (I and II) and LabVIEW Intermediate (I and II).  They were renamed last year to "better align with NI certification program."  Sounds like marketing to me.

Anyway, I said that I studied the course booklets.  I didn't actually take the courses.  Well, I did take a LV basics course, but that was back in 1997.  I borrowed a copy of the Intermediate course books from friends, along with the CDs, and worked through them on my own time.  Most of it was review, but I picked up a few tidbits while studying.  Furthermore, that work helped me focus in on LV in a way that my normal job couldn't.

Alternative: If you want to take the classes but can't afford it (or your company won't pay for it), and you can't get a copy of the books from a friend, then try searching online.  I suspect that somewhere out there someone has published the contents of the courses.  Not that I'm condoning that, since I'm unsure of the legalities.  But it is an option.

===============
I think I'll make three more posts on this subject.  Two of them on preparations for the test, and the third on the test experience itself.

Friday, March 5, 2010

Changed the RSS layouts

Someone pointed out to me that many of the RSS feeds at the bottom of the blog had Invalid Date listings.  I then found out that Science Magazine now requires a (free) membership to view articles.  That's all well and good, but they should change their RSS settings to at least allow the "article publish date" to go through.  Looks like they didn't thoroughly test their software...

Anyway, I changed my feed to Science News, which gives me no invalid results at all.

Thursday, March 4, 2010

Passed the CLD exam (part 1)

Last summer I finally decided to take the CLD exam. Other things interfered, and it took a while to decide when I'd have time to prep for the test and take it. But I finally took it early in February - that's the main reason I didn't post anything on this blog in January.

I just found out I passed. I was pretty sure I did well, but it was nice to get the confirmation. I'm very busy until after the weekend, but I hope to post about the experience in more detail in the next week or so (hence the "part 1" title). In particular, I'll discuss preparations and the actual test experience.


Monday, February 15, 2010

Article on Test Proficiency

While looking up some LabVIEW details I came across this article about skills a test engineer should have. This dovetails nicely with quite a few blogs I've written. It will make you think.

Saturday, February 6, 2010

Geeky humor

So I heard a joke from the CEO of my company yesterday that was told to him by a very rich, well-known engineer. Not to drop names, but he's on the same order as the guy who invented the mouse. They were discussing a startup company that's designing hydrogen fuel-cell technology:

A hydrogen atom walks into a bar, walks up to the bartender and says, "I've lost my electron. Have you seen him?"
The bartender replies, "Nope. Are you sure you lost him?"
Says the hydrogen, "Yes, I'm positive."

That joke was so bad, I came up with two others this morning. They're also bad, so naturally I had to share.

After the hydrogen atom has been at the bar a few minutes he looks at the clock on the wall in surprise. "Is it really that late?"
"Yeah," replies the bartender. "You have to leave already?"
The hydrogen atom nods. "I've gotta split."

And this one:

Before the hydrogen atom leaves the bar he sees an oxygen atom walk in with two blonde bombshells, one on each arm. He groans and says, "Now that's just not fair."
"What isn't?" replies the bartender.
The hydrogen atom points to the three and says, "There should only be one of those blondes per oxide."

I'm sure the job offers for joke writer at SNL will start any minute now.

Thursday, December 31, 2009

Happy New Year

Happy Holidays, and I hope 2010 treats you better than the last. Heck, I hope the next DECADE treats you better than the last.