Courtney Gray Tambling- What do you think about things like HackerRank and automated coding tests being used to interview candidates rather than standard technical interview questions?
When implemented the right way, I think they can be win-wins for companies and for candidates.
For companies: It’s much “cheaper” (time wise) to conduct than a phone interview. It gives a consistent data point, so you don’t need to worry about an interviewer having a bad day. It also allows you to cast a wider net and identify candidates who you might have otherwise thought didn’t look good on paper.
For candidates: Again, it’s a consistent data point (a bad interviewer won’t eliminate you) and if you don’t look good on paper, you might get opportunities you wouldn’t otherwise get.
However, I don’t see it as an alternative to a typical technical interview. It should be used before the onsite interview (possibly instead of a phone screen), but it shouldn’t *replace* the technical onsite interview.
JB Rubinovitz- Hey, Just bought the new book. Big fan, thanks for making interviewing a lot more accessible. I was wondering: what you think can be done to make interviews more realistic and accessible in general? Fiona Tay had a good tweet storm about some of the problems recently. Thanks for coming by, JB.
I think companies need to be clear with their own interviewers and with their candidates about what the process is.
- Give candidates prep tools/guidance! (Many companies are doing this, but not most.)
- Identify what information will/won’t be required. Binary trees? Dijkstra’s algorithm? The vast majority of companies are sort of a “free for all”, letting interviewers do whatever they want.
This is a really good thing to do for both the company and for candidates.
That said, I don’t think there’s necessarily a big concern with the fact that companies are asking questions that you wouldn’t solve in the real world. Interviews don’t need to be “like the real world.” They need to identify useful skills. The point of algorithm interviews is to identify your problem solving skills, and you do in fact need problem solving skills in the real world.
Melissa Thai- I recently read an article of a different way of interviewing software engineering candidates, where they are paid to produce a sample project over a weekend, and then discuss their design decisions afterwards. What do you think of this, and do you think it’s any better than traditional interviewing means?
I think that all major interview processes have their pros and cons, and companies need to find what works for them. (More on this here)
I’m *really* skeptical when someone says that the Google-style algorithm interviews don’t work at all. Is it perfect? No (see above link). But unless Google could have built its technology by just randomly hiring engineers, then clearly it at least basically works — even if it’s not perfect. This doesn’t mean it works for all companies though. But it clearly basically works for Google.
The process proposed here — giving a paid project — will work well for some companies, but not for all.
- It might not scale well, for starters. If you were doing this at Google’s scale, where do the ideas for the projects come from?
- It also works much better when you want specific technologies and you want them to walk in the door with those skills. But if you don’t, you might end up with a bunch of false negatives.
- It will be difficult to identify problem solving skills from here.
- If it’s untimed, people who have lots of time to spend on this will get an unfair advantage.
- Also, if it’s untimed, it sort of matters in the real world whether it took someone 2 hours to write a piece of code or 48 hours.
- People will cheat.
My general belief towards hiring is that you want *smart* people. Algorithm interviews do a pretty good job of that, even if they result in false negatives. BUT, a company has to be at a sufficient size to take an approach of “hire smart and then train.”
Dave Fontenot- As a new grad, there’s a ton of pressure to sign early. How do you find the optimal time to make the decision on your first job?
- Do some practice interviews first to know where you stand and to actually improve at interviewing. Are you going to get lots of offers or is it going to be a struggle?
- Interview with your top choices before your Plan Bs.
- Know what you can / can’t afford. If you can afford to wait 3+ months without a job to find the right fit, then do that. You don’t need to rush into it just to have a job.
- If it’s not the right fit, QUIT EARLY. You should not stick it out 1–2 years in a job that you’re unhappy in just because someone once told you that quitting quickly is bad. Yeah, all else being equal, sure. But it’s not SO bad that you should waste 1+ years.
Robert O’Connor- As a recent grad who DID NOT go through CTCI earlier…how do I handle the “I feel defeated” feeling :(
Depends why you feel defeated.
But, first of all, if you have a CS degree, you probably have a reasonable foundation on the knowledge you need.
There’s a lot of stupid myths around interviews. I try to debunk them but they just keep coming back. Yes, they can be hard, but you don’t need to be perfect in your interview. No one is.
Connie Shi- Of all of companies you worked for, what was your favorite? (other than your own, obviously ;) )
Depends what you mean.
I had a really fun team at Apple, so I enjoyed that the most.
But that’s sort of random and doesn’t really indicate that Apple is a *better* place to work (even for just me).
If I had to return to a company (out of Google/Microsoft/Apple), I’d go back to Google. I prefer working on web stuff and I like that the culture is more developer-driven.
Amy Chen- Did you expect the success of your book?
Heh. I don’t think I expected the success of my book until way after it was successful :) .
I didn’t really sit down to write a book. I wrote a little 20 page PDF. It kind of sucked.
But it sold well enough to get me to invest increasing amounts of time in it.
It still very weird to me when people recognize me in public. You get used to it — but only 50% used to it :) .
Amy Chen- Was it before / after the success of your book that you decided to launch your own company? What sort of personal hurdles did you have to overcome to commit to starting CareerCup? Were there moments where you wanted to give up?
Yes, it was before and after the success of my book that I launched CareerCup. :)
2005–2008: CareerCup was just one side project of many. Meh. Nothing I was very serious about. I owned a domain name, people posted questions, and the site kind of ran itself.
2008: It got some traction so after playing around with a few ideas (ads, mock interviews, etc), I wrote a little 20 page interview guide and started selling it. It immediately did “very well” (by which I mean ~4 sales per day @ $25 each :)).
2008–2009: So I invested more time in it, built out the book more, etc. But I still wouldn’t call it a “company.”
2010: It took about 1–1.5 years after the book’s first form before I really starting labeling it as a “company”.
So, yeah, before and after.
Amy Chen What were some moments of your career that you are especially proud of?
From a long time ago:
- Getting an internship at Microsoft during/after my freshman year. It opened the door to more opportunities, internships, etc.
- Being asked to be a teaching assistant during my freshman year (which means I got to teach my own section once a week). I actually *really* believed it was a mistake because I was doing just average in the class. Apparently one of the TAs thought that I was smart enough to improve my knowledge of the material and that I’d make a good teacher :) . It turns out that experience with public speaking was REALLY valuable.
And more recently:
- Getting Cracking the Coding Interview placed in Barnes and Noble stores. It’s *really* hard to do that as an “independently published” (which is just a nice way of saying self-published) book. There’s a whole list of basically secret rules you need to follow, which makes it really hard logistically to figure out the process. There’s almost no one to ask for advice on this. And B&N is hugely biased against self-published books.
- Transitioning to do more consulting to help companies improve on their tech hiring process. I’ve been able to land some impressively large companies, which is unusual given that it’s just me doing this :) .
Connie Shi- What’s your reaction to companies making technical interviews increasingly harder because of preparation books available that cover the “basics”?
Show me the evidence that interviews are getting harder :).
Companies are actually working really hard to get more candidates to pass the interview.
The only thing I’ve really seen change with interviews in the last like TEN years is
(1) more focus on system design [makes sense — more companies are doing that]
(2) companies are encouraging interview prep a lot more. (Fun fact: Facebook actually hires me to teach a class twice a week to *their own candidates* on interview prep. That’s how much they want more qualified engineers.
Melissa Thai- What are the most common mistakes you see when interviewing candidates (both on the phone and in person)?
Off the top of my head
- Diving into code when they don’t know exactly what they’re going to do.
- Not being comfortable enough with big O.
- Not using examples to brainstorm solutions
- Not prepping and thinking that their awesome prior experience should be enough.
- Not talking out loud enough.
Emily Chen- How is the interview experience different for new grads vs someone who has already held one or more full time software engineering positions? After working full time and being out of school for 2+ years, is there any aspect of interviewing not as a recent grad that might be different, that we can prepare for?
Depends on the company. For companies that do algorithm interviews, it’s typically not that different, other than that they might have a bit more focus on design and on specific technology knowledge.
Tammy Butow- Who are people working on improving hiring that you admire? Who should we be watching and learning from?
I have… absolutely no idea. There’s no one I particularly admire here, largely because I can’t think of many “big thinkers” in the tech hiring space (and other hiring is so different).
There are companies doing useful things though that help. I like a lot of the coding bootcamps as well as recruiting tools like HackerRank.
Anne Ore- What would you say to a man who feels disadvantaged by his gender when interviewing for tech opportunities?
He faces disadvantages due to his gender. He also faces advantages.
It’s easy to have a bias to see the disadvantages because (1) we just tend to be better at seeing losses than gains
(2) the disadvantages that men face / the advantages that women face (women-specific scholarships, etc) are more concrete. But being more concrete doesn’t mean more powerful. How do you weigh not being able to apply to some specific scholarship against the constant of people thinking you’re better/worse because of your gender?
A random study I came across a few weeks ago that should make you go WTF: mothers of 11 month old BABIES were asked to evaluate the baby on a variety of motor skills. Although the babies did not differ in skills by gender, the mothers of the baby girls rated them lower than the baby boys. Again, we’re talking about the parents of BABIES.
Ananta Pandey- Can you talk a little bit about your decision to get a masters before joining industry? Given that it is possible for most citizens to get a job in the tech industry with only a bachelors, what are some pros & cons to graduate school?
Uh… yeah. It was probably a mistake**.
A masters in CS is typically a waste of time and money if you already have a bachelor’s degree (especially if you’re going to a school that won’t bring in more credibility for you). Most companies (at least top companies) don’t really value the masters much, and the higher salary is far less than the loss of 1–2 years of experience / salary.
I sort of accidentally did it. I was considering it and it was only an extra year of time (I was in a 5 year program). I positioned my classes so that I could leave at any time, and just never did. Sorry. Wish I could give a better explanation!
(**And by “mistake” I mean: I don’t necessarily regret it as I’m pretty happy with my life and who knows how my life would have turned out otherwise. But that’s a whole lot of luck and randomness and doesn’t necessarily mean that a masters degree is a good decision.)
Dave Fontenot- Curious what you think of dropping out of undergrad and going straight into the workforce as an engineer.
Dropping out… I’d be very careful. Companies DO care about not having any degree. There are obviously times when it works out for people, but I’d make sure that you’re really at (or starting) The Next Facebook.
If it’s just a pretty good opportunities — you’ll have another pretty good opportunity when you graduate college. And you’ll be more able to know your worth and more able to identify what’s really a beyond exceptional opportunity.
Richard Higgins- Don’t remember if this is in the book or not, but can you remind interviewees that if they’re asked for a language preference that they should choose their most competent and not their favorite?
I’d say “pick the one that best fits the task, but that’s typically going to be the one you’re the most competent in.” :)
Richard Higgins- How much longer do you think textual based programming will be prevalent and why?
I have no idea. My gut reaction is that I can’t see textual-based programming ever going away. But then I also know that people seem to be wrong about stuff like that all the time. It’s difficult to predict what we can’t really imagine.
“There is no reason for any individual to have a computer in his home.” — 1977, Ken Olsen, Founder/CEO of Digital Equipment Corporation
Richard Higgins- I’ve found some work environments have much more of a “just make it work, find the right stack overflow post” attitude than others. Do you have experience with finding cultures that prioritize long-term topic learning more strongly? Do you have any advice for would-be job searchers on finding such a company?
Look for companies that are hiring smart people (and that typically means valuing intelligence over knowledge in the interview process). Smart people enjoy challenges and *want* to have a great solution.
Richard Higgins- What do you think of soylent?
I LIKE eating. Why are we trying to make this more efficient? Weird.
Hannah Zabarsky- Do you have any advice for people from a non-traditional background (no CS degree or STEM degree) as far as getting through the initial screening process for top companies?
For a programming role? You’ve got two things to show:
(1) You can do the job
(2) You can pass the interview.
On (1) — projects. lots of projects. Open source. iPhone apps. Etc.
On (2) — know algorithms and show that you know them. Coursera classes work here. So does doing algorithm code challenges on HackerRank and place like that (ahem — the HackerRank Women’s Cup is on Oct 10th).
Radha Shah- Do you ever feel imposter syndrome? What do you recommend for women who are victims to it, especially if it may stymying them reaching their full potential?
Absolutely. All the time.
What’s helped me is a few things:
1. Learning that the vast majority of people (especially women) feel it. Think about this logically. Either everyone is constantly getting lucky and put into situations that they’re not qualified for (and yet somehow performing competently at this) OR *feeling* like an imposter has little correlation with *being* an imposter. In other words, our minds are playing tricks on us.
2. Trying to remember the times when I didn’t feel I was qualified for something and then, in fact, I did just fine at it. It helps to ignore that annoying little imposter voice.
3. Defaulting to yes, even when I don’t think I’m ready for something. (Many people argue that people should learn to say “no” more. Maybe true. But, also, there’s a lot of value in just saying “yes”. I’ve gotten far more value out of the latter. I try to say yes to opportunities as much as possible.)
Evadora de Zhengia- I’m working on a project that aims to humanize the idols we see on the internet, from hackathon directors to startup founders to code interview authors. What are your thoughts on public figures being vulnerable on the internet (as far as their own comfort allows them to)?
I think it’s obviously up to each person to show or hide as much as they want. Vulnerability can be good. It can also open you up to harm.
For me personally — depends on what it meant by vulnerability. :)
Dave Fontenot- I already signed an offer, but I realized I don’t actually want to work there, or the opportunity of a lifetime came up. How bad is it to reneg?
It’s “wrong”. So is breaking a promise to a friend. So is lying. So is stealing.
… but we make exceptions for lots of things. Sometimes you need to break a promise to a friend because the harm to either them or you is far worse.
It’s not nearly as bad as some people (especially older people) make it out to be.
On the other hand, some candidates think it’s not at all bad — and will even sign an offer knowing full well that they’re going to keep interview. *That* I do object to, just as I would object to making a promise to friend that you know full well you’re going to break.
Jessica Joseph What are your thoughts on focusing more on side projects vs school work and vice versa?
- Do “well enough” in school. Maintain at least a 3.0 GPA, but ideally 3.3. (If your school has a much higher average GPA, then you might want to do even better.) You don’t need a 3.8+.
- Do well in algorithms and data structures.
Once you’ve done that:
- Do lots of projects.
But also… it’s not just about programming! Odds are that you won’t be a programmer in 10 years. And even if you are, this is still useful stuff.
- Learn how to write well (succinct “business” writing with correct grammar, not flowery prose). That might be done through a class but it might not be.
- Learn how to speak in public. Take a public speaking class with A TON of this, or join your school’s Speech and Debate team. If you enter the working world scared of public speaking, it’s going to take you a long time to get over this. You just won’t get enough practice until it really matters.
Jessica Joseph- What are your thoughts about jumping around in terms of tech concentration? So one month I’m super into data visualization so I do some projects with that, next month cyber security, a few months later an artistic/tech piece. How does this broad project spectrum concentration influence job decisions?
You won’t really develop a specialty. So if you want to go into one of those fields in the future, you won’t have a ton of background in it. That’s hopefully pretty obvious to you though :) .
But, you will still be coding a bunch. If you want to be a typical generalist software engineer, that’s what really matters. *What* you’re coding matters far less.