|
From: Rhino on 13 Feb 2006 13:44 I am about to start a job search as a Java developer. I've never looked for a job as a Java developer before, having spent earlier parts of my career as a DBA and instructor, so I need some guidance on what to expect. I am pretty much entirely self-taught as a Java developer and I am not certified in any Java skills. Despite that, I've been writing Java code, mostly on my own time, for several years now and feel that I could do a decent job at an intermediate level development job. The problem is that I probably need to prove that. I was thinking that some examples of my code would demonstrate that. (I'd be prepared to talk at length about the code and what it does in case anyone thought I'd just stolen it from somewhere.) The question is: what samples should I provide? I'm wondering about the number of samples, the size of each sample, and the format of the samples. Also, what medium should I use for the samples: CD; download links on a webpage; printed copies? I'm also wondering about intellectual property issues. If I give out code that I wrote while on a project where I'd signed a non-disclosure agreement, I'd be at some legal risk if that ever got back to the client, wouldn't I? So how would I proceed? Just say "Trust me, I did write some good code for that client but I can't show it to you?". Is that going to be acceptable to an interviewer? How do people normally handle that? What about code that I developed for past employers? Even without a non-disclosure agreement, don't I have some sort of obligation not to disclose details of work I did for an employer? After all, if the prospective employer is a competitor of the past employer and the prospective employer learns something about the programs and/or business practices and/or computer systems that his competitor uses, aren't I basically blabbing something that I learned in confidence when working for the past employer? Please note that I'm not asking anyone for binding legal judgements on the legality of anything; I know none of us are lawyers. I'm just asking how this sort of thing is handled every day in job interviews around the world: do interviewees typically produce examples of their work from past employers or clients and, if they do, is that considered a negative by the interviewer or an accepted business practice? Is anyone aware of cases where there were negative consequences for the interviewee or past employer when examples of old code were disclosed to prospective employers? One other thing. I was thinking that my samples might include both Java and non-Java code; after all, programming is programming (to some extent) and being able to display working programs written in other languages that I got as a salaried developer ought to count for something. Does it make sense to have non-Java samples handy as well or should I stick to examples that illustrate skills with the language(s) that the prospective employer would want me to use if he gives me the job? -- Rhino
From: Scott Ellsworth on 13 Feb 2006 14:27 In article <kr4If.632$_D5.121588(a)news20.bellglobal.com>, "Rhino" <no.offline.contact.please(a)nospam.com> wrote: > I was thinking that some examples of my code would demonstrate that. (I'd be > prepared to talk at length about the code and what it does in case anyone > thought I'd just stolen it from somewhere.) The few times I have interviewed for myself, rather than trying to sell our consulting services, I brought code samples written up for that specific job interview, and stats on the real code they represent. Spend an evening writing up a toy problem, or a toy class. Be up front - 'I cannot reveal the code I have written under contract, but this has many of the same characteristics - getters, setters, unit tests, code coverage, minimal but complete docs, etc.' Then discuss ways in which this code is similar to or different from that which you normally would do. For example, 'I have written a few thousand lines of numerical analysis code. This is representative of it in style, method length, metrics, etc.' Talk about how your own projects differ from ones for pay. 'Half my current clients use CVS, half use subversion. I use subversion through the svnserve daemon for personal projects. I have found [stuff you have found].' They know you prettied up your code sample; being up front about it, and in what ways, is a darn good idea. It then goes from a point of risk to a source of questions and comments. For example - 'The setters are, as you would expect, boilerplate generated by IDEA. I do try to be very careful about exposing API, since then I am stuck with it for future releases.' This turns a discussion about some code you prettied up into a discussion about OO philosophy, and how you treat encapsulation. You NEVER want to bring something you did for another employer without permission. Not only does it put you in legal hot water, it also tells your new potential employer that you are willing to violate an NDA for convenience. Scott -- Scott Ellsworth scott(a)alodar.nospam.com Java and database consulting for the life sciences
From: Eric Sosman on 13 Feb 2006 14:44 Rhino wrote On 02/13/06 13:44,: > I am about to start a job search as a Java developer. I've never looked for > a job as a Java developer before, having spent earlier parts of my career as > a DBA and instructor, so I need some guidance on what to expect. > > I am pretty much entirely self-taught as a Java developer and I am not > certified in any Java skills. Despite that, I've been writing Java code, > mostly on my own time, for several years now and feel that I could do a > decent job at an intermediate level development job. The problem is that I > probably need to prove that. > > I was thinking that some examples of my code would demonstrate that. (I'd be > prepared to talk at length about the code and what it does in case anyone > thought I'd just stolen it from somewhere.) > > The question is: what samples should I provide? I'm wondering about the > number of samples, the size of each sample, and the format of the samples. > Also, what medium should I use for the samples: CD; download links on a > webpage; printed copies? This seems like something you should ask before the interview. > I'm also wondering about intellectual property issues. If I give out code > that I wrote while on a project where I'd signed a non-disclosure agreement, > I'd be at some legal risk if that ever got back to the client, wouldn't I? > So how would I proceed? Just say "Trust me, I did write some good code for > that client but I can't show it to you?". Is that going to be acceptable to > an interviewer? How do people normally handle that? Show something you wrote on your own time for your own purposes. (That, at least, is what I did on the only occasion I was asked for a code sample.) If you haven't written anything you can clearly claim as your own, now might be a good time to start ... > What about code that I developed for past employers? Even without a > non-disclosure agreement, don't I have some sort of obligation not to > disclose details of work I did for an employer? After all, if the > prospective employer is a competitor of the past employer and the > prospective employer learns something about the programs and/or business > practices and/or computer systems that his competitor uses, aren't I > basically blabbing something that I learned in confidence when working for > the past employer? IANAL, but the code you wrote for past employers probably belongs to them, not to you. You almost certainly signed a piece of paper granting the company ownership of anything you developed on company time; some such agreements extend even to things you did on off-hours while in the company's employ. For safety's sake I'd steer clear of such samples, and if you really want to use them you'd better get legal advice first. Also, consider the impression you'll make on the interviewer: "This guy's showing me a former employer's family jewels. Am I eager to trust him with mine?" > Please note that I'm not asking anyone for binding legal judgements on the > legality of anything; I know none of us are lawyers. I'm just asking how > this sort of thing is handled every day in job interviews around the world: > do interviewees typically produce examples of their work from past employers > or clients and, if they do, is that considered a negative by the interviewer > or an accepted business practice? Is anyone aware of cases where there were > negative consequences for the interviewee or past employer when examples of > old code were disclosed to prospective employers? Well, I'll offer my lone data point again: Forty years as a programmer, thirty-five of them as a professional, and in all that time ONE request for code samples. Draw your own conclusions. > One other thing. I was thinking that my samples might include both Java and > non-Java code; after all, programming is programming (to some extent) and > being able to display working programs written in other languages that I got > as a salaried developer ought to count for something. Does it make sense to > have non-Java samples handy as well or should I stick to examples that > illustrate skills with the language(s) that the prospective employer would > want me to use if he gives me the job? Depends on the job. When I have interviewed prospective employees I have never worried about their skills with this or that programming language, nor with the technology du jour. Fifteen years ago everybody wanted Xwindows programmers; ten years ago it was Visual Basic programmers, five years ago it was Java programmers, today it's Web services programmers, tomorrow it will be ...? Things change, and change rapidly, so I always looked for people who had shown they could solve problems, not for people who could tell me the minutiae of different versions of Lisp. But don't overlook that "depends on the job" part. If the employer's goal is to solve problems of type X and he happens to be using Java as the solution vehicle, he'll be (I think) looking for problem-solvers, not Java Jeniuses. On the other hand, if the employer's goal is specifically to Do Stuff In Java, he'll probably have a different attitude. You've got to study the prospective employer at least as carefully as he studies you. -- Eric.Sosman(a)sun.com
From: Daniel Dyer on 13 Feb 2006 15:31 On Mon, 13 Feb 2006 18:44:37 -0000, Rhino <no.offline.contact.please(a)nospam.com> wrote: > I was thinking that some examples of my code would demonstrate that. > (I'd be > prepared to talk at length about the code and what it does in case anyone > thought I'd just stolen it from somewhere.) > > The question is: what samples should I provide? I'm wondering about the > number of samples, the size of each sample, and the format of the > samples. > Also, what medium should I use for the samples: CD; download links on a > webpage; printed copies? If you do need to take some code along it's probably best to take a CD (or USB key) and a hard copy, then you can use whichever is more convenient. Take the code along, it can't hurt to have something to show if the opportunity arises, but it probably won't be necessary. One of the most challenging interviews I had was a pen and paper session with their senior developer. We discussed various Java problems and how I would approach them, discussed design patterns etc. for about an hour. I think after that they had a good idea of what I could and could not do. > I'm also wondering about intellectual property issues. If I give out code > that I wrote while on a project where I'd signed a non-disclosure > agreement, > I'd be at some legal risk if that ever got back to the client, wouldn't > I? > So how would I proceed? Just say "Trust me, I did write some good code > for > that client but I can't show it to you?". Is that going to be acceptable > to > an interviewer? How do people normally handle that? > > What about code that I developed for past employers? Even without a > non-disclosure agreement, don't I have some sort of obligation not to > disclose details of work I did for an employer? After all, if the > prospective employer is a competitor of the past employer and the > prospective employer learns something about the programs and/or business > practices and/or computer systems that his competitor uses, aren't I > basically blabbing something that I learned in confidence when working > for > the past employer? As others have said DO NOT take along code from a previous employer. It creates a very bad impression of your trustworthiness. It makes you look like the kind of person that would upload all of their source code to Sourceforge. They know you aren't allowed to show it to them, so don't. > One other thing. I was thinking that my samples might include both Java > and > non-Java code; after all, programming is programming (to some extent) and > being able to display working programs written in other languages that I > got > as a salaried developer ought to count for something. Does it make sense > to > have non-Java samples handy as well or should I stick to examples that > illustrate skills with the language(s) that the prospective employer > would > want me to use if he gives me the job? Code in other languages is OK, but be careful not to let it overshadow what you have to offer as a Java developer. You are right that it displays a general programming competence, but the company will be keen to see what you can do with Java, as they will want you to be productive in that as soon as possible if you get the job. Also, the interviewer may not be familiar with the other language. What I know about VB can be written on the back of a postage stamp, so when candidates spend 20 minutes discussing their VB projects it's a waste of both our time (not compeletely, but on the whole). If you want to do some preparation for the interviews, I would recommend getting hold of the books "Effective Java" by Joshua Bloch, and "Design Patterns: Elements of Reusable Object-Oriented Software" by Gamma et al., if you don't have them already. These two books, more than any others I have come across, are pretty much essential reading for any professional Java developer. Dan. -- Daniel Dyer http://www.dandyer.co.uk
From: Rhino on 13 Feb 2006 18:02
"Rhino" <no.offline.contact.please(a)nospam.com> wrote in message news:kr4If.632$_D5.121588(a)news20.bellglobal.com... >I am about to start a job search as a Java developer. I've never looked for >a job as a Java developer before, having spent earlier parts of my career >as a DBA and instructor, so I need some guidance on what to expect. > > I am pretty much entirely self-taught as a Java developer and I am not > certified in any Java skills. Despite that, I've been writing Java code, > mostly on my own time, for several years now and feel that I could do a > decent job at an intermediate level development job. The problem is that I > probably need to prove that. > > I was thinking that some examples of my code would demonstrate that. (I'd > be prepared to talk at length about the code and what it does in case > anyone thought I'd just stolen it from somewhere.) > > The question is: what samples should I provide? I'm wondering about the > number of samples, the size of each sample, and the format of the samples. > Also, what medium should I use for the samples: CD; download links on a > webpage; printed copies? > > I'm also wondering about intellectual property issues. If I give out code > that I wrote while on a project where I'd signed a non-disclosure > agreement, I'd be at some legal risk if that ever got back to the client, > wouldn't I? So how would I proceed? Just say "Trust me, I did write some > good code for that client but I can't show it to you?". Is that going to > be acceptable to an interviewer? How do people normally handle that? > > What about code that I developed for past employers? Even without a > non-disclosure agreement, don't I have some sort of obligation not to > disclose details of work I did for an employer? After all, if the > prospective employer is a competitor of the past employer and the > prospective employer learns something about the programs and/or business > practices and/or computer systems that his competitor uses, aren't I > basically blabbing something that I learned in confidence when working for > the past employer? > > Please note that I'm not asking anyone for binding legal judgements on the > legality of anything; I know none of us are lawyers. I'm just asking how > this sort of thing is handled every day in job interviews around the > world: do interviewees typically produce examples of their work from past > employers or clients and, if they do, is that considered a negative by the > interviewer or an accepted business practice? Is anyone aware of cases > where there were negative consequences for the interviewee or past > employer when examples of old code were disclosed to prospective > employers? > > One other thing. I was thinking that my samples might include both Java > and non-Java code; after all, programming is programming (to some extent) > and being able to display working programs written in other languages that > I got as a salaried developer ought to count for something. Does it make > sense to have non-Java samples handy as well or should I stick to examples > that illustrate skills with the language(s) that the prospective employer > would want me to use if he gives me the job? > Thank you all for your feedback to my questions. I'm very happy to see that your ethics match my own. I was very uncomfortable about the thought of showing an interviewer code that I had written commercially for someone else but I thought maybe I was "old-fashioned". I'm disappointed that code samples are so rarely used in interviews to assess a candidate's competence but it's very understandable given the ethical concerns. Unfortunately, I've just spent several weeks developing a fairly impressive example of my code when it seems I should have been out knocking on doors trying to get interviews. It sounds as if few if any interviewers will actually want to see my code. Obviously (in hindsight), I should have asked these questions _before_ expending a big effort on making a good example. I couldn't think of any better way to prove my competence rather than expecting an interviewer to take my word for it so I just went ahead, assuming it would help me. The code I've written in the last few weeks was a resume generator and was done entirely by me and for me so I can still use it to show the interviewer my abilities. I suppose I shouldn't expect him/her to ask to see it though! Apparently, the interviewer is going to assess my abilities based on some combination of: - what I tell him in my resume and in person - what past employers/clients tell him/her, assuming the interviewer contacts them - a technical interview by someone who will ask me questions about how I would solve certain problems that he/she will pose at that time I'm not too worried about the first two of those but I'm not as sure about the third. I'm afraid my OO theory is not that great yet and I may get badly messed up if I try to talk in OO jargon for any length of time. Well, I'll just have to do my best and keep my fingers crossed, won't I? Thanks again for your feedback everyone! -- Rhino |