An interview is not the place to voice negative thoughts. You’re there to make a good impression, and that’s best done with positive opinions. Even though you may have the best of intentions, be careful of a few traps.
Saying the wrong thing is one way to fail a coding interview, so let's try to avoid that by looking at three angles:
- Building a rapport with the interviewer
- Avoiding judgemental opinions
- Respecting the interviewer as a person
Keep the good rapport to the end
As an interview progresses, you get calmer. A connection builds between you and the interviewer. This is great, as it allows you to think clearly. But there’s a danger that you let your guard down. It doesn’t matter how well you think you’re getting along, you still know virtually nothing about the interviewer.
The good rapport you’re developing is because you are agreeable and sharing a mindset with the interviewer. You’re both on the same page. Ideally, you want to stay like that until the end. Why risk it by being negative?
Maybe you’re coding in Python and you see a chance to compare to C++. Doing do so is good, but only if you can keep the comparison neutral. Don’t let slip an opinion about Python being superior. It’d be a bad assumption that the interviewer even likes the language. Many of us are programming in languages we don’t like. The interviewer’s passion may lie in C++, they might even participate on a C++ discussion board.
In my experience, it doesn’t take much to derail the bond. I’ve had interviews going well for me, but feeling over-confident, said something I shouldn’t have. Everybody kept their smiles, but I could see the strain. At the time it didn’t even register that my remark may be take badly. Beyond negativity, I learned to avoid snide and sarcastic remarks entirely.
On the other side of the table, I’ve had good candidates blurt out things that made my eyes roll. It may be a minor quip, but it takes a big bite out of the goodwill that was building.
An interview is not the same as being on the job. Nobody trusts you yet, and opinions require that foundation of trust. You’re trying to earn the respect of the interviewer.
Are you qualified to be critical
Many criticisms require a deep understanding of the material. Spouting off a canned opinion on Twitter may be fine, but it comes across as shallow in an interview. Sure, there’s a chance the interviewer agrees, but there’s a greater chance they don’t.
For example, say you’re looking at some code that uses dependency injection. The interview asks you for an alternative to that approach, which is a fair question. You correctly answer that a global configurator also works. Then, as happens in many interviews, you’re asked, “Is that a good approach?”
It’s an leading question that functions like a trap — whether or not that was the intent of the interviewer. Ensure you've be listening carefully to the interviewer to understand what they want. The key phrasing, “is that good,” sounds like a request for an opinion. Try to stick only to the details you know. Point out positives and negatives to the approaches but avoid saying overall one is better or worse than the other.
If you’re feeling pressured to give a thumbs-up or thumbs-down, don’t. It’s fine to say your experience is more in one area, and you feel more comfortable with it. You can even say you don’t even understand one method well enough to know where it’d best be applied.
But none of this means one approach is better than the other. Chances are you don’t know enough to make a firm judgement. Chances are that the interviewer also doesn’t know enough. Don’t risk a clash in opinions.
Ask the interviewer’s opinion. This diversion can save you in a bind. Plus, deferring to the interviewer helps build that rapport I talked about earlier.
Real-life is strictly awesome
You should be entirely positive about any topics outside of programming. People’s personal habits vary even more than their technical preferences. If the interviewer says they like morning cartoons, you say, “cool, which ones?” and then note them down, as though you’ll watch them later. If the interviewer’s desk is covered in hand-puppets, you say, “these are great, who made them?” If it turns out the interviewer is a psychic detective in their spare time, you say “that’s awesome, I’d love to hear more about it.”
If this seems shallow, it’s because it is. But you’re intentionally prepping your brain to stay positive. You want to block its tendency to make off cuff comments. You want to suppress any laughter or anything that might be dismissive of the person’s life.
Nobody wants to be ridiculed, not even a bit. How do think the interviewer will rank you, that stranger that belittled them?
Be attentive
Given some interviews I’ve been in, this advice is apparently not taken to heart by many people. The moment any kind of momentum is built, many people shut off their brain and let their mouth take over.
Don’t let this happen to you.
Think about every answer, before you give it. Formulate all opinions in terms of pros and cons instead. Accept the interviewer has their faults, and avoid clashing with them.
Be positive.
Top comments (18)
I wish I would get on board with your message (and I would have in the past), but there are so many things that are red flags for me.
Lemme try to sum up my feeling about this.
If I have to be this careful during an interview, then I simply don't belong here.
If I have to suppress laughter, refrain from sharing opinions, not letting my guard down, I know it'll be a terrible working environment for me.
Who I am during an interview, is mostly what people will get on a daily basis.
I'll laugh out loud when someone shares something mildly embarrassing about their experience because I can relate a lot when it comes to embarrassing myself. I'll curse when talking about how bullshitty my whole formal education was. I'll be outspoken about how little I care about big VC numbers and the startup lingo. I'll share stories about getting burnt out and harassed.
It closes me some doors, that's true. But it also opens up a lot of really cool opportunities. Places where I don't have to wear a thick social mask, to hide who I am.
It also helps me to recruit the companies I'll work with as much as they're recruiting me.
I used to do exactly like you. It only gave me a sense of hollowness, of stretching myself too much between me-IRL and me-at-work. Calculating my every move was just not how I wanted to live.
Let me also say that I agree with you on being someone nice during interviews (and in life in general), so I completely agree with you on not being a douche or making snide remarks... But it's more about a line I take in life than only during interviews.
Mm, yeah, you've summed up my views pretty well.
I try not to be overtly negative in interviews, but there are some things that I'm better off owning, such as the fact that I absolutely hate Javascript. That's not a passing opinion either; not only have I used it, but I was also among the experts on StackOverflow in the closely-related ActionScript 3.0 when that language was popular.
If that means I don't get the job, that's probably for the best, because I would resent every moment I had to work in that language. A good developer should know his or her own mind.
With that said, I am very careful about what things I'm negative about. My personal opinion (at this time) is that PHP looks a bit cluttered as a language, but I'm not going to say that in an interview because I don't know PHP. It may well be that I'll find I like it (hey, I like C, so it's possible!)...or maybe I won't, but I'll cross that bridge when I come to it. I can learn just about anything, and I'd rather send that message.
That said, yeah, I agree one definitely shouldn't make snide and sarcastic remarks in general, especially in interviews, and should still keep the negativity carefully in check. But, "I yam who I yam." If I sell them a falsely saccharine version of me, everyone loses. Yes, I'm a developer, a communicator, and a fast learner...but I'm also (respectfully) passionate. If the workplace can't handle that part of my personality, I'd rather know that now.
P.S. From the other side of the table, if an interviewee owns that they hate C++, I'd be glad to learn of it then, instead of weeks or months into their job with us. Can we show them things to help them love it? Are they better suited for the Python code base instead? Is this job just not to be a good fit? Better to find out now!
What if you happen to be stuck in a room with somebody that knows language design extremely well? What if that's because you've proved your worth so far, and were advanced to a valuable employee at a place you want to work.
What if their only question is, "Why do you hate JavaScript?"
Do you think you can answer sufficiently to convince a language designer that your position is reasonable?
Perhaps you can, but this is the point about not likely being an expert. Many people express opinions on things which are based in nonsense. By opening yourself up to questioning you risk making a bad impression -- the chance to make a good impression is somewhat thin.
Well, like I said, I wouldn't state it unless I have reasonable confidence I can make a clear, objective case for my opinion. I agree discernment is needed, but I wouldn't want to disingenuously pretend I liked Javascript when I would rather mow the lawn than work in it.
No, an I'm not recommending people lie, or hide their opinions. I hope it did not come across that way. The intent is to stay positive, and steer towards better topics. Even negative opinions can be expressed, but they shouldn't be framed aggressively.
As with Remi, I'm sure you manage well in an interview. Unfortunately, many people I've intereviewed do not. They make silly, easy to avoid mistakes. This experience is where my advice is coming from.
True that.
My point of view is exactly what it is, something I say from where I stand in terms of social skills, years of being on both sides of the interview process. And it should not be seen as a panacea for everyone.
An issue is that you aren't interviewing only for your team, you're interviewing to be part of a company as whole. If I'm hiring you, I want to know that you can interact with everybody in the company.
But here's a real problem in your position. Your answer is articulate and reasoned. You had the option of going on a tirade, yet chose to be neutral and collected. My guess is that you behave similarly in an interview. That is, my advice is probably not useful to you.
Many candidates have a problem keeping their cool, or are not that articulate. They need a reminder to stay in control. If one's social skills are not top notch, then it's worth erring on the side of caution.
This 100%. Be yourself or you will regret it. The purpose of an interview (especially a first one) should be to find out if you're a match. That goes both ways.
That said, of course your interview shouldn't be an hour long rant about something.
I feel like playing the game of go has made me a lot more careful and diplomatic in my approach - to everything really. Earlier in my journey of learning to play, there were a lot of things I had really strong opinions about. I was quite certain that some things were obviously right and others were clearly wrong! However, the stronger I got, the more nuanced my ideas about go became. Now, when looking at a go position, I may have an opinion, but I am also well-aware of how tricky assessing a position can be. If we use AI as a benchmark, even professional go players can grossly misjudge go positions!
This experience has strongly affected how I think about many other things, including software development and technology. It's okay to have a strong opinion about something, even if it's negative, but I think @mortoray's greater point is important: If you are about to express a negative opinion, consider reframing it as a positive opinion about something else; and if you still want to go ahead, then you should be able to back that opinion up with a mature and comprehensive argument.
As for the idea that you are who you are, and if the interviewer doesn't like it, then you probably don't want the job - I suggest caution here. As @mortoray pointed out, when people know you, it's different. Coming across as negative when it's the first impression you create, could prevent you from getting a job you'd otherwise be very happy with.
Wanna learn go now. 😄
A good measure of diplomacy often makes an opinion looks better.
I don't have much experience either side of an interview, but I think the expectation for an interviewee is to be a better version of themselves. If you feel negatively about something, and have some real justification for that, you should speak out... but temper it, don't unleash all your rage on someone you just met.
I agree with your point of view, BUT I think it depends a lot on the person receiving the advice.
I tend to be very shy in unknown situations or with strangers, and not showing my personality enough has closed off a lot from me — from jobs to friendships to business opportunities. I usually can’t speak with people, but I’m great at communicating through writing. I’m a great person to hang out and work with once I get to know you and can actually express....anything.
It’s great to respect and not overly criticize other people, especially those who might hire you, but for me, I think I actually need the opposite advice: “do have an opinion, do say what you think, definitely do let your personality show”. If I hide myself any more than I already do (because social anxiety is a thing), I probably would just become a mummy being carried around on wheels through the interview.
Your opinion is great if you’re talking to someone who is extrovert or tends to say too much. For me, it will probably just close more doors than it opens! And I’m pretty sure I’m not the only one on this side of the spectrum.
Side note; If I prep enough, I can do just fine in meetings, interviews, calls, etc. But for something impromptu? There’s a 5% chance I will go on automatic mode and shine through, but otherwise I will probably just stay silent, and then regret it for the rest of the month.
There's nothing wrong with positive opinion. I'd much prefer somebody express themself by saying, "I love coding in Python" rather than saying "I hate programming in C++".
Surely you have an endless amount of positive things to say about the projects you've worked on, the things you like, and the people you've worked with.
Having a positive opinion of something doesn't diminish the value of anything else. It also tells me something useful about you, something I can work with.
Ask yourself, would you prefer to work with an overlay negative, or an overly positive person? How much more would the negative person have to bring to the position to make it worth it to deal with their attitude?
I'm unfamiliar with this, how does it work?
In short (perhaps I should write an article), global configuration is handled by a singleton, or thread-local. During bootstrapping the desired implementations are created and their interfaces stored in the configuration. Modules that need certain interfaces refer to the global configurator (or ConfigurationManager, or ComponentFactory, or however you'd like to call it) and request the component they want. Often the components will be lazily created, rather than during bootstrapping.
This allows the same ability as dependency injection of mocking interfaces for tests, and having good control over what objects are created. It saves on the overhead of passing around components through the layers.
A good example of this is Flask. At one point I was using Flask-HTTPAuth and I ran into some issues. I made a suggestion to the maintainer that maybe we could pass certain things into functions via dependency injection (using python decorators). He ended up not going ahead with my suggestion, partly because that's not really how Flask works - the idiom is to use a thread-local "global" object to set and retrieve such information, as @mortoray points out. I did make a small pull request to clean up the code that was accepted though! :) I do tend to prefer the dependency injection concept in general, though one has to be careful with that too. It can be quite easy to create a very complicated configuration where it becomes hard to understand how things are getting set up.
Ah, that's neat. I believe I've seen a hybrid approach of sorts used in some .NET apps.
OMG, people like you are the reason why am a freelancer from the very beginning of my dev carrier. Never give a shit what other people think about me if I think I‘m right. Even I get rejected. One of my best / permanent clients so far I’ve got after telling him for one hour all my recent fails with other clients. The only thing is my rants are quite objective. Many people like honest people who can express their rants in an intellectually advanced way and support them with objective arguments. But there are always some hypocritical fakers or just your ideological enemies who will hate you for what you are saying. But are those the kind of people you want to work with? No, thanx