Slashdot Mirror


How To Show Code Samples?

Todd writes "I've been looking around at 'help wanted' advertisements for programming jobs, and almost all of them demand that you not only have professional experience, but also that you show samples of your work. This got me wondering; with the work product, trade secret, and non-disclosure laws/agreements, how exactly can you show work that you've done in a professional capacity to a prospective employer without violating the privacy of the company for which the code was written? For instance, I can't say I've written many BASH scripts (at least, not large ones) for myself personally, but the assortment of such scripts written for my current job is wide and varied indeed. I can't very well just deliver these scripts, or even small portions thereof, to third parties to help demonstrate my scripting prowess. With that in mind, what am I supposed to show them?"

20 of 485 comments (clear)

  1. Be smart by snoyberg · · Score: 5, Funny

    what am I supposed to show them?

    Someone else's code

    --
    Thank God for evolution.
    1. Re:Be smart by clarkkent09 · · Score: 5, Insightful

      Funny, but it's a good point. How do the employers know that the candidate is showing his/her own code? Even if they are, most likely the code for show will be polished to perfection over however long that takes, and probably not representative of their code while working on a deadline. Far better to give a test during the interview and have your best engineers present to evaluate the candidate

      --
      Negative moral value of force outweighs the positive value of good intentions.
    2. Re:Be smart by ed.markovich · · Score: 5, Insightful

      Funny, but it's a good point. How do the employers know that the candidate is showing his/her own code? Even if they are, most likely the code for show will be polished to perfection over however long that takes, and probably not representative of their code while working on a deadline. Far better to give a test during the interview and have your best engineers present to evaluate the candidate There would still be value in this. It's understood that your code would be better than your average code in this case but that's ok. If the code submitted is good, it will mean one or more of the following: 1. You know what good code looks like. 2. You understand that the job application process is important and took the time to make code good. 3. You possibly gave it to someone else to review. Trust me, it's rare enough that someone would be good enough to do that. Most people would submit crap even given all the time in the world to polish it off. The ones who manage to submit a good sample would still form a better candidate pool, no matter what technique they used.

    3. Re:Be smart by Anonymous Coward · · Score: 5, Insightful

      How do you know that those other sites had not copied your interviewees code?

    4. Re:Be smart by Stalus · · Score: 5, Interesting

      Last time I interviewed, Intuit and Microsoft mostly asked me ridiculous problems like string word reversals and such, as if I had the C string library committed to memory. I was particularly amused with the Microsoft questions because I had to write a replacement for their CString library four years earlier because it didn't handle DBCS well at the time.

      nVidia asked me higher level problems that required much more thought, and was actual problem solving rather than how recently I had used the particular library that the interviewer was working on that day. I wasn't really surprised, but was somewhat amused when I received an offer from nVidia, but not from MS or Intuit.

      I ended up taking a better offer elsewhere, but I found the difference in interview styles very striking.

    5. Re:Be smart by tom's+a-cold · · Score: 5, Interesting

      Yeah, it's just like standardized testing. It's irrelevant because the conditions imposed by the testing scenario are more important to the tester than the real demands of the job. So what ends up happening is an obnoxious rehash of a CompSci course. Anyone who does that to you is a head-wedged bureaucrat. Interviewing's hard. More than anything this is a sign of laziness or incompetence on the part of the interviewer. Probably means that they're also an inept manager.

      I refuse to comply with interview bullshit. I push back when asked to do things that I think are ridiculous, and have on occasion walked out. It's harsh, but the only way that they'll learn... or at least the only way to keep your self-respect.

      Hasn't cost me anything either. I was voluntarily unemployed once for a two-week period. Other than that, 28 years fully employed. So don't assume you have to put up with that crap in order to get a job.

      --
      Get your teeth into a small slice: the cake of liberty
    6. Re:Be smart by Richard+W.M.+Jones · · Score: 5, Interesting

      I have found that asking interviewees to do some (simple) coding tasks has been useful, but it's not necessarily about whether they succeed or fail at the task.

      We set up a computer running Linux and projector in the room and asked candidates to write code. Many of the candidates turn out to have no idea how to use the Linux command line, or don't know what a man page is, or how to run the compiler (and this is after extensive screening of their CVs already for a job which specifies Linux skills). This becomes very obvious in the practical test, and such people can be quickly rejected.

      Without the practical test we'd have to rely on CVs giving reliable answers to these things ["10 years experience with Linux" etc] and on asking the candidates what they know and relying on honest answers back.

      Rich.

  2. Good Point by Dallas+Caley · · Score: 5, Funny

    Like the other day, i was interviewing for a job and i said, "Well you know i did all the coding for Amazon.com right? but you see i can't show any of it to you because of the non-disclosure agreement"

    For some reason i still haven't gotten a call back...

    1. Re:Good Point by hedronist · · Score: 5, Funny

      Not to one-up you :-), but we use to have the NSA as customers (not something I'm particularly proud of, but they were about the only people that understood the need for similarity-based full-text retrieval in 1987, so ...) Anywho, they are the perfect no-comment referral customer because they will neither confirm nor deny that they even know you, let alone use your software. The funny thing was that people would take our word for it because they knew the NSA wasn't going to say anything.

  3. Ask for a test problem by Rene+S.+Hollan · · Score: 5, Informative

    I usually explain that various NDAs prevent me from disclosing code I've written of significance, and suggest that I be asked to complete a programming exercise.

    Most employers have a set at the ready these days, and I usually respond with the 1 hour answer and the 1 day answer, the later showing an evolution of the former, with polish and usually a more generic solution.

    --
    In Liberty, Rene
    1. Re:Ask for a test problem by TheGratefulNet · · Score: 5, Interesting

      just tell them the request in not appropriate.

      since it ISN'T! would THEY like you to show work you did for them, later on, to OTHER employers?

      maybe that's the best answer you can give.

      [soap]
      the next programming test I take, I'm insisting I bring a laptop, have emacs and gcc at my disposal. I mean, I do NOT write code on whiteboards with markers in my real job, why should I have to put up with that in an interview? I am more than happy to sit down at emacs, have my indent checker, my syntax-colorizer extensions, have my tools at hand (like a normal work day would be like) and THEN see if I can solve the quiz or routine. but in all my years, I've never seen any employer show that level of wisdom in the interview process. sad, as writing on whiteboards is not something everyone is good at and I hate being judged by such artificial criteria. gimme emacs and lemme show you how I really edit/create code in real life. if I fail that, then I'll accept whatever decision you make.
      [/soap]

      --

      --
      "It is now safe to switch off your computer."
    2. Re:Ask for a test problem by Keeper · · Score: 5, Insightful

      The correctness of the code you write in an interview on a whiteboard isn't what you are being judged on. Rather, the interviewer is trying to gather insight into your problem solving skills (or at least that's what I'm looking for when I interview someone).

      In a problem solving exercise like this, I don't care if you miss a semicolon, put a bracket in the wrong place, or can't remember the exact name/argument list for a function (though depending on what the problem is I'll probably end up telling you the function isn't available). I can teach a smart person how to write better code, but I can't teach someone to be smart.

      Some of the basic things I ask myself about the whiteboard question after the interview is over include:

      - did you ask questions about the requirements?
      - what did you do if I give you a requirement that contradicts an assumption or previously defined requirement?
      - did you just start writing some code or did you take some time to consider multiple solutions?
      - if I asked you to come up with an alternative/better way to solve the problem, were you able to?
      - if not, and I describe an alternate way to solve the problem, are you able to implement it?
      - did your solution consider boundary conditions?
      - does your solution scale?
      - do you show a fundamental understanding of programming theory?
      - can you communicate your ideas and solution effectively?

      The next time you get a whiteboard question, remember that correctness isn't necessarily the most important criteria -- it's the problem solving that matters. The best way to succeed with this type of problem is to think out loud and interact with the interviewer.

      As a side note, getting a good back and forth going with the interviewer is also the easiest way to "forget" that you are nervious, and you might relax enough to have a bit of fun...

  4. Open source by Tablizer · · Score: 5, Insightful

    Work on an open-source project, and use that code.
           

  5. Good example by overshoot · · Score: 5, Insightful

    With that in mind, what am I supposed to show them?

    ... of why clueful programmers contribute to software libre projects -- it's good advertising.

    --
    Lacking <sarcasm> tags, /. substitutes moderation as "Troll."
  6. use educational examples by huckda · · Score: 5, Interesting

    i.e. for bash scripting:

    give yourself some common tasks:

    create scripts for them...

    i.e. create a script to fetch updates and notify you via mail(or some other means) when they are downloaded and ready for installation.

    create a script that analyzes log files(yes these things have all been done by many others and you can download them in tool-kits...but that's not the point)

    create a script that updates other scripts dynamically based on what they find out...

    --
    "Just Smile and Nod." --Huck
  7. And this is why... by chaboud · · Score: 5, Insightful

    You should have side projects.

    The big win with side projects that are entirely under your control is that the code is entirely your style. Almost all of the code that you write for work will have some legacy or shortcut warts, but your self-made utility code can be entirely of your own style and principles. This can be good or bad.

    If you don't have any code that you can show, ask your prospective employer to concoct a reasonable example.

    If you don't have any code of your own to show them, that tells them something. If they can't come up with a reasonable task for you to demonstrate your abilities, that tells you something.

  8. 1000 lines of good code by Animats · · Score: 5, Funny

    I used to ask applicants for 1000 lines of C++ they were proud of. Sometimes you get something really beautiful. Something that's at least decently designed and looks reliable is essential.

    I've been known to send such samples back with "Your first buffer overflow is on line 42. Thank you for your interest." I couldn't afford to deal with sloppy coders in a hard real time environment.

  9. Re:If you don't write software at home... by Anonymous Coward · · Score: 5, Interesting

    Oh please.

    There are some of us that enjoy our jobs and the tasks we do there but have other interests outside of work. I'm a Sys Admin. It was my "dream job" from the time I took my first comp sci class. I love what I do, I love the challenges I am presented with. But I don't run my own Solaris boxes at home so that I can play around even more when I get off work. I have too many other interests; other things I enjoy doing. That doesn't make me bad at my job. In fact I think it protects me from a lot of the burnout that I see happen in I.T.

  10. Dress and accessorize for your interview by tomhudson · · Score: 5, Funny

    Standing up there shaking while sweating in a suit

    Show some confidence - don't wear a suit to the interview.

    A good-quality shirt if you're a PC, a turtleneck if you're a mac, a T-shirt if you're linux, or a leather jacket if you're *bsd.

    Slacks if you're a PC, black jeans if you're a mac or *bsd, blue jeans if you're linux.

    Dress shoes if you're a PC, loafers if you're a mac, runners if you're linux, boots or sandals if you're *bsd.

    No hat if you're a PC, a kepi if you're a mac, a ballcap if you're linux (a red one if you're Fedora/RHEL), and a shaved head if you're *bsd.

    A briefcase if you're a PC, a leather portfolio if you're a mac, a softsider if you're linux, and a pull-behind carrying a 4u server if you're *bsd.

    A crackberry if you're a PC, an iPhone if you're a mac, any flip-phone if you're linux, Chuck Norris if you're *bsd.

    Your resume in Word if you're a PC, as a video clip if you're a mac, in openoffice if you're linux, and 7-bit clean ASCII if you're *bsd.

    Hide your Zune if you're a PC, subtly show off your iPod if you're a mac, wow them with streamripper if you're linux, and run a script to make the sound of the drive heads seeking play "Take this job and shove it!" if you're *bsd.

    A business card if you're a PC, a mini-dvd if you're a mac, a bootable distro dvd with customized splash screen, borwser, etc., if you're linux, your phone number and email address on the back of a beer coaster if you're *bsd.

    Coca-cola if you're a PC, bottled water if you're a mac, real beer (not that 5% piss) if you're linux, shots if you're *bsd.

  11. Re:brainfuck? by moosesocks · · Score: 5, Funny

    If you really want to throw them in a tizzy, do it in Whitespace (BF implemented using spaces, tabs, and carriage returns.)

    Of course, turn it in as a printed copy.

    --
    -- If you try to fail and succeed, which have you done? - Uli's moose