In interviews, remember never to mention anything negative about your current job no matter how you are treated, because that makes you seem like a negative nancy! Who knows, maybe you will even complain if you are treated poorly at your next job?
> Who knows, maybe you will even complain if you are treated poorly at your next job?
First, hating your job and not quitting for three years speaks A LOT louder than any badmouthing you can do in a 45 minute interview. You're much better off pretending you actually mostly like the place, but you're just not getting challenged like you used to do and it's time to move on.
Second, setting a positive tone is pretty important for any interaction you want to fall out in your favour. "I want this new job for this positive reason" is better than "You guys seem OK, no way you're as bad as the idiots I'm currently working for".
Someone filling a grunt position in a sweatshop mostly cares if you can show up on time - the ass-kissing in interviews is a nice perk. Someone who likes his job wants to hire someone who will like the job (and be good at it) - not someone who will just not hate it.
Maybe you could build up confidence working on something else -- an open source project, for example -- that has better personal dynamics. You get something to be proud of, a clear demonstration of your skills, and you've helped the community.
Beware. If the environment is as bad as it sounds, the issue may get forced on you sooner than later. Something will draw the Eye of Sauron onto your boss and he will need to fire a scapegoat or get blamed himself. As the guy who doesn't give a crap you'll be both threatening and vulnerable. Getting fired can turn out to be a good thing in the long run but it's stressful and best to avoid if possible.
Seriously, if that's the case then get the hell out. It's going to stifle your whole career if you stay in a place that is poisonous. And it will kill your confidence (if it hasn't already).
I can see a match-making service for finding people to give mock interviews being really useful for folks like [redacted] -- People who may be good coders, but their confidence is crappy.
Scott means practice at interviews. Interview regularly, even when you have a job that you love, so when it matters, you are smooth and natural instead of rough and stilted.
Technical skills can only go so far. It is rare that a person who is a technical master but doesn't appear to be able to participate in a design will succeed. Fortunately, that is easily fixed by getting out there and interviewing (with a bonus of maybe finding a job you love in the interim).
Indeed I do, since it sounds like his difficulty with interviews is the social, not technical, aspect of it. And the good news is that just like the technical aspect, you get better at the social the more you do it.
Just as the parent post said: Interviews are hard because there is extremely low correlation between what is asked in Interviews and actual job work. I firmly believe the system of asking stupid algorithmic trivia is hackable and should be hacked because it is a broken rotten system that keeps incredibly amazing hackers out. There has been a ton of stuff said about interviews so I will keep this brief:
1. Get a github account, publish code, keep a social media profile etc. At the very least, this gets you interview calls.
2. People are not that creative with tech questions. Even Google (at least these days) asks you questions that come out of a textbook. So go through one, say like Skiena's Algorithm Design Manual and solve all the problems on a white board. This sucks a ton because when I sketch out code for a project, I never go do it on a whiteboard. The trick is to get to the stage where you can mentally compose the main blocks of the problem in your head and then writing down the answer on the whiteboard. This means that when you hit the whiteboard with the engineer staring at you from back, you know pretty much what way you want to go at the problem.
2.1. Statistically speaking of the countless interviews I have done, I think a large proportion of questions have been on trees, graphs and dynamic programming. I feel like this is because "some people" think that these are exotic enough that solving these problems have some correlation with smartness. Again, solve a few problems from any textbook on these or maybe go through the TopCoder tutorials on the matter and they start getting as easy as a day to day programming problem.
3. Accept the fact that people are paranoid about false positives and don't really care about false negatives. Sometimes if you have a bad day, it is not you.
4. Someone mentioned this before but interview more. Talk to people you like, you hate and people whom you have no intention of working with. This will help you get over your insecurities and make you realize that interviews are just a game: You will get more confident, and believe me, that helps. (This is just like dating, the more you do of it the more you get better ;-)
4.1 Organize your interviews so that your dream bets are towards the end of your process by which time you will have done so many problems, attended so many behavioral interviews, talked to so many people that you will be absolutely amazing!
I hate stupid algorithmic trivia too! All of my interviews have been giving the person a laptop and asking them to make a very simple app while I watch. For iOS for example, I ask them to make a table view that shows 1 to 5. I let them use documentation and the web too. I ask them to add features if they can complete the app before 30-60m, and the more features the better. I'm totally fine with leaving the room too if they don't like someone looking over their shoulder. I try to do this with something they are skilled with.
Many people can't complete the first item, something that would take me 5-10 minutes. I feel like it's about the equivalent of fizz buzz, but scalable. It also respects their time, since I don't ask them to sacrifice a weekend day to make an app for me or similar and by the end of the interview series and a huddle, they'll have an offer or not.
2. Where did you get the idea that Google asks questions out of a text book? But yes, practicing your whiteboarding skills is a good idea. It comes in handy once you actually work as a team on designs. (I love to sit down and sketch out things for myself, but from a certain problem size on that's largely practical)
2.1 It's a basic filter (and should be part of the phone screening, before you waste a day on interview). A surprising number of people really has trouble understanding even mildly advanced data structures. If (and only if!) those matter in what your company is doing, screen for that as early as possible. Trees do the job.
4. Be careful about that. If you keep interviewing successfully and turning down offers because you like your current place, you are (at least temporarily) closing doors. So be sure to know at what conditions you'd be willing to switch, because you just might get an offer that's hard to refuse.
2. Erm..because I interviewed there and found out the next day that the question I had been asked was an exercise problem in Skiena?
4. Well, I am not suggesting interviewing if you are happily married to your current job. I thought OP was not happy and wanted to interview to get a new one.