I'm a sad, frustrated programmer working in a world-wide known electronics company. I'm a bit confused and stressed about the situation that our company is forcing on programmers like me.

Year ago, we were asked to take an internal "Software Certificate" test. It was supposed to be only used for our own assessment of ourselves and nothing more. However, later it turned out that only a very few people passed and the upper management was very unhappy about it. So, this year, we are required to take the "Software Certificate" test again, and an e-mail that was sent a few weeks ago said that "every engineer working at XYZ is required to pass this certificate test".

The "Software Certificate" test consists of three programming tasks, very similar to the ones available in programming contests like CodeChef and SPOJ. Unfortunately for me, I've never been good at tasks like these, especially since they usually don't have anything to do with the fields that I do the programming in. Obviously, daily tasks at work don't involve matters found in "contest" programming either.

All my performance reviews so far have been positive. I also think I am skilled for the job that I'm actually doing, since people often come to me for advice.

I've never witnessed a company wanting to "certify" its own programmers just for the hell of it, using metrics clearly not having much to do with the actual work performance. So my question is : is it normal for companies to expect something like this from their employees? Or have I stumbled upon a very specific situation here? Also, what shall I do if I don't pass the certificate and the management will want to fire me?


It is completely common that companies will require employees to maintain certifications or proficiency levels at various tasks. It's a little uncommon for software companies to do this, but it's not unheard of. The company you work for has probably had a lot of feedback in the software area and determined that some kind of litmus test was necessary to ensure the workforce is suitably proficient. Unfortunately for you, you were not on the committee that determined what "proficiency" means within your company.

Insurance companies, banks, clinics, welding shops ... they all have to maintain some kind of continuing proficiency certification in order to prove they can still do the job. Why should software be any different?

There is one caveat I would think. If this new certification is going to be a requirement for continued employment, then it is the company's responsibility to ensure that an appropriate curriculum of training is available to assist employees in making sure they are prepared to pass the certification test as it is given. Handing someone a random test and assuming everyone has the skills necessary to pass the test is a little unrealistic.

In most software production environments, code reviews are a consistent means of ensuring that employees continue to grow and perform. However, in large corporate environments, code reviews may become difficult to perform simply because of the amount of code or diversity of projects involved. To that end though, anyone who refers to themselves as a programmer should be equally willing to withstand a code review or take a trivial test.

One final note, and this will sound offensive. Please take it for what it's worth as it comes from the viewpoint of someone who would be requiring this test of you or perhaps an interviewer looking to appraise your ability for your next opportunity.

Unfortunately for me, I've never been good at tasks like these

As an employer or interviewer, I don't care. When I walk up to an employee's desk with a problem or a task, I expect resolution not excuses (and that's exactly what that line is). Most of these tests are trivial, but they generally point to the nature of the skills required. These tests are all over the software industry, but they're usually applied at the interview level or the transfer consideration level. They're not going away, and if you're not confident you can take them, then you should practice them.

  • I will say I personally am a bit happy these tests are becoming more common. Not because I want to see employees stress, lose their jobs, etc. Rather use of these tests in interviews would greatly mitigate the number of people who manage to slip into roles they are incapable of filling. Personally I would love to see companies drop the "you need XX years exp" in favor of a decent test to demonstrate skills. – Eric J Fisher Jul 16 '14 at 19:37
  • 1
    I personally have not seen these requirements in the software space. Competent organizations seem to largely understand that these kind of 'certifications' are mostly just scams that generate some extra revenue for the companies behind the certifying. The only exception I've noted is that sometimes a large company (think Apple, IBM, etc.) will offer affiliate programs/partnerships and require as part of their terms that the affiliate organization certify at least 'x' employees on technology 'y'. So you can't be an IBM affiliate without paying for IBM certs first. Works well for IBM. – aroth Jul 17 '14 at 2:25
  • The comment about training earned you a +1. With so many people failing the first go-around, that to me is a reflection of management and not the workforce. – It'sPete Jul 17 '14 at 23:35

Normal or not, this is what your company wants you to do. You have three choices; push back on the managers, asking why it's required; Bite the bullet and do the tests; or look for another job.

If you decide to do the tests, make sure you have all the learning materials required, so you can review.

From the company's viewpoint (I've worked for companies, and owned companies), they have x programmers. y programmers have already passed the test, and z programmers are working towards the test. If x = y + z + 1, and you're that one, then when staff reductions come about, they'll make that equation balance by removing all programmers who haven't passed the test. And it'll be completely legal.


The company I work for has a basic competency test for Office applications. It does not disqualify anyone but it rolls up into the final consideration. I hope it would be similar to that.

A year ago when you were asked to take it how did you do? If you did poorly I would assume there would be a section that gave you areas to improve. Do that, quickly. If you didn't take it, I would try to take it in advance to get that feedback.

Odds are you're going to be fine, if you're a respected developer right now you've got the fundamentals. You just need to relax and do what you know how to do. Maybe it wouldn't hurt to spend some time on CodeChef, ProjectEuler, SPOJ or any programming practice site to make sure you're ok or at least familiarize yourself with that style of problem. Check out FizzBuzz

There is a whole other discussion to be had on the effectiveness of such a thing. I see the point, but it's a bit heavy handed. Especially if you've got competent developers already working on staff.

Not the answer you're looking for? Browse other questions tagged .