Why companies fail to hire good talent

December 27, 2014 at 6:56 pm | Posted in Programming | 1 Comment
Tags: , , , , ,

Recently Net Cloud Systems, Bangalore (INDIA) approached me for interview. They needed someone specialized in C and UNIX and since my last 5 years of industrial experience is full of C, Linux and UNIX, they must have thought I could be a good fit for the company. Gosh! how wrong they were.

I had to appear for an online test to get recruited. Unfortunately, I did not get any call from them after the test, so I got the point that I did not clear the test. That is fine by me, sometimes you win, sometimes you lose. As a computer programmer, as 24×7 coder, I have learned 2 things: 1st, it is always good to accept your own failures and move on with life by improving upon your skills. 2nd thing is the essence of this blogpost.

Net Cloud Systems had few questions as part of C programming test which actually did not belong to C language. IIRC, there were 2 or more questions not related to C language but they were put in the C test. I wrote an email to them, explained what was wrong and how could they correct the mistake and very politely I said it give would be fair if they could provide 2 marks for those questions. I got a very furious and arrogant reply in return. Down here is the full transcript of the conversation with them:

arnuld uttre 	Tue, Dec 23, 2014 at 7:18 PM
To: hr-necs@netcloudsystems.com
Dear Sirs,

Recently I gave online C test as a part of the selection process by
Net Cloud Systems. I did not get any call after that which means I did not clear the test and company is not interested in hiring me but that is not the subject of this email. This email is about incorrect
questions in the C language test. I wrote one mail earlier about the
same issue (to hr-exec@netcloudsystems.com) but no one replied. Hence you are receiving this email. Here is the technical issue:

I was given 20 questions in C language and only 18 belonged to C
language, other 2 were not. C language is defined by ISO committee and this committee publishes the definition of the C language. You can find the official-draft of the standard online here provided by ISO committee at their site:

http://www.open-std.org/jtc1/sc22/wg14/

According to the definition of C language, C language does not have
any function named gcvt(). gcvt() was asked in one of the two
questions. Perhaps, gcvt() is some compiler-extension know to the
person who created the test but that does not come under C language. And there are more than a bunch of excellent high-quality compilers, you can write same C language conforming code in all of them but different programmers use different compilers and that has nothing to do with C language itself but the C language test provided by you seems to confuse between the compiler and the language. Like I said, I skipped over theses 2 questions. I think examiner should have given me marks for these 2 questions, else it would be unfair. I am attaching the PDF of the latest standard for your technical team to look at themselves.

Now it is not just about me, it is about all the programmers and developers who appear in interviews of Net Cloud Systems,
it will be same way unfair to all of them, not to mention lack of
knowledge on your part. I hope you will look into it. Thanks for
reading my email.

 Arnuld Uttre


HR-NECS Wed, Dec 24, 2014 at 10:39 AM
To: arnuld uttre
Hi Arnuld,

First of all I would like to say that you could not clear the test.

Their is no mistake in the questions, one should have good and depth knowledge on C and Linux platform only then they can answer the questions.

Please correct your facts first and raise a question. The question that you got in the online test were not repaired by some freshers or 1-2 years of exp person. So for you knowledge please go through some links below and a attachment. These type of question in our company are answered by freshers or 1-2 yrs of exp employee.

http://sydney.edu.au/engineering/it/~kev/pp/RESOURCES/cplusplus/ref/cstdlib/gcvt.html

Go to root terminal and type: “man gcvt”

Their are many things that keep coming in C language. It is very vast subject. People who have 10-12 years of exp only on C and Linux platform rate themselves 3.5/5 on C programming. How much would you rate your self ?

Hope you got your answers.
Thank you for reading my mail and thank you for your mail.

Regards,
[NAME OF HR HIDDEN]
HR-NECS


wrote:
> Hi Arnuld,
>
> First of all I would like to say that you could not clear the test.
>
> Their is no mistake in the questions, one should have good and depth
> knowledge on C and Linux platform only then they can answer the questions.
> Please correct your facts first and raise a question.

Oh my dear Vikas….

First of all I did not mean “no disrespect”, I am just trying to tell
you something which is “not correct” about your test but it seems like you are ready to burn me alive. Please do not let your ego come in between you and the learning. You can either read my email and do the search yourself or just simply can get angry and call me a dog:

I got the facts correctly, down here is the proof :

http://sydney.edu.au/engineering/it/~kev/pp/RESOURCES/cplusplus/ref/cstdlib/gcvt.html

You sent me this link. Did you even read that page yourself ? It
says gcvt() is not part of ANSI C:

Portability.
Not defined in ANSI-C, but included in some compilers.

You see the link you sent me itself says, it is not part of C language
but “some compilers” have it and that is what I wrote in my last
email. Hope you trust Microsoft Corporation when it says, gcvt() is
not in C language:

http://msdn.microsoft.com/en-us/library/ms235405.aspx

Here is the code from the same page and output from an ANSI/ISO
conforming C compiler:

[arnuld@arch64 c $] cat gcvt.c
/* gcvt example */
#include
#include

int main (void)
{
char buffer [20];
gcvt (1365.249,6,buffer);
puts (buffer);
gcvt (1365.249,3,buffer);
puts (buffer);
return 0;
}

