11 ms·
Don't write on the whiteboard
- danko 15y agoA pretty good array of interview tips which can be summarized as follows: (1) Make yourself as comfortable as you can, so that you can: (2) Make it clear what you're thinking and how you think (which is the point of the interview). I'm not signing on for the concept of always doing your interview in Python, however. Do your interview in the language you're most comfortable in, unless it's something so esoteric that it's likely to throw the interviewer off balance. Python is a great language for these sorts of exercises if you know it, but don't force the issue if you don't, because then you're violating (1) above. I know Python well myself, but I'd do an interview in Java because that's "home" to me, and you need all the "home" you can get during an experience as alienating as your standard interview.
- revorad 15y agoThanks for writing this up, it'll be quite useful to me. I found your last line quite amusing: "I want to learn how to push the boundaries of knowledge, not just apply what I learned in these books." When I quit my PhD to do a startup, my thinking was the exact opposite: "I want to apply what I know to solve real problems out there, not just keep learning and write more books which no one will read."!
- joshsegall 15y agoThe title doesn't do the article justice. As an interviewer myself I think it's terrible advice. Certainly if you think it'll make or break your interview go ahead and ask to write on paper, but thinking through problems and expressing them on a whiteboard is an important skill at a lot of companies. Many of his other points are good, although a lot of it boils down to being a top notch developer and letting it show in the interview. Being a top notch developer is the hard part, and good interviewers (at places a top notch dev would want to work at) will typically identify your skills even if you don't follow this specific advice. +1 for using python--it's great for getting through coding questions quickly and efficiently, allowing exploration of various twists the interviewer may throw at you.
- ljlolel 15y agoThanks for not just talking about Whiteboards! That's just the hook and intro! I agree. I think high-level planning and design is a great use of whiteboards in the workplace. Code under time pressure, not as much.
- random42 15y agoFrom an interviewer's perspective, the whiteboard gives me a chance to intervene to correct, explain, or provide hints, to the interviewee sooner/at the right time, which is not possible in pen-paper solutions, as I cannot see what the interviewee is doing till she shows me her work, unless I sit at the same side of the table as herself, which is odd for general discussion/talking. My advice to interviewees:- Practice on a whiteboard. It is not that difficult.
- gldalmaso 15y agoThere is no practice that simulates anxiety. Anxiety is mostly incompatible with the mental effort one usually applies in coding. As you have put it, the white board is convenient for the interviewer, but that is missing the point of the interview which is to assess the candidate. If you do not find if that difficult, than consider yourself privileged because most people feel differently. Some people cannot speak to a small audience while some love to give presentations. An interview is already an anxiety-packed situaton where the candidate is under the spotlight. Putting them on the whiteboard solving problems only puts more pressure on and will often lead to sub-performance. Since the interviewer does not follow through when the candidate leaves, they may think that the candidate did his best. I for one think that there should be an effort to emulate real working conditions and not performatic settings.
- vl 15y ago>There is no practice that simulates anxiety. Ah, but there is. Once you go through few interviews you get less anxious about the next one. Which means, that if this is a serious problem for you, and you expect some important interview in the future, then you have to go and interview with some other companies before to gain practice, and may be even get some job offer you'll like more than the one you are hoping for. The whole point of the parent argument is that there are conscious steps you can take to make whiteboard writing not stressful for you. Just practice for ten hours solving problems on it and it will be as natural as writing on paper.
- gldalmaso 15y ago
- zck 15y agoThe author brings up some interesting points, but fails to back them up. Why does he prefer not to write on the whiteboard? Why Python? [1] Why interview the interviewer? Sure, there are reasons I can think of, but I'm not convinced, and would like to know why he is. [1] In later tips, he gets into some things that make Python good, but it needs to be justified more, given that his advice boils down to "use Python even if you've never seen it before".
- seanmccann 15y agoI think the quote from the interviewer summarizes it best. "Normally people write it in Java and it takes them a while and it takes up a lot more space on the whiteboard. They spend a lot of time manipulating the input string." If you're more comfortable with Ruby, it would also be a great alternative. Clean, readable code. You get to focus on solving the problem.
- lhnn 15y agoAs a bonus to my upvote, I want to be clear: This is a great read. It inspires people to learn algorithms, know how to back up your assertions, and be confident with an interviewer.
- dfan 15y agoI like seeing interviewees write on a whiteboard because I can see how they're thinking and help them out if I see that they're running into trouble. The point when I give a whiteboard question is to engage interactively with them over the course of ~15 minutes while they solve a problem, not to sit around and be handed a piece of paper at the end. In addition, communicating with peers via whiteboard is a skill that is actually handy in day-to-day work life; it's not just some artificial interview skill.
- MPSimmons 15y ago> communicating with peers via whiteboard is a skill that is actually handy in day-to-day work life; it's not just some artificial interview skill. Exactly.
- ljlolel 15y agoSo sit next to the person while they write...
- bethling 15y agoThe natural posture, position, and size of writing on paper discourages that. It's also essentially impossible for me to step in and point to/mark up their code (and then erase it). The paper takes away any of the collaboration that can occur during an interview. Your code might be better, but I have trouble seeing that you'd be able to project as a positive impression as if you used the whiteboard.
- ljlolel 15y agoParents of children and teachers don't seem to have a problem with paper.
- bethling 15y agoI don't have a problem with paper - I just feel like it would work against a candidate - not because "Oh...they used paper", but because some of the things that I think are signs of a good candidate don't show through. I've never interviewed a candidate that asked me to use paper, so I can't be sure - it's just my instinct. It might be completely biased though - I far prefer to use whiteboards - I love the space, I love how easy it is to erase without a trace. I can throw thoughts up there and the manipulate them.
- edw519 15y agoSorry OP, I realize that you're just trying to be helpful sharing what's worked for you and I appreciate that, but frankly, I hate posts like this... I think the best preparation for any interview is to simply get good at what you do. All the rest is window dressing that distracts from that goal. Every minute spent practicing interviewing would be better spent building stuff. The natural byproduct of this will be exercising those skills that will be evaluated. What you're proposing is unnatural and unnecessary. You're focusing on the details of the process instead of the real issue of knowing your stuff. Good interviewers won't care if you're fundamentally solid but a little light on the presentation side. And they won't be fooled by a great presenter who is weak under the hood. Sure, you may fool a weak interviewer, but what does that say about the company you may be joining? We all want to be solid in both fundamentals and presentation, but I prefer to focus my limited resources on getting better than I am, not appearing to be better. Best to just be good, be yourself, and trust that it will show naturally, no matter how you are evaluated.
- barkingllama 15y agoI'm glad the author mentioned Project Euler... I've never heard of it. Anyone else have experience with these problems? Is it a good way to improve your development skills?
- gldalmaso 15y agoIt's a very good way indeed. One good thing about it is that there are different levels of success. The problems usually come with a simplified version to which the result is provided. That way you can confirm your solutions works. Then, the real problem scales it and you have to improve the algorithm to achieve the performance goal of less then 1min cpu time. It's also o good way to learn a different language. You can compare your solutions in different languages and evaluate their strengths and weaknesses.
- jonshea 15y agoThey’re interesting problems, a good way to improve your coding skills, and an amazing way to train for interviews.
- sliverstorm 15y agoYou should always have paper and pen anyway to write down ideas Am I the only one who is not such a fountain of ideas that I can keep it all in my head?
- jc4p 15y agoYou're definitely not alone. But, I've found that even if you don't do it, you should still try. During my last interview I brought along a notebook, the day before the interview and the bus ride over to the office I wrote down any question that I could think of in the notebook, even forcing myself to think of extra questions. It got people's attention, I talked with 6 pairs of people and each one pointed it out in one way or another.
- sliverstorm 15y agoCertainly take notes in preparation for an interview. Certainly bring a notebook to an interview. I just don't see this whole "carry a notebook at all times" thing.
- stephengillie 15y agoRespectfully, what is the benefit to recording your notes and ideas on paper, and using paper at interviews, instead of using txt files in the dropbox folder of the always-connected smartphone in your pocket?
- lutorm 15y agoIt's sufficiently painful to express myself on the tiny keyboard that I tend to avoid it. Not to mention if you want to sketch something.
- sliverstorm 15y agoIt's way more classy to have & take your interview notes on a legal pad or similar. I would bet money if you kept pulling out your smartphone during your interview, you are not getting a job. A legal pad looks "prepared". A smartphone looks "distracted".
- podopie 15y agoFirst, let me just mention that I think it's fantastic when others offer to share their personal experiences with interviewing, particularly when what's shared is unique and interesting to read or look at. As others pointed out, there's more to this article than the whiteboard title, and some great points (particularly a fan of the python one) are made. I can't agree with the whiteboard concept, unfortunately. Maybe it's because of my teaching background, but when I interviewed for a startup engineering position a long time ago, they loved my whiteboard usage. It was clear, easy to follow, and effective. In some respects, it's (part of) what got me the job offer. That said, the main point between whiteboard or pen and paper: make sure you can express yourself clearly to your interviewers. It was crucial in all the essays I graded, and a key skill to attain no matter your profession.
- MPSimmons 15y ago[Disagree] Whiteboarding is a very, very valuable skill. The ability to effectively convey your ideas to a group of people, while presenting what amounts to an extemporaneous speech, is a tremendous asset.
- drumdance 15y agoIt seems a lot of what he's talking about is how to deal with anxiety. One way to do this that I've found extremely useful is just to say "I've gotta be honest, I'm feeling a little anxious about this." Not just in interviewing, but in anything in life. If you are willing to be vulnerable, oftentimes that allows you to breathe and the person you share the vulnerability with will come to your rescue (i.e. help to set you at ease). That said, don't be needy. Just acknowledge your anxiety.
- fotbr 15y agoUse python even if you're a c++ systems guy. Or, you know, you could use the language that's most likely to be used in the job you're applying for. If you're a c++ & systems guy, interviewing for a c++ & systems job, c++ is far more likely to be the language of choice for an interview rather than buzzword-language-of-the-week, be it python, java, ruby, haskell, etc. Of course, if you're interviewing at a place you KNOW uses a lot of python, then yes, python would be a good choice. Besides, most interviews I've had end up being a phone interview for knowledge and skillset, followed by the lunch interview where they're more concerned with finding out how you'll fit in with the existing team.
- joeyh 15y agoSeems to be a divide between those who like using whiteboards and not. I can think of several contributing factors: * academics vs non-academics * those who enjoy thinking on their feet vs those who enjoy thinking in a text editor * good handwriting vs not * right vs left handed Regarding the last, writing left-handed on a whiteboard means you're either manipulating the pen uncomfortably from the far end, or you're smearing what you wrote. You're also tending to obscure the audience's view of what you just wrote with your hand, arm, and body. I'm sure all of the above are part of why I prefer to avoid whiteboards, and would be much happier with my laptop on a projector. Although if I'm communicating with trusted peers I have no shame in putting up a smeared, slanted, and mostly illegible scrawl.
- ljlolel 15y agoYou should read the article. Whiteboards are just the first point, and I only denigrate them in the artificial context of interviewing. When I teach, whiteboards are fantastic.
- lurker14 15y agoEvery conference room whiteboard should be paired with a mirror, so that lefties can write backwards. If you haven't tried it, writing backwards with your left hand is surprisingly easy when you first try it. (easier than writing forwards eith the left hand, or backwards with the right hand, as a rightie) It's just a more natural way to move your hand.
- Daniel_Newby 15y ago> writing left-handed on a whiteboard means you're either manipulating the pen uncomfortably from the far end, or you're smearing what you wrote I'm left handed, and I hold the dry-erase marker comfortably and write without my hand touching the board. Certainly it takes a degree of coordination, but is this uncommon?
- dfan 15y agoIt's funny, I think every interviewee who has apologized for their bad handwriting has been at least 50th percentile in handwriting legibility.
- plugindev 15y agoSpoken like a young entrepreneur gone academic. You will be a semi-interesting success as a difficult teacher and after your long traipse through life as a researcher, you'll make a great unhappy VP in the IT department of a large ivy-league university one day. Congratulations, and thank you for the advice. I am humbled, and even more resolved to stop being a developer one day. Everything you wrote was right on, with the exception of the no writing on the whiteboard. That is just nonsense. You could have more quickly relayed the same code on a whiteboard and the interviewer wouldn't have had to have provided a post-it. You're lucky you got the offer after that kind of stunt, and it labels you as "eccentric". Not in a good way.
- GotToStartup 15y agoGreat article with lots of valuable info in there. The part about the actual whiteboard is almost irrelevant. Most of the comments here are getting too worked up about that. "Learn Python and use it during your interview." Python is expressive, a high level and kind of writes like pseudo code. Just write pseudo code. The point isn't syntax anyways. "The highest value problems I know of are on Project Euler." I do enjoy running through Project Euler problems but I have no evidence that's making me better at my day job, only better at answering Project Euler problems.
- ljlolel 15y agoMany companies (including the one in question) want to see actual code in a language that they use at the company. The fact that Python happens to look like pseudo-code is a bonus. Maybe you already knew all the lessons in Project Euler, but for me, I became a much better programmer. How elegant are your solutions? Have you tried writing them in a different style than you're used to? Say, in a functional style? With Haskell?
- GotToStartup 15y agoBut if companies want to see actual code in a language they use, then learning python to use simply for interviewing wouldn't really work either right? So your only options would be "use any language but not just pseudo code" or interview for python jobs only. Oh no, I certainly didn't know all the lessons and I haven't done all of them. "How elegant are your solutions? Have you tried writing them in a different style than you're used to?" That's a great point, so I suppose it's less about the actual Project Euler problem, and more about optimizing, refactoring and trying them in different languages.
- ljlolel 15y ago> That's a great point, so I suppose it's less about the actual Project Euler problem, and more about optimizing, refactoring and trying them in different languages. Exactly. Make it better.
- ww520 15y agoI don't know whether others are like me but I've spent so much time typing rather than writing that my writing is rather bad. Writing on whiteboard is actually easier than on paper. Perhaps the best is to bring a laptop and type it out?
- Herring 15y agoDid anyone get the O(document size) solution? I can't see how it would work without checking each word against the list.
- asmithmd1 15y agoUse a bloom filter? http://en.wikipedia.org/wiki/Bloom_filter http://en.wikipedia.org/wiki/Bloom_filter
- deleted 15y ago[deleted]
- ljlolel 15y agoThank you! This is Hacker News! Why isn't everyone trying to solve the problem?!
- larelli 15y agoAt first glance I don't think you can achieve O(document size) without some form of preprocessing. Each word in the vocabulary has to be looked at, so a natural lower boundary seems to be O(document size + vocabulary size). Also it is unclear what will count as an atomic operation. Although the description reads as if word comparisons were counted, this makes for another simplification, as words could be of arbitrary size. Also: I only checked the HN comment section to see if someone got the solution and I am amazed that others stuck to that part as well.
- ljlolel 15y agoYes, you use pre-processing. I framed the problem in a very real-world scenario. Use that. It's not a trick question. How would you solve my real-world problem efficiently?
- deleted 15y ago[deleted]
- deleted 15y ago[deleted]
- bdg 15y ago> Then take your solution and do it in half the lines. Now, read more of the Python docs (maybe read about generators and list comprehensions and decorators) and make it even shorter. I don't agree with this. Shorter lines of code don't really express anything beyond how cuthulu-inspired your code will read, and performance is very likely to take a hit. Euler problem 2 solutions that are simply a for-loop rather than take advantage of geometric progression are slow and don't indicate higher-level abstraction of problems or the tools to solve them. Almost any programmer should be able to do the first 50 programs with random brute-force methods that are only a few lines long, but that doesn't do anything other than demonstrate you can have a computer add together numbers based on an if-statement. It especially doesn't show you know how to bring together technologies that are useful for doing things such as building a website.
- dkarl 15y agoThe interviewers don't care. Use paper. Uh, yeah, we do care. Part of what we're judging is your ability to present and explain your work. How you do your work is your business, but how you share it affects the people you work with. If you think it's all about you, then you're off on the wrong foot already.
- Tooluka 15y agoWe don't commit new code to whiteboards. We commit it to VCS. You know, with such electronic thingies, called computers. And when my interviewers wanted to collaborate they didn't find it too difficult with paper. Even sitting opposite of me (and that is why large tables in conferences are evil).
- stcredzero 15y agoUnderstand what you don't know, why you don't know it, have an interest in it This strikes me as the fundamentals for what someone should look for in an interview for a startup or research position.
- kabdib 15y agoI've done interviews both ways (paper and whiteboard), on both sides of the fence. It's never been a big deal. I /have/ seen candidates fail because they insisted on using a laptop. But these folks were typically very nervous about coding, and had essentially pre-failed the interview in their head. Their laptop was a security blanket, a totem that they hoped would sustain them, and it didn't work.
- MrMan 15y agois the OP a professional employee/interviewee or something? the energy spent preparing for (seemingly countless) interviews could have been spent working on things s/he is passionate about.
- dlevine 15y agoI have dinged people because they wouldn't write on the whiteboard. To be fair, every time this actually happened, I gave the candidate the chance to write his solution on paper, and I ended up dinged him anyways because his work was sub-par. At every company I have worked at, from two-person startups all the way to Google, we have used whiteboards extensively. Most meetings and architecture reviews are conducted in front of a whiteboard. The first thing I do when I found a startup is to buy a whiteboard and nail it to the wall. Whiteboards are a necessity for collaborative brainstorming and working together. I'm not sure I agree with anything the OP says in this article. I think he's trying to sound smart and rationalize the reasons he didn't get hired. I say this not as a troll, but to provide constructive feedback. If you want to get hired by a big company, you have to play by their rules. End of story. There are a few exceptions (like engineers at Google without college degrees), but they are exceptions - most people who work for Google or Facebook or Palantir went to good schools, and did well, and wrote on the whiteboard during their interviews.
- georgieporgie 15y agoYou sound like you have confirmation bias, and your whole point seems to be to adhere to the status quo. The notion that an engineer's ability can be discerned by willingness and comfort at a whiteboard is utterly ridiculous.
- readme 15y agoA hashtable need not have a "set key" or "get key" method. It only needs get(key), and put(key,value)
- aoeuid 15y agoThe poster is right -- don't write on a whiteboard. Instead, bring your laptop, make the font bigger on your favorite editor, and write in that. I've gone through many interviews like this, and only one interviewer insisted I use the whiteboard. And I'm pretty sure that was largely out of wanting to be fair to other candidates who didn't think to bring and use their laptops. Since you will presumably be writing code on a computer when working at the company, why not write code on a computer when interviewing with one?