Friday, June 21, 2013

My CSDA (Certified Software Development Associate) Experience

Software engineering has been a passion of mine since before I knew there were words for it.  Last year I learned that the prestigious IEEE offers certifications in this field, and my ears perked up.

Planning My Attack

I investigated the two different offerings:  CSDA (Certified Software Development Associate) for entry-level developers, and CSDP (Certified Software Development Professional) for experienced ones.  My first impulse was to shoot straight for CSDP.  After all, I have several years of software development experience and recently completed a Masters degree in software engineering in which I was less than one tenth of a grade point away from graduating with distinction.  By IEEE's recommendations, I should be a candidate for CSDP.

However, I decided to go for CSDA first, even though my experience and education should drastically over-qualify me.  My reasons:

  • I teach an undergraduate software engineering course.  If there is any hope of preparing my students for certification, it would be at the CSDA level.  I would need to assess the content firsthand in order to accurately convey the experience and expectations to them.
  • I really want to go for CSDP, and CSDA might offer a somewhat gentler preview of what the exam might be like.
  • Unlike CSDP, the CSDA doesn't expire, so I won't be trying to maintain two similar certifications after I get my CSDP in the future.
  • I have lofty aspirations of someday becoming a presenter for the IEEE Computer Society.  I want both certifications so I'll know how they differ and can accurately answer questions about them.
  • The professional development budget that my employer provides will cover the costs of both certifications, so why not?

My Preparation Process

I started by attending the IEEE Metro Area Workshop session on Software Engineering Essentials.  Then I purchased six months of access to the relevant courses in the IEEE e-learning library.  Immediately I discovered that I was right to go for CSDA first.  Some of the review questions were extremely difficult, even with my education and experience.  Tiny nuances that seem trivial in practice can have the  power to completely shift the focus in a theoretical/hypothetical context.  This was perhaps the greatest lesson I learned through this process.

At the end of my six-month subscription, I scheduled the exam for the first available time slot that fit into my busy schedule.  It was over a month away from that point, so I had some time to keep studying.  I carried my favorite software engineering book (Software Engineering: A Practitioner's Approach by Dr. Roger S. Pressman) with me everywhere I went so I could browse through it every chance I got.  I read the entire SWEBOK guide online, and even read the new drafts as they became available.  I also skimmed relevant message boards to see if anyone was talking about these exams, but very few people were.

Exam Day Arrives!

Finally the scheduled exam day arrived.  I surveyed the battlefield the day before by driving by the testing center to make sure I knew exactly where it was.  That night, I armed for battle by reviewing all of the SWEBOK knowledge areas as well as the engineering, math, and computing foundations.  Then I tried unsuccessfully to get a restful sleep so my mind would be sharp the next day.

Two things I love: Java and Mountain Dew
That morning (actually this morning), I awoke long before my alarm sounded.  I put on my Java polo shirt as a motivational reminder of the last certification I conquered.  After a delicious, energizing breakfast of peanut butter and grape jam, I popped some vitamins, downed a Dew, and headed to the testing center.

The check-in procedure was quick and simple.  I just had to sign a few things and empty my pockets into a secure storage locker.  You are not allowed to carry anything into the testing room that could be used to record or copy the questions, or to cheat by looking things up.  I carried only my driver's license and the key to the storage locker.  I was allowed to borrow a marker and a wet-erase sheet which I only ended up using on one question -- to diagram a cyclomatic complexity problem.

Most of the questions were surprisingly straightforward.  I was very glad that I had taken the prep course because some of them involved those tiny details that seem insignificant unless you really understand the intentions of software engineering processes, methods, and techniques.  There were a few on which I had to venture an educated guess based on various assumptions.  But there were two that really got under my skin.

Two Irritating Questions

I had to agree with an NDA that prevents me from repeating the questions here, so I'll summarize in a nondescript way the two questions that angered me.  One question showed a class diagram depicting an inheritance hierarchy using a mix of concrete and abstract classes, then asked which of four statements was true for the diagram.  However, all four options were technically false.  I was able to make a reasonable assumption by granting some semantic leniency, but doing so led to two valid answers based on that rationale.

The other objectionable question was even worse than that.  It was a Boolean logic notation question that gave a compound statement, assigned letters A, B, and C to its three elements, and then asked which expression was equivalent to the original statement.  The question was very simple and I could have answered it easily were it not multiple choice.  The problem is that answer A was identical to answer B and it was wrong.  Answer C was identical to answer D, and again, wrong.  So there were no right answers, and the answer choices were all duplicates of each other.

Victory!

The score report printed at the front reception desk.  Aside from my name, address, and other identifying information, it simply said this:
We are pleased to inform you that you have achieved a scaled score of 170 or higher and have thus passed the CSDA examination.
It would have been nice to know how I performed in the various knowledge areas, particularly on those with faulty questions, but overall I'm just relieved to have this challenge behind me.

On to the next!

No comments:

Post a Comment