[arnuld@arch64 c $] gcc -ansi -pedantic -Wall -Wextra gcvt.c -lm
gcvt.c: In function ‘main’:
gcvt.c:8:3: warning: implicit declaration of function ‘gcvt’
[-Wimplicit-function-declaration]
gcvt (1365.249,6,buffer);
^

[arnuld@arch64 c $] gcc -ansi -pedantic -Wall -Wextra gcvt.c
gcvt.c: In function ‘main’:
gcvt.c:8:3: warning: implicit declaration of function ‘gcvt’
[-Wimplicit-function-declaration]
gcvt (1365.249,6,buffer);
^
[arnuld@arch64 c $]

> Go to root terminal and type: “man gcvt”

I did dear before you even sent a reply, and it says “LEGACY function, removed. Please use sprintpf() instead”. It was a POSIX function, it IS not a POSIX or C function, it WAS a POSIX fumction and It has been removed back in 2008, just like K&R C is deprecated where we never use to include any information about function arguments.

> Their are many things that keep coming in C language. It is very vast
> subject. People who have 10-12 years of exp only on C and Linux platform
> rate themselves 3.5/5 on C programming. How much would you rate your self ?

I leave that rating factor upto you now since you can figure it
yourself whether gcvt() is a part of C language or not. You told me
explicitly that test was not created by some freshers. I can agree to
that because in 5 years I have met only 2 programmers who really knew C language and they were not much experienced but very good at C and programming in general, better than me. Majority of the software engineers in India, with many years of experience, do not know much about basics of C because they learned from college and college books are just the worse part of the story of C learning. Most never learned C after college because C is not of much help in
employability. It ain’t their fault, it is the Indian education system
and the industry requirements.

You took it personal than keeping an open mind to understand the
difference between a language, compiler and the environment in which both language and compiler exist.

> Hope you got your answers.

I hope you got yours. I already had this answered from students of
Late Dennis M Ritchie. draft of ISO Standard is attached with this
email just like my earlier email, please do read it. Thanks for your
time.

P.S. Software is not just about coding, it is about understanding
people first, almost half of good habits/practices of software
development/engineering are built on understanding people. Listen to Google I/0 2009 talk on The Myth of Genius Programmer. May God bless you

Arnuld


HR-NECS Wed, Dec 24, 2014 at 12:59 PM
To: arnuld uttre
Hi,

Lets not take this further.

Thank you for the mail and the valuable information.

Thanks and Regards,
[NAME OF HR HIDDEN]

Well I did exaggerate a bit that I got answer from Late Great Dennis Ritchie‘s students 😉 . Personally, I don’t  know any of Ritchie’s students. I sure as hell learned good amount of programming from great programmers including those who have worked with Dennis Ritchie. I would not have become good at C without their mentoring. One day after this happened, I watched “the myth of genius programmer” talk given in Google I/O 2009 by 2 Google developers: Brian Fitzpatrick and Ben Collins-Sussman. They have talked one very important thing related to the great programmers around the world. They talk about how much important it is be humble, flexible and devoid of ego to become a great (or genius as they call it) programmer. How much it is important to respect your peers and their advice and suggestions when they just walk through your code. It is called peer-review and it is one of the pillars of GNU, Linux, BSD and all Open-Source software communities and they mentioned explicitly in their talk that peer-review happens in google all the time. peer-review is one of the greatest strengths behind the better quality of Open-Source software compared to proprietary software. I never had big ego, on the contrary I have always seen myself as a kind of small and short being and I have listened to knowledgeable programmers half my age. In WIPRO I was on the ODC of MasterCard and I learned more qualities there, I learned being humble, soft and and became more flexible. Not only my teammates but my team manager and project manager were great people too and I think I worked with one of the best people in my professional experience.

Completely opposite to WIPRO, do you see the ego coming out of the email from Net Cloud Systems HRD, and dancing in front of your face. Rather than looking for the facts, this HR person totally closed his mind to new information, the information which could have corrected not only their test questions but could have saved them from future embarrassment from some talented programmer. Arrogance instead of improvement. With this kind of mindset, no company can hire good talent. If a company can not understand that a programmer who knows about the cons-correctness, why int main(void) is better than void main(), is better than an ordinary programmer then you should never work for such company. I thank God I did not clear the test and they did not give me those marks I asked. Otherwise, if they have this much of attitude before hiring I wonder what would happen after one joins the company and gives some different but creative programming idea to solve some serious software problem. A good and talented programmer can not stop the flow of creativity, he would suffocate and die a slow death at a workplace where his ideas are suppressed. In 5 years, I have heard of some companies like this, companies who pay much less amount of money to programmers (freshers mostly) and kill their creative mind by bureaucracy but I never had personal experience with them, now I do. I watched Google I/O talk just next day. I thought it was just a co-incidence but now I think, it was God’s guiding hand telling me to apply for better companies, to look for places where problems are solved with different ideas than egos and where creativity flourishes. You should watch Google Talk, Brian and Ben gave a great talk, it is available at youtube. Programming is about passion and interest. Don’t work for those who can not grasp this, if you want to be a happy-coder.

The Myth of genius Programmer

Copyright © 2014 Arnuld Uttre, Hyderabd, Telangana – 500017 (INDIA)
Licensed Under Creative Commons Attribution-NoDerivs 3.0 license (a.k.a. CC BY-ND)

Create a free website or blog at WordPress.com.
Entries and comments feeds.