Reasons Why Even I Would Still Fail An Interview

Even today, I get a lot of questions about how to go for an interview, or how to prepare for an interview in a company that has a good standard or a good reputation in the market. The question is a bit ironic because I myself can never pass an interview for a couple of reasons and I will try to trim them all down in this post, and will share why I believe in myself when accepting the rejection from the HR of that particular company. This post is also somewhat targetted directly, toward the HR or hiring teams; please, be soft on us.

But typically, first of all, let me give you an idea of when it is the right time to apply for a job interview at any company.

  1. When they are looking for  talent. On average days, they don't even bat an eye at the applications. That is the most painful time for anyone, to know that you need them, but why do they should need you? :-) However, they do keep your profile. 
  2. When you are the only option they might have. Be the best, or be none in that field. 
  3. When you just want to learn more about the hiring process; but do not expect a positive response in this case.  
The rest of the time, the chances are they will just ask you to come back later, or wait until they have some opportunities and they will call you once they think you are a good fit (which ultimately, takes you back to the 2nd point in the list above). It's the same when you inquire about opportunities as juniors, testers, and internships. To an extent, I do not believe in internships, if you are aware of what you are doing then there is no reason that you should apply as an intern. Go straight up and be their employee. I remember, there was a guy on LinkedIn, who asked me about a suggestion, and somehow the "internship" word popped out of my mouth and he hated my suggestion, if you are reading this, that was not what I meant... Sadly, he blocked me half way and our conversation never evolved.
 
 
 
Anyway, let me now tell you the reasons why I think that even a person who is a three time C# Corner MVP, two time CodeProject MVP and also a one time Microsoft MVP, fails a simple interview, or programming test to be accepted as an employee.

Biased questions—irrelevant to real world programming 
 
The first major problem that happens is the way we are asked questions that have nothing to do with real world programming, or the concepts of programming, but just the way they are trying to induce us to think the way they do! Which in most casesnever helps either the party. You all might have known, that a certification test, let's say of Microsoft, changes everytime, and there is no typical guarantee as to which of the questions or problems might you face in the next exam. There is a reason behind that sort of mind set,
  1. The results are based on the person's understanding of the concept, and that has no correlation with the teacher, or the person who selected the questions. 
  2. They are entirely general questions, simple enough to be solved easily and tough enough to be able to tell about the person.  
  3. There is no bias, everyone has the chance to equally solve them, and get ranked based on their own knowledge. 
  4. In these cases, good programmers have a chance to actually solve the riddles, instead of cramming the old questions from past papers, or based on the suggestions of previous members (attendees). 
Let me give you a very common example, that is moreover given in most interview questions, and this is real and I have witnessed them.

Program #1 
Write a program that generates the following output using for loop. 
*
**
***
**
 
There is no possible way, that I would be interested in solving the above problem, just to tell the person that I have a good knowledge of loops. There are several ways, I have had an issue with this question since the days of my bachelors degree.
  1. Concept of loops it better understood by the difference of loop and while (sentinel, counter based concepts). 
  2. Printing an item doesn't help explore anything. 
This is not just the only one of the problems, there are several other problems that I would never even be able to think about solving, one of such was,

Program #2

Given the time in digital (hh:mm) format, find the angle, which the hour and minute hands make on the analog clock.

I must agree, this would give me a very tough time! And if, there is no Google, I will fail. Only a few reasons, 

  1. I do know what functions there are in Math library, but I don't always consider finding the angle on clock.
  2. I know the difference in radians, and degrees. But never expect me to cram every bit of object around me. Just like, Batman, I have never learned to mind my surroundings!  
There was a competition, where I was invited as a judge and, it was a good experience and I was also asked to provide them with a sample question, which the members would have to solve. 
 
 
I was able to provide my suggestion with two programs that I thought were tough enough for people to brain storm and scratch their neurons, but simple enough that anyone with basic understanding be able to solve them.

You are provided with a condition, where there are n number of bridges. On every bridge, at a time only one item can travel. Possible items are: Bus, Car, Bicycle and Pedestrian. Each of them takes the following time to cross the bridge, 
  1. Bus takes 5 minutes.
  2. Car takes 3 minutes.
  3. Bicycle takes 1 minute.
  4. Pedestrians take 0.5 minute to cross and can join with a bicycle as well.
You must write a program that calculates the maximum time taken by current traffic on each bridge, and find the bridge that takes the minimum time to reach the other end.

Conditions
  • Bridge number is less than, or equal to 10.
  • You must take under consideration, that there can be multiple consecutive pedestrians, or bicycle.
  • User’s vehicle time must also be noted.
I am not claiming that this program is simple, or easy, or the best possible one; and agreeable is the fact that it has a problem as well. But at least what I am trying to say is that questions like these would tend to be simpler and easier for the programmers to understand, because we are taught to imagine our surroundings and then quantify them. In other words, who would tell the times as, "minute hand is at 6, and hour hand makes an angle of 75 degree due east"? I felt pity for the participants.

No marketing questions please
 
