Please create an account to participate in the Slashdot moderation system

 



Forgot your password?
typodupeerror
×

Selecting Against Experience - Do Employers Know? 292

IBitOBear asks: "A couple days ago I did 'the interview loop' at that leading online retailer. Over the course of six hours I was repeatedly introduced to a guy in his early twenties, who would then ask me to write out code on a white-board for a problem that you might find in the study guide for a 200-level computer science class. I have 20 years of experience in programming and systems design. And in several cases the interviewers were vague, semantically incorrect, or self-contradictory. Interviewer blunders included not understanding that non-normal forms in databases -can be- more correct or efficient when the domain of a data is extremely limited; or choosing a leader among N candidates -is- a byzantine agreement problem. In short, the loop would have been perfect to weed out some guy getting his first job fresh out of school, but it definitely exerted selection pressure towards excluding experienced candidates. So employers, what are you doing to make sure that you are not culling out candidates with the low-ball? Job seekers, what do you do when you find yourself trapped in a sophomore study group?"
This discussion has been archived. No new comments can be posted.

Selecting Against Experience - Do Employers Know?

Comments Filter:
  • Walk away. (Score:5, Insightful)

    by Spazmania ( 174582 ) on Thursday August 24, 2006 @09:58PM (#15975110) Homepage
    Job seekers, what do you do when you find yourself trapped in a sophomore study group?

    Walk away. An interview is a two-way street: they're evaluating your ability to do the job but you're also evaluating their ability to provide a worthwhile work environment. If they fail your test, walk away.
  • by Surt ( 22457 ) on Thursday August 24, 2006 @10:01PM (#15975124) Homepage Journal
    Probably you want to realize the company doesn't care enough about its hiring practices to have a bright future, and move on.

    If you're an employer, you want to make sure that your interviewers have a strong enough grasp of the interview questions not to be wrong about possible valid answers. Allowing inexperienced developers to interview candidates is a recipe for disaster. You don't build a quality company by delegating this task to the inexperienced. You accept that this is work that is best done by your most experienced people, and that it is one of the most valuable uses of their time that you can make.

  • 20 years? So what? (Score:5, Insightful)

    by zer0man ( 5467 ) on Thursday August 24, 2006 @10:04PM (#15975131) Homepage
    20 years experience doesn't mean much. I have heard/seen candidates bullying interviewers with their credintials (I've got a PhD in Computer Science) or experience (I've been coding since you were in diapers) and yet still fail to reverse a linked list in-place, or fail to explain the basic idea of hashing.

    It bothers me, as an engineer with some experience, to be subjected to the humiliation of 'the interview loop', yet having been involved in hiring I absoluately see why it is needed -- people, well, inflate their credentials when it comes to looking for work. So companies essentially ignore past work experience and ask questions relating to specific engineering problems to try to see what kind of developer you are. Sometimes the interviewer is bad, but that's why it's a "loop" there are at least 4 of them, and one of them should be a more 'senior' interviewer who holds more sway (that is if i'm guessing correctly at your 'leading online retailer').

    True, the system isn't perfect. You could be a brilliant engineer, but can't reverse a string. But with the amount of money that is invested into an engineer by the company as high as it is, they company doesn't want to be wrong.
  • Heh (Score:3, Insightful)

    by tgd ( 2822 ) on Thursday August 24, 2006 @10:10PM (#15975163)
    Anyone who has interviewed at that "online retailer" knows exactly what you're talking about. In fact, it leaves no doubt among those who have who you're talking about.

    Its a silly process... they pride themselves on Google-esque hiring practices, but miss the boat. It was the one and only place with a process more rediculous than the Evil Empire(tm).

    My suggestion? Laugh at the guys giving it who imagine themselves big fish in a big pond, leave confident you've got more experience then them, and go work at a company with a better corporate culture. They're a struggling company stuck in the dot-com mentality. Unless you like that (and I'd have to guess with 20 years experience, you've outgrown sardine can working conditions and ego trips), you'll be far happier not working through interviews like that... use them as a sign of how the company works, and look elsewhere.

    There are FAR better places to work.
  • by tgd ( 2822 ) on Thursday August 24, 2006 @10:18PM (#15975200)
    The problem with the position you described in your reply is that its not really applicable to software development.

    An engineer with 20 years experience knows a few things:

    1) He hasn't had to reverse a linked list in 23 years.
    2) There are framework functions to reverse a linked list. Who cares how they work.

    Questions like that are VERY age-biased. Because only someone right out of school, or someone with their head so buried in the code would remember that on the spot. Experienced engineers will tell you how to manage the development process, how to write code that is engineered to be testable, can actually explain software architecture and will do a FAR better job solving real world problems.

    Why? Even if you DO need to reverse a linked list in a situation where you can't use framework functions to do it, an experienced engineer can pretty easily punch in a few google keywords.

    No amount of googling will give a kid out of school an understanding of how you really engineer software in the real world.

    The only time I would consider asking questions like that to an experienced engineer (and I ripped off a similar one I got asked at Microsoft way back when during an interview today) is if I've already decided someone isn't a fit for some totally unrelated reason and I need a quick way to quantify that.
  • As an employer ... (Score:4, Insightful)

    by rebill ( 87977 ) on Thursday August 24, 2006 @10:21PM (#15975217) Journal

    I would already be looking to weed you out. Your disdain for the younger employees with junior technical skills is pretty obvious. As a manager, I would immediately wonder how you would treat those junior employees, and I would worry that you would regular belittle their knowledge, deride them for their mistakes and restort to intimidation to squelch a junior employee's idea that you happen to dislike.

    Of course, I worked with someone who acted in the manner I describe. He actually managed to cost the company we both worked for many hours of my time, as he chose to display his extensive knowledge at every opportunity, and I found myself translating what he was saying into something that the junior employees could understand. Oh, and thanks - I had never heard of the Byzantine Generals problem. But your reference to it is something that I would take as a warning sign.

    So, like previous posters, my suggestion is: just walk away. You are not built to work for a company like that.

  • by IBitOBear ( 410965 ) on Thursday August 24, 2006 @10:37PM (#15975268) Homepage Journal
    Actually, I showed no disdain at all. I carefully and cheerfully complied. I even kept the mood up and remained positive through the entire process. It was the odd post-interview feedback that got my goat a little bit. 8-)

    I actually like working with younger people as a general rule as it keeps the mind sharp and provides a continuous influx of fresh eyes to stave off the dogmatic ossification I often encounter in my peers.

    There is nothing wrong with going back to first principles. I just found the failure to transcend first principles (and the fact that a couple of the guys got all grumpy when they didn't understand my solutions to their problems as stated and as revised) to be something of a warning flag.

    The "ask a question of sublime simplicity" approach can only prove effective if the questioner can understand an answer of sublime subtlety.
  • by GoofyBoy ( 44399 ) on Thursday August 24, 2006 @10:45PM (#15975299) Journal
    "I have 20 years of experience in programming and systems design."

    Um.. Good for you. Are we suppose to be impressed? It just means that you had a job title for 20 years.

    Do you have anything to show for the 20 years? Thats what these silly little interview questions, and your answers, are suppose to show.

    "And in several cases the interviewers were vague, semantically incorrect, or self-contradictory."

    In all of your 20 years, haven't you ever had requirements like this? I have 10 years and I encounter them so much, I get suprised when they don't show at least one of the above qualities.

    How do you handle this sort of situation in the workplace? Curl up in a corner and start crying? Run over to slashdot and complain about your horrific job?

    Answer the question as you would do as an employee. Again, the questions are there to allow you to show you how much you know.

    I'm sorry if I sound a little rough, but its just arrogant to be outraged by interview questions that are below you just because you believe that you have 20 years you are entitled to not answer questions.
  • by a_nonamiss ( 743253 ) on Thursday August 24, 2006 @10:47PM (#15975314)
    and probably will pass on more experienced and stronger candidates.
    You left out "more expensive." Yeah, sure, it's age discrimination, and it's illegal. Doesn't mean it doesn't happen all the time. They just have to be creative as to how they weed out the old guys.
  • by AuMatar ( 183847 ) on Thursday August 24, 2006 @10:48PM (#15975320)
    1) He hasn't had to reverse a linked list in 23 years.


    He doesn't need to know it immediately, but he damn sure ought to be able to figure it out quickly.

    2) There are framework functions to reverse a linked list. Who cares how they work.


    If you don't know how it works, you don't know how a list is used. You don't know when its appropriate to use it versus other data structures. If needed, you wouldn't be able to create a hybrid data structure. So yes, it matters if you can't figure it out with a minute or 2 of thought.

    If you can't get simple problems like that, its not worth my time to do the rest of the evaluation.
  • Re:Walk away. (Score:4, Insightful)

    by bahwi ( 43111 ) on Thursday August 24, 2006 @10:54PM (#15975335)
    Agreed, I do freelancing contracting, back when I was looking for more contract jobs, I went to a guy at a company after sending him my portfolio and website and everything, he asked for a resume, I simply told him he didn't know what's he looking for and walked out. Really freaked him out, turns out it would be a job job not a freelance job, definately not what I was looking for.
  • by Guppy06 ( 410832 ) on Thursday August 24, 2006 @10:54PM (#15975337)
    "Also, there are a few things to be aware of... part of the interview process intentionally (from talking to insiders there, and at Microsoft) introduces vagueness, incorrectness, and other troubling aspects to problem solving. One of the things they're trying to observe is how a candidate deals with the obstacles."

    Never attribute to malice that which is adequately explained by stupidity.
  • by Tronster ( 25566 ) on Thursday August 24, 2006 @11:39PM (#15975557) Homepage
    By now I've performed about 80-100 tech interviews for a variety of IT companies. I will ask the brain dead questions, but ramp up accordingly. I essentially want to ask just enough to know whether or not I can say with confidence "HIRE" or "NO HIRE". ( Recommend reading: Joel On Software [joelonsoftware.com] )

    If relevant, I will ask for some white-boarding of UML, or a code fragment to perform a simple task.

    I do all of this because, I have found that age means nothing. I've worked with some seasoned geeks who taught my colleagues and I alot on the latest technologies. I've also worked with a guy I hired who had well over 20 years experiences and was absolutely useless. I can personally say the same to guys just a few years in the field.

    It's a crap shoot...and I don't like to gamble.

    Another way I look at it... I've also been on the receiving end of an interview at least a dozen times. When this happens I try to show my patience when going through the brain-dead questions, because I know acting rushed or anxious is a sure way to send bad mojo to the interviewer, even if I've nailed all the tech questions.

    I know I'm interviewing for a good contract when the interview switches to more challenging questions based on my answers. If the interviewer just runs through the list or makes self-contradictory statements, there is a good chance it's either a manager who doesn't know the subject matter or possibly a technie called in to give the interview and isn't good at it. At which point, it can be a fun challenge to turn up the charm with the interview, because I know the questions coming are no sweat. The degree of confidence shows leadership skills and does stick in their mind when making decisions. (Especially if the interviewer WAS a non-technie.)

    P.S.: Also regarding semantically incorrect or self-contradictory statements... I sometimes deliberately throw out a misstatement to see how the interviewee responds (if at all).

    --
    Help me find 3 kidnapped children! [tronster.com]
    Cheers.
  • by Skreems ( 598317 ) on Friday August 25, 2006 @12:01AM (#15975671) Homepage
    And yet these guys have probably been writing successful software systems for years, what's going on?
    It could be any of a number of things: for one, we only have their word that they've written all these successful software systems. A resume gets you in the door, but it's useless after that. We don't know the true complexity of the system, we don't know the quality of your peers on the job, and we don't know how well the final product really worked.

    Secondly, I've known some people that could write software that "worked", but it was far from pretty, and it took an inordinate amount of time. We need someone who can code at a reasonable speed, where other companies, particularly non-tech companies who just have some internal tool programmers, may not care as much.

    Finally, it doesn't matter so much whether you actually solve the problem, but the work process that goes into it is key. If you stare at the board and just write some stuff, it tells me nothing. That's why I like simple questions posed in a slightly vague manner. I leave a lot of things undefined about the problem to see what the person will do. They can choose to assume things, which is fine as long as the state that they're assuming it. They can ask me for clarification, which I'll gladly provide. Any of these things is a big plus, because it shows you know how to analyze a vague problem, figure out the things you need to clarify it, and still move forward with an implementation without stalling on questions and definitions. The ones who fail are inevitably the ones who just stare at the board, write a couple lines of code, erase them, stare some more, etc. Specs aren't always clear. Requirements and bug reports aren't always clear. If you can't ask the right questions to clarify a slightly vague 200 level coding quiz, you're not someone many people would want to work with.

    One other comment: some people may suck at this because they rely on the compiler for everything. You can get surprisingly complex systems out of guess-and-check programming, but it's far from ideal. Quite a few new grads have this problem, although I'm not so sure about the more experienced programmers.
  • by Animats ( 122034 ) on Friday August 25, 2006 @01:11AM (#15975970) Homepage

    The last time I saw production code that reversed a linked list, it was because someone wanted the last element of the list. So they reversed the list and extracted the head. After reading the code for a while, I realized that I was looking at C code written by a LISP programmer. I finally rewrote the thing to use C++ collection classes. A list wasn't even the right structure; a C++ vector was, because the collection was built once and then used millions of times.

    Be suspicious of code that does elaborate munging on pointers. Stuff like that should be encapsulated in general-purpose routines. If you see it in application-specific code, somebody is probably doing something wrong. And it's very likely that such code will be broken during maintenance.

    Programmers should know how to reverse a list, but shouldn't actually do it.

  • by symbolset ( 646467 ) on Friday August 25, 2006 @02:11AM (#15976138) Journal
    Any good tips for how to *not* come off like a young idiot?

    Wait 20 years.

  • Re:Walk away. (Score:2, Insightful)

    by Sharpner ( 894049 ) on Friday August 25, 2006 @02:58AM (#15976258)
    Good thing you figured out the situation was not for you. But if such a simple, standard request (resumes are standard and highly useful even for contractors, and even for those with lots of samples) was able to negate your interest, he was well rid of you as well.
  • by clambake ( 37702 ) on Friday August 25, 2006 @03:17AM (#15976303) Homepage
    Part of having 20 years experience is being able to control more than just code... It means you should have learned how to wrangle people as well!

    I went to those exact same interviews that you did, the same kinds of introductory questions, the ones looking to weed out the html "programmers" who suddenly decide they can do real programming since it looks so easy.

    So, what happened to me? Basically, I was able to turn the interview on it's head, and before too long *I* was the one having /them/ draw the witeboard diagrams. It wasn't hard, it's just a way of dealing with people, something I have learned over the years:

    Interviewer: "How would you make a singleton in java?"
    Me: "Well, how does this look:"

    public class Foo {

        private static final Foo _foo = null;

        private Foo() {}

        public static Foo getInstance() {
            if (_foo == null) {
                    _foo = new Foo();
            }
            return _foo;
        }
    }

    Interviewer: "Ok, good job next question..."
    Me: "Hold on a sec... Look closer at what I wrote, what did I just do wrong?"
    Interviewer: "Huh? You mean that's wrong somehow?" ...so then I follow with explaination of what would happen if two threads reached the inside of the if statement at the same time ...
    Interviewer: "Ooooh, threading, of course. I have heard of that!"
    Me: "Yeah, so, now how could we fix it? Here's the pen, show me what could be done..." ... next start a discussion about synchronization, maybe get into Java's serious double-check-lock bug/feature (and show them with pseudo-code how the HotSpot compiler can illogically re-order execution without you ever realizing it) and then discuss how one could fix it with the new ReentrantLock class, or some of the other .concurrent.lock.* packages.

    Maybe ask if they can think of a way to implement any kind of locking without using synchronization, have them use the whiteboard and show you what they are thinking in an more abstract form, and then show them how Sun did it with the thread scheduler magic...

    And before you know it, you've stretched a thirty minute interview into a threee hour programming discussion and you get offers to join before you leave the room.

    THAT is what "experience" should have taught you, everything else you can read in a book.

  • by Vellmont ( 569020 ) on Friday August 25, 2006 @03:20AM (#15976313) Homepage
    It'e interesting, but all your questions assume a certain mentality that's probbably similar to you're own mentality. Are you sure you're selecting for quality programmers, and not just people that think like yourself?

    That can be a good thing, and a bad thing. If everyone thinks you like you, you'll probbably all get along quite well and be able to communicate easily. But you're also likely to all make the same mistakes over and over.
  • by Aceticon ( 140883 ) on Friday August 25, 2006 @04:05AM (#15976401)
    I suspect it all depends on what kind of position is someone being interviewed for:

    - A programmer should remain familiar with the basic principles of creating code that runs efficiently. A more senior programmer is expected to be efficient at creating such code and to make easier to maintain code.

    - A software designer is expected to be aware of the importance of compartimentalization of information and division of responsabilities across the design, and of the tradeoffs between flexibility, maintenability and performance when making a design. A more senior designer should be well versed in communicating the design and the rationale behind it to the developers, and of keeping a record of the accepted and rejected designed decisions and the reasons behind it (such a record can be used latter when changes in requirements might mean that the rationale for choosing a certain design feature instead of another one is now not valid anymore).

    - A technical architect is expected to understand the issues of scalability, inter-application connectivity, fallback solutions. He should be capable of defining standards which promote efficiente development, maintenability, robustness and/or lower number of errors, all supported by a well document, internaly consistent rationale. He should be an expert at communicating these solutions to the developers and designers. He should be aware of the development process and ensure that the right tools are chosen/provided for the right job.

    [Note: there's a lot more than just this]

    Now, if you're interviewing for a technical architect position, which is more important:
    • Somebody that knows how to reverse a circular linked list out of the top of their heads and can do it in 5 minutes on a whiteboard
    • Somebody that can hammer down an Interface Requirements Specification for connecting two sub-systems being developed by different contractors


    In my experience there's a limited amount of seniority (in knowledge and wisdom) that you can achieve as a programmer before you find out you've turned into a software designer (in all but name) - if you're still selling yourself as a programmer by then (say, because you like programming and can't stand the boring parts of software design like making long documents and doing presentations), expect to have to go through "just out of school" questions in an interview when applying for a programmer position, even if you're insanelly experienced for a programmer.
  • by dangermouse ( 2242 ) on Friday August 25, 2006 @05:38AM (#15976638) Homepage
    Wrong. Want to know why you're wrong?

    Because I don't have the time in my day to cross every 't' and dot every 'i' for you. You are a valuable developer if I can throw the problem and maybe the broad strokes of the solution to you, and trust you to fill in the details in both in a way that makes sense, and trust you to communicate with me when (and only when) you really need information or decisions that only I can give you.

    If I have to write a massive spec for everything I want you to do, I might as well replace you with some cheap team in India. They're great at giving you exactly what you ask for.

    When I get people who are contemptuous in an interview, for any reason, the interview is over. I'm looking to see whether I can work with you, not whether you're the perfect little programmer monkey. The world is awash with programmer monkeys, and with assholes.

  • by Anonymous Brave Guy ( 457657 ) on Friday August 25, 2006 @09:42AM (#15977639)

    FWIW, the following advice seems to come up a lot in these discussions. I haven't interviewed much myself, so this is mostly my way of summarising second-hand information; take it with a pinch of salt.

    1. Be friendly and confident, but don't try to be artificially authoritative. You won't carry it off, and since they're interviewing for a job with you there is enough implied authority on your side anyway.
    2. Make written notes on key points, but don't become too focussed on it. Pay attention to the candidate at all times.
    3. Ask enough sensible, relevant questions to get a fair idea of the candidate's abilities. Once you've got that, don't draw the interview out unnecessarily. The odd friendly comment or joke by either side is fine if it's natural, but beware straying too far off-topic.
    4. Open-ended questions are often better than those with a specific "right answer". You can tell a lot about a person from how they approach an open-ended question. Remember that listening is a more valuable skill than speaking.
    5. Talk positively. If you're gauging whether they'd fit with your company's working practices, ask if they'd be comfortable with X rather than whether they'd "have a problem" with Y. If you're talking about something that the candidate once did wrong, focus on how they recovered rather than the mistake.
    6. Don't ask trick questions. They don't tell you anything useful about the candidate, and make you look like an ass.
    7. Remember that interviews are two-way things. Give your candidate a fair chance to ask questions in return, preferably throughout the interview not just as an afterthought before the final handshake. Treat these the same way you'd treat questions if you were being interviewed yourself: pitch your company in a good light, but be honest and accurate.
    8. Check with someone in your legal team/HR/whatever you have access to about any questions you're not allowed to ask because of discrimination laws. Age-related questions might well be relevant in your case. For example, the answer to "Would you be comfortable working for someone younger than you?" can be informative, but you may not be allowed to ask that question.
    9. Using a single interviewer is not an ideal recruiting practice, because any one person might have preconceptions or pick up the wrong vibe even if well-intentioned. If your circumstances mean you're in this position, be careful not to let any personal preferences or prejudices colour your objective judgement.
  • by dangermouse ( 2242 ) on Friday August 25, 2006 @09:43AM (#15977647) Homepage
    You've misread my post.

    I can write a good spec. But if I take the time to do so, there's no particular reason I should hand that spec to you for implementation rather than to a cheap offshore team. Coding to spec is their specialty, and they're not bad at it.

    I don't want or need programmer monkeys. Junior developers we can train into senior developers, sure. There are a lot of very good reasons to go that route, and it's healthy and economical to have some junior devs on staff. But spending the big money on whizbang coders who need everything spelled out for them is a double waste.

    My interview is designed to find people who can and will think about a problem and its solution, and who have the knowledge and experience to get the details right. Those are the best developers, and they're relatively rare. You can bet that when I find and hire them they're highly valued and treated as such.

    Finally, an interview is a meeting of equals, and I approach it as such. The goal is to figure out together whether you and I want to enter into the employer-employee relationship, not for me alone to decide whether you're "good enough" for my team. If my expectations and your expectations differ, that's fine, we can shake hands and go our separate ways and the best of luck to you. Like you said, there are plenty of other employers. If you at any point display contempt for my expectations, though, you're just some prima donna asshat with a superiority complex-- don't let the door hit you on the ass, jack.

  • Strange (Score:2, Insightful)

    by Slashdot Parent ( 995749 ) on Friday August 25, 2006 @10:37AM (#15978120)
    I do freelance work as well, and every client that I've ever had wanted to see my resume.

    A request for a resume resume, doesn't necessarily mean that the position is W-2. Just so you know for the next time you feel the need to alienate a potential client.

    Even if the position was W-2, who do you think that manager will call with an open contract need? I'll give you a hint: it ain't you.

  • by Anonymous Coward on Friday August 25, 2006 @11:28AM (#15978624)
    I have a job I enjoy, that is well paying, and I don't anticipate looking in the near future, but the next time I do interview for a job I am going to ask to see *their* code and see if they can solve a problem *I* give them on a whiteboard. I want to make sure they can write code that is understandable and is commented. I want to learn new things and be challenged, not dig someone out of a mess they made because *they* don't know how to develop - or worse, expect me to maintain/extend that mess and never dig out of it.

    As for that particular retailer - I've had the opportunity to interview with them, I declined, ditto for MS. I have decided that life is too short to work for such companies. I would rather work for a small company nobody has heard of that is doing something interesting.
  • by Skreems ( 598317 ) on Friday August 25, 2006 @12:01PM (#15978963) Homepage
    When I get idiot interviewers like you, then they get the full blast of contempt. Never waste my time being trival vague and misleading. There are plenty better places to work than yours. Pushing out the crusty experienced people who won't tolerate that nonsense is not a very effective strategy.
    Uh huh... see, the thing is, it's not trivial if it's what I want to know in order to determine whether to hire you. If you can't put up with a basic problem that should take you five minutes to solve, what does that say about your patience with other things? You sound like a prima donna who won't work on anything you don't personally find fascinating. Good luck keeping a job with that attitude, by the way.
  • by poot_rootbeer ( 188613 ) on Friday August 25, 2006 @12:02PM (#15978966)
    Fuck tact. If you need tact to deal with a broken design, that's an early warning sign in and of itself.

    No, fuck you. Being tactful when talking to colleagues--and especially POTENTIAL colleagues--is just basic business courtesy. You are not exempt from it just because you have to deal with a "broken" design, or for any other reason.

  • by Godeke ( 32895 ) * on Friday August 25, 2006 @12:54PM (#15979442)
    What I find amusing here is the request to "reverse a linked list in place". Talk about your WTF worthy request. Is it singly or doubly linked? If it is doubly linked, why the heck would you want to reverse it: just make an iterator that walks from tail to head instead of head to tail. Done and done, minus all that nasty moving data around. If you really want it to be permanent reversed, swap head and tail.

    If it is singly linked, why the heck would you want to do it in place when constructing a new reverse link list (effectively making the list doubly linked) will allow you to avoid moving a single piece of data and yet again walk the data in reverse efficiently. Just add the head link as "tail" and then iterate forward, prepending elements into the new list. Now walk your new reverse link chain.

    If you really really want to reverse in place, then I ask how the heck you managed to load your data in backwards in the first place. Only after you could explain that would I bother with the fact that the previously mentioned reverse link list can just be used to swap pointers by chaining both directions at once. Of course, such an operation requires a locking mechanism for the list as a whole and I'm going to guess that any software that requires swapping a singly linked list in place probably doesn't bother doing that. Bleh, how did your poor program end up in such a muddle.

    You see, such a question in modern development is best answered MU: un-ask the question and examine the root causes. Sadly, some people around here would find the idea of actually unmasking the root problem to be offensive and get angry that their toy problem wasn't considered a serious request. Toy problems don't show you understand anything except how to code toys. Large systems are not toys, and employing people who are good with toys, but not with large systems is a bad idea. The good news: people who ask toy problem questions instead of being concerned that you can understand the real issues are not people you want to work for.

You knew the job was dangerous when you took it, Fred. -- Superchicken

Working...