TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

The time spent on practising white board test may not be worthy

28 点作者 nanxiao超过 7 年前

18 条评论

jcadam超过 7 年前
Of course it isn&#x27;t. An interview process that requires&#x2F;rewards cramming for months ahead of time is fundamentally broken.<p>I just gave up on getting hired at any tech company that uses whiteboard interviewing. It seems like, just as in college where there&#x27;s always that <i>one kid</i> who aces every test and wrecks the curve for everyone else, in any candidate pool there is always one demigod of algorithms (and it isn&#x27;t you, you&#x27;re merely great) that spends every waking hour of his&#x2F;her life on hackerrank and topcoder.<p>Whatever, I spend my time on side projects, learning new things, family, and the occasional bit of fun and relaxation. And I still manage to stay employed (so far).
评论 #16384352 未加载
评论 #16384302 未加载
Mountain_Skies超过 7 年前
Seems like the more employers complain about the lack of available labor, the more they ratchet up the pointless interview hazing. It&#x27;s hard to take their claims of &#x27;no one is available&#x27; when they&#x27;re so capricious in tossing away potential employees.
评论 #16384259 未加载
评论 #16384290 未加载
gameswithgo超过 7 年前
&gt;You just need to call std::sort, and don’t care it is “bubble sort” or “quick sort” under the hood<p>This is often the case, but not always. When you know things about the input data you may be able to get better performance than the generic sorts built into a language. Or, when you know more about sorting algorithms you may be better able to choose among the available sorts&#x2F;sort options provided by a language or library.<p>I don&#x27;t understand the attitude of people willfully choosing not to understand their craft better. Yes we can all be mediocre by just using libraries that other people made, but<p>1. Someone has to make the libraries 2. The average quality of software is not very good, its very often slow (which is astounding given how fast the hardware is) and buggy, often with disastrous consequences, so we should all be striving to do better than average.
评论 #16384270 未加载
评论 #16384243 未加载
评论 #16384444 未加载
评论 #16384230 未加载
评论 #16384309 未加载
评论 #16384391 未加载
评论 #16384433 未加载
评论 #16384306 未加载
评论 #16384181 未加载
hmschreck超过 7 年前
Is this really news to any of us? I figured most people here understood that algorithm&#x2F;whiteboard test prep was pretty much standard, but incredibly pointless.
评论 #16384171 未加载
maxxxxx超过 7 年前
You practice whiteboard tests to get a job and not to be a better programmer. If it gets you a better paid job it&#x27;s a win but then you can stop.
评论 #16384175 未加载
gwbas1c超过 7 年前
I don&#x27;t think you understand the purpose of a whiteboard test. When I interview candidates, I&#x27;m looking for a lot of things that can&#x27;t be practiced:<p>- How well can you converse about a technical topic<p>- How adaptable are you to design constraints<p>- Do you understand the fundamentals of threading, databases, data structures, ect?<p>- Can you &quot;think in code?&quot;<p>- How well do you really understand the language that you spent XX years of your career working in<p>The best way to improve your skills is by doing: specifically, choose a hobby project that involves an area that you want to learn. Reading a book will only get you about 10-15% of the way there. Books are useful to choose a technology to learn, but not to learn the specific technology.<p>Getting back to whiteboarding: I&#x27;ve used it to:<p>- Reject candidates who forget basic fundamentals of a language that they claim XX years in. (Seriously, if you can&#x27;t construct an &quot;if&quot; statement or use a common collection class in a language you claim XX years in, then you don&#x27;t belong on my team.)<p>- Reject candidates who can&#x27;t learn an unfamiliar API. This is critical, because we need to discuss new APIs in design discussions; and because &quot;old &amp; working&quot; code isn&#x27;t always worth refactoring to use some shiny new API.<p>- Reject candidates who don&#x27;t know how to use a database. (Frameworks &#x2F; ORMs are not a replacement for knowing how a database works and how to program with one.)<p>- Reject candidates who don&#x27;t know fundamentals of threading
评论 #16384347 未加载
xet7超过 7 年前
I found this blog post after also writing today about Time Well Spent <a href="https:&#x2F;&#x2F;blog.wekan.team&#x2F;2018&#x2F;02&#x2F;time-well-spent&#x2F;index.html" rel="nofollow">https:&#x2F;&#x2F;blog.wekan.team&#x2F;2018&#x2F;02&#x2F;time-well-spent&#x2F;index.html</a> and production setup for Wekan <a href="https:&#x2F;&#x2F;wekan.github.io" rel="nofollow">https:&#x2F;&#x2F;wekan.github.io</a> at AWS for thousands of users <a href="https:&#x2F;&#x2F;github.com&#x2F;wekan&#x2F;wekan&#x2F;wiki&#x2F;AWS" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;wekan&#x2F;wekan&#x2F;wiki&#x2F;AWS</a> .<p>About optimization there is DTrace talks at <a href="http:&#x2F;&#x2F;dtrace.org&#x2F;blogs&#x2F;bmc&#x2F;2018&#x2F;02&#x2F;03&#x2F;talks&#x2F;" rel="nofollow">http:&#x2F;&#x2F;dtrace.org&#x2F;blogs&#x2F;bmc&#x2F;2018&#x2F;02&#x2F;03&#x2F;talks&#x2F;</a> and related HN discussion at <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=16303595" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=16303595</a><p>I do remember Randal Schwartz talking at Floss Weekly <a href="https:&#x2F;&#x2F;twit.tv&#x2F;floss" rel="nofollow">https:&#x2F;&#x2F;twit.tv&#x2F;floss</a> sometime that in his work he tries to listen developers and ask right questions to see where bottlenecks are. Is there some expensive database query, does something need to be cached, etc.
pan69超过 7 年前
I think that the whole interviewing and whiteboard frustration is because not all software development is equal. I think software development is a spectrum, with (let&#x27;s say) on the one hand engineering (the academic side) and the other development (let&#x27;s call it the &quot;craft&quot; side). Most software positions&#x2F;roles&#x2F;jobs sit somewhere in the middle or lean to one side or the other.<p>Some companies are clearly academic, think of the Google&#x27;s of this world. Other companies are more crafty&#x2F;creative, think e.g. of typical web-dev shops. Games development is an interesting one.<p>As software developers we like to stick things in clearly defined boxes and treat software development as one big box. But I think it isn&#x27;t.<p>I believe that the frustration most people have with interviewing is that the wrong style of interviewing is applied for a certain role. E.g. a company that is clearly on the crafts&#x2F;creative side is hiring like they&#x27;re Google (because they read about how Google does it on the Internet).<p>My experience is that in most situations whiteboard interviews don&#x27;t contribute a single thing. A good conversation about making software usually does a lot more. But I guess for inexperienced interviewers, a whiteboard is an easy tool to hide behind.
llaolleh超过 7 年前
I don&#x27;t think it&#x27;s a complete waste of time to do these practice interview problems. At the end of the day it reinforces your understanding of core computer science topics and helps you think out of the box(barring stupid problems where you need to know a specific formula). Then there are situations where you need a deep understanding of these algorithms to choose them for specific situations irrelevant of implementation.
fahadkhan超过 7 年前
I find this useful <a href="https:&#x2F;&#x2F;airtable.com&#x2F;shr5TdnpVYVTpeRrN&#x2F;tbluCbToxQ2knSLhh" rel="nofollow">https:&#x2F;&#x2F;airtable.com&#x2F;shr5TdnpVYVTpeRrN&#x2F;tbluCbToxQ2knSLhh</a><p>Companies interested getting placed on it should raise PRs on <a href="https:&#x2F;&#x2F;github.com&#x2F;poteto&#x2F;hiring-without-whiteboards" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;poteto&#x2F;hiring-without-whiteboards</a>
dahart超过 7 年前
&gt; After stopping these practice, I leverage the spare time for following tasks: read C++ classical books and learn more about standard libraries<p>I might suggest this is the best way to study for whiteboard tests in the first place. Practicing for them might only help if you have other people pick the questions and watch you.<p>The last interview I had, I completely bombed the whiteboard test, but not for technical reasons. I probably wouldn&#x27;t have been able to practice my way out of it. Luckily, the company also had a live coding test which I aced, and they hired me, so it didn&#x27;t matter.<p>As a manager and hiring interviewer, I have to say that I find whiteboard tests moderately useful, even though I agree with pretty much all the criticisms here so far.<p>The point of it is to try to see how the candidate thinks on their feet, watch them talk their way through a problem without StackOverflow at their fingertips. It almost never matters if the whiteboard code has bugs, the question is more about the process, not the result.
ryandrake超过 7 年前
I&#x27;m definitely not trying to be snarky or mean here--just offering my take on this after reading the article. English is obviously the author&#x27;s second language, and I would offer that practicing English and learning better fluency&#x2F;grammar&#x2F;spelling would help an order of magnitude more than practicing computer science quizzes and coding challenges. Many of the candidates and developers I encounter may or may not be good software engineers--I don&#x27;t know because their language skills are lacking, and they are unable to convey it through spoken or written word.<p>I&#x27;m learning a second language myself and I feel your pain. I would never want to interview in a second language. However, in the US workforce, English proficiency is critical and such soft skills can often mean promotion into management, increased responsibility, and technical leadership positions.
cube00超过 7 年前
I&#x27;d rather someone who knows which library has the required function already implemented in it rather then spending days enacting &quot;not invented here&quot;
Daycrawler超过 7 年前
The first part of the article where the author explains how time-consuming it is to study algorithms can really be applied to any field of study. The fact that the author spends much time learning algorithm doesn&#x27;t mean that he&#x27;s &quot;dumb&quot; as he humbly presents himself, it just means that he&#x27;s just getting started. It&#x27;s like trying to pick up guitar and when you realize that it really is hard and takes time you decide after one month that you&#x27;re not a talented guitar player.<p>Then there the second part where the author considers algorithmic knowledge as useless (or not so much useless at best) because the tools available to a programmer already implement any relevant algorithm.<p>There&#x27;s some ironic parallel between this way of thinking and algorithmic proficiency, actually. Many algorithms work by leveraging data structures whose understanding of internal working isn&#x27;t needed. For example, one way to efficiently merge N sorted list into one big sorted list is to use a priority queue. Do you need to know how a priority queue is implemented to find this solution? Not at all. You just need to know the interface it offers, and the complexity of each method. Finding the k-th smallest element in a list can be done using a heap. Do you need to know how a heap is implemented to find this solution? Not at all. You just need to know what a heap does.<p>Really, studying algorithms is like studying the C++ standard library, except that instead of knowing about classes and methods as your toolbox, you know data structures (and common patterns) as your toolbox. Of course any curious mind will then go deeper and actually read about how those things are implemented, building an even better understanding of the foundations, and solving even deeper problems with it.<p>While being an interesting parallel, this doesn&#x27;t really answers the author&#x27;s questioning about: what&#x27;s the point? Which brings us to what the author forgot to address in his article: white board test. The title of article sets the scene with someone wanting to find a job in one of those big tech company hiring people who can pass the whiteboard tests, but then who somehow... forget about it and decides to abandon this endeavor? Well, fair enough, but to be perfectly honest, while Google &amp; Cie engineers certainly aren&#x27;t spinning up algorithms on a daily basis like mad computer scientists, the engineering level there is still quite high. So there&#x27;s definitely some basis in wanting to pass the whiteboard interview, mostly working with intelligent people.
barkingcat超过 7 年前
Practicing white board tests is more about learning composure, maintaining cool under pressure (and under observation), and finding a way to think and reason about problems that &quot;shows your work.&quot;<p>Many times people can solve problems, but can&#x27;t verbalise them enough to make a white board test be an accurate indication of how they think.<p>It&#x27;s not about practicing to solve any specific problem - that kind of &quot;practice&quot; is counterproductive as the poster realised.
jfasi超过 7 年前
I regularly conduct interviews at one of the more infamous &quot;whiteboard interview&quot; companies. At the end of my interviews I like to take five to ten minutes to answer whatever questions the candidate might have about myself, the company, the process, etc. One time I had a candidate who absolutely bombed the interview asked me a question that expressed a similar sentiment: why do you guys place such a heavy emphasis on basic data structures and algorithms when standard libraries and software packages offer easy to use, efficient implementations?<p>To be honest, this is a fair question. For someone whose entire career has been spent coding on a single machine, with data that fits in memory, reusing pre-written O(NlogN) or faster algorithms, often with a single thread, I can see why they would ask this question.<p>The answer is: for what we do, there is no off the shelf solution. Our datasets almost never fit on a single machine, to the point where we make jokes about five terabytes of data being so small we forgot how to count that low. Our algorithms are almost all novel: one of my favorite interview questions starts off as a trivial string manipulation problem but then branches out into easy-to-express, easy-to-understand variations that actually require some very sophisticated algorithms to solve. When it comes to pre-built software, even our internal turnkey database solutions are so sophisticated they require a solid understanding of distributed systems and operating systems to avoid common pitfalls.<p>Honestly, not every person is up to the task of working in this environment. Our workforce skews towards people with degrees in CS from high-ranking universities not because we&#x27;re snobby but because there are few places that teach this particular combination of skillsets. You can probably go your entire career without working for us or on the sorts of problems we try to solve, and you can just as well prepare for interviews by focusing on practical matters and not deeper algorithms and data structures knowledge. And that&#x27;s fine, I&#x27;m sure there are plenty of positions out there for you.<p>But if you do, don&#x27;t come complaining to me that our interview process is too hard or the prep process is too impractical or that we&#x27;re being unfair because none of the stuff we test for is practical in the real world. You can have an easy time prepping for my interview or a job at my company, but not both.<p>EDIT: There is something to be said for companies that cargo cult this interview process. True, if someone can pass this interview process they’re probably pretty decent, but you have to be honest with yourself what sort of problems you’ll be solving. OP, meanwhile, expressed an feeling of blanket pointlessness without saying what kind of job he’s looking for. I hope I’ve made clear this is counterproductive for companies like Facebook, Google, Microsoft, etc.
评论 #16384465 未加载
评论 #16384728 未加载
Double_a_92超过 7 年前
You Don&#x27;t Say?
thesmallestcat超过 7 年前
This is like saying running for exercise is a waste of time because you could be driving instead. It&#x27;s not about knowing a particular sort algorithm. It&#x27;s about the discipline of solving performance problems in the small. Knowing how quicksort works isn&#x27;t that helpful. Being accustomed to the thought processes that led to the development of quicksort is important in any non-trivial programming activity. I&#x27;m not writing Google-scale services, but I regularly encounter algorithm design problems on the job, and they&#x27;re never the exact algorithm you studied for some white board exam. I think the author is approaching algorithm study with the wrong attitude.
评论 #16384350 未加载
评论 #16384422 未加载