14 ms·
Will the real programmers please stand up?
- pmjordan 16y agoOver the last 2-3 years, I think RethinkDB has literally been the only company that has made me think "wow, I think I'd really enjoy working there". (I'm self-employed) I find it baffling they can't find enough people. Are the cool kids really only doing web apps these days? What about all the army of Objective-C programmers that Apple has been assembling?
- coffeemug 16y agoApply!
- pmjordan 16y agoHah, I might have to if our product tanks upon launch. ;-) (also SSD related, but workstation/laptop-based, not DB/Server)
- jpablo 16y agoDo you guys hire people from outside of the USA ?
- pmjordan 16y agoI'd have thought that with the trouble they're having hiring people, an H1B shouldn't be too hard to come by. Even EB2 maybe. (exceptional ability)
- GrandMasterBirt 16y agoSorry, live in wrong state, and I don't code in C. Though I'd love to pick it up, can't be harder than java or javascript, just some things you take for granted like references vs pointers have to be deliberately thought of until they become second nature. O well lets wait till the kids move out and I have free time to pick this stuff up :)
- lani 16y agoEval!
- yummyfajitas 16y agoA good chunk of the cool kids probably want to make more than $125k/year. http://rethinkdb.com/jobs/ http://rethinkdb.com/jobs/
- pmjordan 16y agoIt'd be a step up from what I'm making with contracting (and comparatively expensive), but this is Europe, and I'm clueless with regard to cost of living in the bay area. Besides, where else do you get to work on problems like that? But judging by the other responses on this thread, my idea of fun doesn't seem to be widely shared.
- Alex63 16y agoI haven't worked as a "programmer" or "software engineer" for a few years, but looking at GlassDoor.com for evidence, $125K seems like a pretty good salary. Is that an unrealistic salary for a programmer today? Are you referring to the greater rewards of being an entrepeneur/founder?
- timr 16y agoFor experienced database engineers, $125k isn't an impressive number, and it's the highest salary listed at rethink -- meaning that you're unlikely to get that number without being judged so "senior" by the rest of the company that you merit the highest salary possible. I've always thought that their choice to post those salary numbers was a bit foolish. Far better to negotiate a low-ball offer for an experienced candidate after selling them on your company during the interview, than to have them avoid interviewing at all because your salary ranges are fixed and low for the industry.
- Alex63 16y agoAgain, Glassdoor.com doesn't seem to have a lot of data showing that database engineer salaries above $125K are widespread. I'm interested in any evidence supporting that view (relates to some other conversations I've had recently).
- plinkplonk 16y ago"Are the cool kids really only doing web apps these days? What about all the army of Objective-C programmers that Apple has been assembling?" Something of a tangent, but a lot of cool kids don't work in the USA and have no intention of moving. I know a dozen or so people here in Bangalore who'd breeze through these questions. The flip side is of course that I can think of only a dozen or so people and this in a city (Bangalore) with tens of hundreds of thousands of "programmers" in it.
- deleted 16y ago[deleted]
- PieSquared 16y agoHuh, I think it's time to learn something. I can write C code to reverse a linked list, or discuss the asymptotic efficiency of a bunch of data structures in my sleep... but I clearly don't have enough experience with threading if I had to google what a "condition variable" was, or had to make sure my intuitive notions about cooperative and preemptive multitasking were right. Always nice to be reminded that you don't actually know anything.
- pohl 16y agoI have a tangential question: is there a name for the kind of diagram one sees on this wikipedia page involving rooms & doors? I've never seen it before. http://en.wikipedia.org/wiki/Condition_variable http://en.wikipedia.org/wiki/Condition_variable
- lmkg 16y agoIt looks like a variant of a basic floorplan, the sort you would use when designing the layout of your office. I've never seen it used with respect to algorithms.
- ygd 16y agoIt seems they're all some type of "monitor".
- deadlockfeet 16y agofrom my CS class last sem I clearly remeber this one: Semaphores and Monitors are different. Monitors are implemented by compiler to make sure that thread dont mess up with the memmory.However Semaphores are implemented by the porgrammers. A semaphore contains a value on which either up or down can be called to indicate its status also it has a queue which contains process which are sleeping and are waiting for the up on the semaphore to be called.
- deleted 16y ago[deleted]
- 16y ago
- deleted 16y ago[deleted]
- noelwelsh 16y agoIn my mind condition variables are stored under "crap I don't need to know because we have better abstractions". I can understand why RethinkDB will be messing around with semaphores (or monitors aka condition variables) but for most programs there are far better ways to organise concurrency. Java recognises this -- experience showed the synchronized (monitor) approach to concurrency to be too unwieldy and it was superseded fairly quickly by java.util.concurrent and friends. Way back in 2000 we were using Doug Lea's concurrency library, which formed the basis for java.util.concurrent. I certainly could use semaphores but it would certainly take me some time to adjust my thinking to that primitive model.
- GrandMasterBirt 16y agoHad no idea what Condition Variables were. Honestly. However after reading up on them I realized I've been using them for a looooong time, they just seemed so natural a solution to a problem. Most simple patterns can be derived by yourself without any help because they really fit the solution so well that it feels unnatural to not think of them. Some of the more interesting ones are removing complexities :)
- JoeAltmaier 16y agoThat's an applications-programmer answer. But who did you think wrote java.util.concurrent? The article is by someone who needs systems programmers, who do algorithmic work, not applications programmers, who put together large state-diagram code.
- noelwelsh 16y agoDoug Lea is my guess. We were writing algorithms, but they were machine learning algorithms so implementing our own concurrency abstractions wasn't a win.
- GFischer 16y agoHah, I suspected as much from the article's title. Systems Programmers = "real" programmers (for the article's writers) Application Programmers (or even worse, Information Systems guys like myself) are not "real" programmers to them - and to be honest, I don't believe myself a "real" programmer sometimes as well.
- ydant 16y agoC and C++ seem to be the languages of choice lately for the interview complaints. I wonder if that's indicative of the language itself or of the number of people who actually program in those languages. Of the questions / problems expressed in the article, I think I have a decent grasp of most of them, and I don't program in C or language with similar ideas. I did learn with C (and then expand that knowledge to C++), but that's been a long time ago. To not be able to traverse a linked-list, though, that baffles me. Simply shouldn't be appling for a job programming in C or C++ and not understand linked lists.
- habitue 16y agoIf you have to traverse a linked list at any time to reverse it, you're doing it wrong.
- roel_v 16y agoHow would you reverse a singly linked list without traversing it? (and without knowing implementation details too I guess - doing pointer arithmetic and storing the size somewhere else doesn't count).
- mjw 16y agoI think he means: if you have to traverse it without building up a result (or doing some in-place modification) as you go - then you're doing it wrong. Obviously you gotta traverse the thing at least once.
- ydant 16y agoIf that's what he meant, his comment was pretty much useless. Anyway, I misread "traverse" for "reverse", hence my incredulous comment. Perhaps traverse means different things to the two of us.
- jallmann 16y agoIt's not about the language, it's about how you approach the problem. Maybe their rationale is that using C discourages the use of built-in constructs or libs that circumvent doing the real work. For this type of problem, it also hints at your understanding of indirection and pointers as opposed to stack allocated values, etc. Pretty much a pre-requisite if you're doing anything remotely performance-critical, like rethinkdb is. When you're dealing with a higher level language, that's all abstracted away by references.
- starkfist 16y agoNobody in America has to do this kind of work anymore. Some do it by choice but usually work on something they are really into, like Pro-Tools or iPhone software, or something where you make a lot more money, like Wall Street (or iPhone software). I have not had to do anything remotely resembling reversing a linked list in C since 1994. Since then, the further I've gotten away from C and algorithms, the more I've gotten paid... Your best bet is to recruit in Russia/Eastern Europe/India/China. Edit: before I get downvoted into oblivion, I didn't mean this disparagingly, I am just being matter of fact. It will be easier to hire people from those countries. Most Americans who do this work already have a job. Most Americans looking for a job, don't want to do this, or don't know how. I have worked with guys from Croatia who helped write some database driver code for me and were excellent.
- JoeAltmaier 16y agoI do this kind of work daily. I work in drivers, protocols and other operating system places. No need to denigrate folks who do (or don't do) this kind of programming. Its just the difference between an applications programmer (who codes state-transitions for large state machines) and system programmers (who create those libraries everybody else uses).
- IgorPartola 16y agoNobody in America (meaning no programmers) has a reason not to know this stuff. You don't have to do it on daily basis to understand it. I have never in my life had to reverse a linked list, but I know how to do it. I don't see how these are unreasonable questions to ask, especially for a company that develops a database engine.
- starkfist 16y agoThey aren't unreasonable demands, I'm just suggesting it's going to be easier to find people outside of the USA.
- IgorPartola 16y agoHeh well that's true. My father was an one such developer before he came here. The only problem is that if you outsource like that you might or might not get quite what you want. You either have really smart folks working for you or you are dealing with a scam and don't know it. Lots of success and horror stories on this front. For me face to face time is very important so I would look elsewhere first but you may be right.
- adn37 16y agoThat was funny to go pen & paper to do the reversal of the linked list, C style, like in the old days. (aka, Java coding is tasteless)
- brown9-2 16y agoWhat does this mean? The article also states they ask other questions in which the candidate can respond in any language of their choice. The language isn't important here, it's knowing the algorithm and being able to put your ideas into code. You could ask the same exact question in Java and you should be able to get the same answer from people.
- substack 16y agoThe language is absolutely important, since in haskell I could just: > reverse [1,2,3,4] or if I couldn't use the Prelude (yikes!) reverse [x] = [x] reverse (x:xs) = reverse xs ++ [x] > reverse [1,2,3,4] The problem is that linked list traversal is a solved problem. Why not throw a novel and interesting problem at candidates? That way you could gain some insight into how they go about solving problems instead of how good the candidate is at memorizing other people's solutions that they could just as easily look up in a search engine in a few minutes.
- jimbokun 16y agoThese are the kind of questions where I might draw a blank if asked out of the blue, but I make sure to bone up on before going into any kind of technical interview.
- alttab 16y agoThis actually made me feel better about what I do know. But then again, my course work included a course in operating systems where the main project was to write the multi-threading architecture, system call infrastructure, virtual memory, and file system for a bootable x86 OS. I went to Virginia Tech but the course's origins is Stanford. Best class I ever took.
- scott_s 16y agoYou may be curious to know that's not a required course anymore. It's now a senior level elective. The required junior level course is now Computer Systems (http://courses.cs.vt.edu/~cs3214/ http://courses.cs.vt.edu/~cs3214/), taught by the same professor. I was a TA for it last spring and I'll probably TA it again in the fall. Although now that I look over the listed courses, I don't see a senior level OS class.
- alttab 16y agoInteresting. I remember the course being very difficult. I wonder if it was "too hard" so they made it optional. A mistake if you ask me, that class made me a better programmer than any other undergraduate course. Although, the only ones that would take it now would want to.
- scott_s 16y agoI had a similar reaction when I first heard about it, but after TAing Computer Systems, I think the replacement is still difficult. It's also perhaps more relevant to more people. Very few people will ever work inside an OS kernel. Many more people will have to code against an OS kernel. Further, I find that it codifies many concepts and techniques that I had to learn and develop on my own in grad school. Computer Systems still introduces many of the concepts that OS does, it's just done from the perspective of user-land, not kernel-land.
- dkarl 16y agoSimilar experience here. A shocking number of people simply can't code. I started giving people a "simple" whiteboard programming question: write code, in any real language (i.e., not pseudocode,) to print out the permutations of a string, and give me running commentary on what they were doing. The idea was, by watching them complete a simple coding task that would require a couple of iterations of design and a little bit of "debugging" at the end, I could get a feel for how they attack problems. In about a dozen interviews, nobody did it. The problem was way too hard. By the end of the cycle of interviews I had started giving lots of guidance to the candidates: asking them about permutations that their solutions would miss, asking them how many permutations their solution would print, asking how many permutations a string of length 2, 3, or 4 might have, and when they got stuck, telling them what they had right and when they went wrong. Nothing really helped, though. Perhaps it's not really so shocking. Maybe's it's just too hard in a one-hour interview. I thought it would be easy, but then again, I've never had to write code in an interview. What is shocking is how poorly people floundered. I'm pretty sure most of them couldn't have even reversed a singly linked list. In the end, I gave the best marks to the candidates who: 1. Asked whether it was okay for duplicates to appear in the output. 2. Wrote up a roughly correct (syntax errors and off-by-one errors aside) implementation of their first idea for solving the problem and explained how it worked. 3. Understood when I pointed out permutations that their solutions would miss. 4. Were a good sport about being asked to solve the problem. (Actually, nobody who failed this criteria did remotely well at the others, so it's somewhat redundant. I mention it because I was surprised that people would get crabby about being asked to write code in an interview.) Three or four of the candidates, out of about a dozen, managed to meet all four criteria. These were people who passed a phone screen! Even worse, some of the candidates who failed one or more of the four criteria above apparently shined in their other interviews, claiming to have been in charge of designing and implementing significant systems.
- lincolnq 16y agoSolving this problem (permutations) in Haskell helped me understand the list monad, which in turn helped me think about nested-loop algorithms in general and how they should be structured in code. So thanks. It was a fun exercise and I learned something. I am pretty sure I nailed it. But I have been asked questions like this at interviews and screwed them up (e.g., at Facebook, which asked me something very similar and I failed to get it right). The notable thing was that at home, sitting at my desk, I wasn't afraid of sitting silently and figuring it out. It took me about 3 minutes of silence for my brain to organize itself enough to solve the problem. I'm not willing to spend 3 minutes in silence at an interview, and yet if I just jumped in I would go down a lot of wrong alleys, become confused, and screw it up. Is there room at an interview for someone to silently figure something out, without someone waiting on you, asking to "show me your thought process"?
- amarc 16y agoyes, but only if you pay enough...
- jwr 16y agoOne thing to consider is that there are many people (myself included) who are really bad at solving problems under stress, especially next to a whiteboard. Note that this does not necessarily imply these people are useless in real-life tasks. It just means they are bad at passing exams. This is why I would never get through Google's interviewing process. Some companies (like Google) just accept the fact they will throw away some possibly good candidates because of the nature of the selection process — and that's fine, as long as you realize that. Note that I'm talking about solving problems involving abstract thinking next to a whiteboard here. The part about people not knowing the difference between cooperative and preemptive multitasking is something I fully agree with — people who do not know that should not seek a job at a company that deals with anything low-level.
- coffeemug 16y agoWe fully recognize that we have a high false negative rate. We work every day to get it lower, but unfortunately there is only so much we can do without compromising the integrity of the process.
- carterschonwald 16y agoHey Slava, I'm sorry to hear that getting good hires has been do tough. Both myself and the friend who I later referred to you guys definitely agreed that your interview process was very well designed (and pretty darn interesting too). Best of luck!
- Andys 16y agoI have a question for you. I'm comfortable answering those coding questions, but not on a whiteboard. Would you be OK if instead of writing on the white board, I whipped out my laptop and coded the answer there in front of you? If the answer is no, I would happily walk out of the interview knowing I would not be a good fit for the company.
- nradov 16y agoAs a interviewer I always give candidates a choice: white board, paper, or text editor. The majority choose paper.
- hernan7 16y agoMaking the candidates reverse a linked list over the phone? Either the job market is worse than I thought or somebody is power-tripping something awful.
- coffeemug 16y agohttp://typewith.me/ http://typewith.me/
- tkahn6 16y agoWhen you ask someone to reverse a linked list, do you mean 'in place'?
- mjw 16y agoI wondered that too. My first thought was to build it up again from new conses, as you would in lisp. But then spotted a neat in-place way to do it too. Found I absolutely had to draw a few scribbly diagrams first though.
- weaksauce 16y agoThe in place way is O(N) whereas I cannot think of a way to do it for less than O(N^2) building up the list the other way.
- kenjackson 16y agoJust copy the addresses of each node in the list to an array. Then you can make copies of each node and reverse the copy in O(n) -- if you want to do it in O(n) out-of-place.
- chc 16y agoThey're both O(N). Pseudocode for the other way: 1. copy head of list consed with nil 2. copy next item consed with previous 3. goto 2 while next item is not nil That's N*(cost of a copy and a cons). Granted, it's not as fast in absolute terms, but the slowdown is a constant factor. You're certainly not doing N operations on each item.
- jeb 16y agoI can reverse a linked list, but here's what happened on reading this article. After seeing the problem, I fired up textmate and started writing C pseudo-code to do it. I started off with first_item = l.first(); next_item = first_item.next(); Then I started writing the loop, and somewhere in there, I got confused. And then a wave of panic came over me - shit, maybe you can't do this. I shook off the thought, deleted my code, and restarted. At some point, I realised that I was always pointing at the first element. My stomach sank and I had this dreadful feeling - okay, you kind of suck as a programmer. Then my mind went blank, and I wanted to switch over and see if the answer was there. And that's with NO PRESSURE AT ALL. With someone watching me, I'd probably not even have been able to get the loop right. I have never written such a loop, but it's basic stuff, I can do this anytime. But just a little bit of pressure made me royally fuck up. Programming is thinking - you need to juggle shit in your head - if at the same time you are paying attention to what a HIRER is doing or saying, it will totally smash this ability to do shit in your head. Your programming exercise probably selects for calm people, not for good programmers.
- starkfist 16y agoOr it selects for people who do this kind of thing every day.
- amalcon 16y agoPeople who run this sort of question usually allow for a bit of partial credit. It's not pass/fail. If you write something that's wrong, but you can at least point out why it's wrong, then that's not a good answer, but it's not always an immediate disqualification.
- deadlockfeet 16y agohmm here is my solution for solving the reverse the list problem Reverse(pStart) { pOld = null pCursor =pStart while (pCursor !=null) Change(pCursor,pOld) // Passed by reference } void Change(pCursor, pOld) { temp = pCursor.next pCursor.next = pOld pOld = pCursor pCursor = temp } not syntactically correct of course, took me 5 minutes
- grogers 16y ago
- deleted 16y ago[deleted]
- angelbob 16y agoI used the linked-list question for years as well. I think our phone screen was harder -- it probably only filtered out about 60%-75% of our applicants rather than 95%. It's a good one. I have an awesome follow-up to it that it sounds like your interviewees would never get to anyway :-)
- adbge 16y ago> the interview process is something we won’t compromise on. Sounds like you're caught up in a big circlejerk, to be honest. Your interview process is terrible and that's why you aren't finding any employees. You won't compromise on your process? What? You should be less worried about your process and more worried about finding quality employees (hint: your process isn't working). Asking people to write a program over the phone isn't going to work. Have you ever written a program while on the phone? I haven't and I'm not going to. It's so far out of my comfort level that I'd probably end up looking like a moron. Your test sounds like it's too much about what a person knows and not enough about how a person performs. You'd be much better off looking at a persons resume and, if you're satisfied with that, just talking to the person instead of worrying about whether or not they can reverse a linked list in C off the top of their head. If you want them to write you some sample code, let them do it at their leisure instead of with you breathing down their neck over the phone. Frankly, reading about your interview approach just kind of pisses me off. What's more likely: all the candidates suck or your interview process sucks?
- starkfist 16y agoIn the OP's defense, this is how Google interviews, and they've done ok.
- chc 16y agoGoogle can afford to be ridiculous. Practically everybody would like to work for Google, so they can afford to have a high false negative rate — even if they reject 99% of good candidates, they can probably still fill their staffing needs. RandomCompanySoft, on the other hand, might only get five good candidates for a given position — so if they only recognize one out of every 10 good programmers, they can't find anybody with any skill.
- starkfist 16y agoI disagree. Google can afford to hire duds because they have infinite money. A small startup cannot afford to hire anyone they don't need. It's better to hire nobody at all than to hire someone who isn't going to work out.
- alanh 16y agoEDIT: Has anyone else had OK experiences with on-the-spot programming as they were interviewed? </edit> I don’t get all the people saying that most people can’t code under the pressure of an interview. What’s the big deal? It’s one function. I have certainly been asked technical questions in interviews, including to write code on a whiteboard, and it’s no big deal — I have missed a bracket or two, or been slightly off, but if it’s 95% right that’s good enough for the interviewer. I’m not Mr. Cool, either. Finals, deadlines, and papers all really stressed me out in school (mere months ago). I can just code alright and I understand the tech. I just don’t get it. I also don’t understand what the alternative is: just take people at their word they are great programmers?
- varjag 16y agoDepends on complexity. Would you like to write a 4-hour test assignment that boils down to partial sort of dependency graph (true story)? Oh and no pseudocode, it has to compile and run.
- alanh 16y agoThat sounds quite rough, but that’s not FizzBuzz or the kind of function described in the article. Good point, though.
- cantastoria 16y agoI also don’t understand what the alternative is: just take people at their word they are great programmers? We've had great success giving candidates a week to design and implement a small application from end to end. It really let's you see everything all at once. Can they design? Good comments? Good data structure selection? It's the best of all worlds. The candidate has time to really show off their ability, you'll get a much more holistic view of their skills and it puts them equal footing with the interviewer because they've had a lot time to think about the problem. We found that whiteboard coding questions tend to favor "geek jocks" that are really just good test takers.
- alanh 16y ago
- pkrumins 16y agoDon't ask the candidates for silly resumes. Ask for their github repos and blogs. I mean who cares what your education, background, and previous job experience is? All of that is irrelevant. What matters is the code they have written. I want to see the code. The best developers will have thriving github repos and they'll be enthusiastic to write about what they are coding on their blogs. The perfect job application form has to have just two fields `Github URL: [.........]` and `Blog URL: [.........]`. Everything else is irrelevant. That's how I am going to hire.
- sghael 16y agoI generally agree that it matters more what you've actually done or created, not what you say on a resume. But specifically when it comes to asking for the Github url (or the like): that assumes that the code they have worked on is open source. There are plenty of good hires out there that may not have participated in open source but still have plenty of code they've created. I think asking for a public repo is too heavily weighted towards open-source wonks. I'm content asking the candidate to point me to something they've created. I work on webapps so presumably for the candidate that would be a public facing website. And then i study it. And then I grill them hard on the details of their implementation.
- substack 16y agoThis is a good point but at the same point not many employers have this strategy so I suspect there is plenty of underemployment among people writing open source given the level of skill. The hiring strategy that pkrumins advocates seems pretty sensible for a business that is already deeply familiar with the open source world.
- tomjen3 16y agoI don't really see much point in writing open source software - either I keep it to myself (isn't really good enough to release, or only designed to solve my problem) or I spend my time doing contract work. In addition I find git to be fostering bad habbits (no default push of private branches), and github to be an abomination (stuff that relates to my code and source control should not be accessed in a 3th party website, but in the tool itself).
- logic 16y agoInteresting (to me) observation: I found I spent significantly more time on the scaffolding for this problem to prove my answer correct, than on the answer itself. (I'm one of those folks addicted to "FizzBuzz"-esque toy problems.) I probably spent five minutes at most working out a reasonable way to do this in-place with a single pass, but spent 20-30 minutes reassuring myself that I had it right for all cases. These kinds of problems are always interesting to me: they have simple and obvious (after some thinking) answers, but probably aren't something you've touched in a significant amount of time, because nobody reinvents the wheel like this day-to-day. They're very satisfying in a "back to basics" kind of way.
- orp 16y agoWhen I interview programmers I start off with this question: Write a function in C (on the whiteboard) that takes an array of integers and returns its sum. I explicitly explain to candidates that this is a warm-up question to start the interview, and that I'm looking for the textbook solution, no tricks. The advantages are: 1. It takes a reasonable candidate 3 minutes to write down the answer. 2. Answering a question correctly gives them confidence, always important in an interview. 3. It provides a good basis for a little advanced discussion (overflow, speed, error handling, supporting infinitely large numbers, etc). Amazingly enough, some candidates have actually failed this...
- ivenkys 16y agoThis is the right approach. If an interview is like dating/flirting then you don't start by asking the prospective partner about their life philosophy you start by talking about the weather. "Amazingly enough, some candidates have actually failed this..." - that is just sad.
- timwiseman 16y agoWhen I have done interviews, I too was truly surprised by how many "programmers" could not program even simple things. But I do think you should realize what type of programmer you are looking for. Most of their questions mentioned assume a knowledge of C. I have not used C since high school, even in college it was optional for CS majors, and a lot of programmers majored in things other than CS (I started in math, I know another truly good programmer that started in nuclear physics). This is great if you are looking for C programmers, but I would not consider them basic things any developer should know.
- Parabola 16y agoI always just do it recursively and go "oh did you mean efficiently?" I mean reversing a link list is literally reverse the tail of the list recursively then append the head to the end. Base case is the empty list. Maybe 8 lines of C for reverse, a few more for appending to the end (easy) and the struct for a Node.
- heatdeath 16y agovoid reverse_list(head) { struct node* current = head; struct node* last = NULL; struct node* next; while(current != NULL) { next = current->next; current->next = last; last = current; current = next; } }
- wangwei 16y agoHello, RethinkDB. You get what you pay for. You don't expect to buy a diamond for 10 bucks , do you?
- juicebox 16y agoYou need to give a programmer a task, then let him get back to you in a day or two. Give him something that you can't find a solution to on Google, but isn't so hard that it couldn't be done in an hour or two. Sitting there putting pressure on the programmer working is just a prick move. If you gave the same test to a carpenter and asked him to build a bird house and the outcome would decide whether he could pay rent this month, he would cut his damn hand off. Guaranteed.
- Tycho 16y agoMaybe you're doing things the wrong way round? Is there no way you can have potential candidates complete a programming task/test and THEN, if they're successful, send you their CVs? Whether using Codility or something you devise yourselves. It bugs me that no matter how much I practice programming and know my stuff, my application might get glossed over in favour of some non-programming douche with an immaculate CV.
- cellularmitosis 16y agoIt seems it would be great to have the inverse of codility, where job seekers take a bunch of coding tests, and then employers start sending them job offers based on their scores. it was only after completing their warm-up problem that I realized that wasn't the case, and that in order to have access to any of the other programming problems (ie, in order to get to the fun stuff), I'd first have to set about finding an employer who has signed up with their service :(
- 16s 16y agoIf I was asked this question and I could express the answer in C++, then I would say list::reverse. It seems (to me) that more important than this question is knowing when to use one data structure over another (pros and cons) is more important than being able to manipulate one specific data structure during an interview process.