We are always taught, to solve the problems when we can, not to sell something to someone in problem! We love solving problems, we love to take care of everything that we can think of, and then make it efficient. However, the time we enter that door of an interview room, we are asked to present ourselves as a product, to the HR and then they decide whether we can convince them to buy us.

Any sane HR, who works in an IT industry, should know the very basic fact, programmers are not social. We cannot explain ourselves to anyone, unless we know they are not malware! 

My first experience, of an interview was, that I had to tell them what benefit would I bring to their company, their owner was fine... Their HR was convincing me to tell him how would I fit into their office, their routine and then help my peers learn more as well. A few things that I was able to conclude from there,
  1. That HR had something else in his mind. Clearly, no company wastes their time, to interview an individual just to reject him. 
  2. They did not like my offer -- I think, no one can afford me.
  3. They were, indirectly, telling me to reconsider my package requirements. 
But these problems do not matter, as long as I am treated as a programmer.

My own demeanor is a problem
 
I have mentioned a lot of problems in the process of hiring, and there are a lot of problems with the potential employees too — myself, you and any other person. It is the duty of that HR manager to make sure the company's interests are taken care of. He, himself is an employee, and should act as such. In my own experience, I have figured out a few things, 
  1. An HR will only contact you, if they are interested in you. They don't want to waste your, or their time. So, if they did contact you, it means they want to hire you! 
  2. Even if they do not contact you, they still have your profile, for any future opportunities. 
The reason I am mentioning this section is, that I am not annoyed by the behavior of HR, they are required to go through that process. The problem I typically face is, the person interviewing is not actually looking through the person, he wants the person to look at something that might not (or never) exist — a metaphysical programmer! 

I had an interview, a month ago. It was for Xamarin mobile applications and building Web APIs on the their web app. The guy, who was interviewing me, had no technical understanding... So, I just smiled at him, and asked to meet the team lead and manager, with whom I can actually talk to. They were good and nice guys actually, and understood what I had to say, and were able to easily explain their own concepts to me so that I can tell about myself.

So the problem I want to mention here is, that OK, granted you know everything, please do not overestimate yourself.

Programmers know computer science; not psychology

We are definitely good at building programs and software applications. But, we do not know what's going on in your head. And we can definitely, not understand why you want us to know that. This might not be the most important factor, but still while explaining ourselves to you, or while having us evaluate ourselves do not consider us to follow the best practices in human psychology as well, we are all different and should remain different too. We are taught, to interpret a sentence in 10s of ways, and then are expected to use the correct interpretation in a state. That. Does. Not. Work! 
 
 

The hiring process itself must be changed, to evaluate the person based on their merits. The way, I think emails from HR might come is something like this,

Hello,
Mr. John Doe,
 
We hope you're doing fine. I am sending this email to confirm the date and time for your interview at XYZ.
 
You are required to visit us by 5th May, 2018 at 11 AM.  
 
We have reviewed your CV, and we believe you deserve our technical staff to be involved in your interview, so that our HR team can better understand your response and you can better understand, what sort of abilities we are looking forward to in you, as our employee!
 
Thank you,
Hiring Manager (-- or whatever)
XYZ Corp. 
 
This would ensure, the communication both ways. It would allow that potential employee to better understand the organization, because now some technical staff is also there. Also, it would be easier to understand the interviewee because he would be able to use as much technical words he can, yet be as much simple (provided technical staff can understand him) so that the technical gap can be bridged. 

I cannot understand why this is not done, until now. I have been in more than 5 interviews, and I had to face this issue. No matter, how much an HR might be interested in the computers, he is not even close to a junior programmer!

Final Words — Why I get interviewed, but not hired 

My last few posts on career advice, have intrigued people to ask me this question: "Why are you never hired?", or "Why are you not working?" Simple. I don't want to. 

The reason why I am so interested in interviews is, so that I can better understand what people expect to hear. Almost everywhere I go, they know me already... The tough part is already taken care of, thank you C# Corner, CodeProject and Microsoft. The part, which is left, is the part where I get to know them and they get to know me. 

In a particular company, what I find most interesting, as a programmer is,
  1. Environment -- if they are way too friendly, that everyone can come and talk and interfere, sorry, not my place. Same, if they are not at all helpful, and don't ever talk and you have to solve your own mess, sorry. 
  2. Freedom, I have had a chance of understanding the workflow of a few companies. I want my company to offer me freedom of speech. That, I should be able to speech, and understood, rather than being interpreted the way they want. 
  3. What they are building!
  4. Are they startups?
  5. What is their core concept, that they follow?
Last but not least, the things that I am interested in are open source projects. I am particularly working on a few, collaborating with a few teams, supporting a few professionals (who in turn teach me the professionalism, thank you, guys like Ehsan Sajjad!) and would love to work on a few projects with them. So yeah, I think the thing is, the only thing that matters is you. If you don't get interviewed or hired, don't worry.

They'll hire you someday, or you'll buy them one day. — I said it, you're expecting some big name? :-)