9

A project manager in my department (software development) wants us to interview a non-programmer for a programming job. He has experience in technical support for an international software company. What kind of questions can we ask to determine that he would be suitable for learning on the job?

  • Somebody downvoted this question. I was curious if this is a badly worded question or if it does not belong here. – kzh Jul 30 '12 at 15:14
  • Hi kzh, I suspect it's a mixture of being too specific to an industry, and because SE wants to focus on questions which need a single, specific answer, and to try and avoid questions that ask for broad recommendations or that promote many answers each containing one piece of the answer. – Rachel Jul 30 '12 at 15:22
  • 5
    It doesn't feel off topic to me. I'm meh on it myself; don't think it's absolutely terrible, it's on topic, but I wish it was written to solicit more specific answers. Happy to leave this one up to the community to judge. – Rarity Jul 30 '12 at 16:47
  • 1
    General problem-solving questions. The same kind of questions that Google asks of technical and non-technical candidates alike. – aroth Jul 31 '12 at 0:43
  • 2
    Can you edit the question to add whether this person has programming experience but not in a commercial role; or whether they literally do not know how to program yet? – Carson63000 Jul 31 '12 at 2:03
18

You would ask him the same questions you would ask someone who is a programmer that is interviewing for the position.

Don't confuse the current job title of an applicant with their technical (or other) abilities.

  • That a non programmer does not understand interfaces or polymorphism is a function of not having worked with it not the ability to comprehend, or work with them in the future. In an experienced programmer on the other hand it is a red flag. – IDrinkandIKnowThings Jul 30 '12 at 13:10
  • 8
    @Chad - If you are trying to fill a position, you need to ask the relevant questions. If someone doesn't have the qualifications or knowledge, it doesn't matter what their current job title is. – Oded Jul 30 '12 at 13:39
  • 4
    If the candidate is at all qualified, it's because he's done side projects like @Chad suggested in his answer. Therefore you can ask him the same kinds of questions you'd ask an entry-level candidate. You might need to explain some vocabulary, but other than that, if the interview doesn't work out the job won't work out either. – Monica Cellio Jul 30 '12 at 14:11
  • I agree 100% with this answer, and would add: Just because the person had a role as a non-programmer doesn't mean he has zero programming skills. Like a fresh out of school grad, you are expected to have projects and side hobbies and be able to logically explain them. This guy better have something he can talk about and describe. I don't think the questions should have to be customized, just the target for experience level. – TechnicalEmployee Jun 4 '16 at 22:25
8

When I interview a candidate for an entry level position, I expect that they will have at least done some home work. I expect they can at least answer these questions:

  • What languages have you worked with at home?
  • What was your most challenging bug you have run into?
  • Tell me about a program/website you have written. (what language? did it connect with any services or databases? what did you want to do that you did not know how to complete? How did you overcome that?)

To me these questions should elicit enough information to tell if the applicant is passionate about programming or if he/she saw the giant salaries that programmers make in some magazine and said I want to do that. You can teach the programming but if the passion is not there then it is harder and the likelihood of success is much lower.

3

I would not ask exactly the same questions for this candidate as one who is strictly a programmer.

Presumably, the reason you're considering bringing this person on-board is because they have some deep domain knowledge in an area that is valuable for the project. I would probe that domain knowledge deeply to be sure that this person can pull their weight as part of the team knowing that the programming part is going to be a bit of a risk. Of course, you'll also have to make the difficult assessment of whether or not this individual can eventually come up to speed on the programming tasks.

Generally, it is better to have a well-rounded team than to have each individual be well-rounded. If this person can do the job, your team will be stronger for it even if they have to tutor the new guy more than usual in the beginning.

  • 1
    You are making a huge assumption about the reasons for bringing this person aboard. The OP clearly states that the position is a programming position. – Oded Jul 30 '12 at 18:28
  • 1
    I am, of course, assuming that the PM actually has good reasons for wanting to consider this person. One very common good reason is domain knowledge. Perhaps the OP can elaborate on why the PM wants to consider this candidate? – Angelo Jul 30 '12 at 18:58
  • 2
    @Angelo - In my experience it is more often that FriendofPM needs a job. PM has a job and would like to fill the slot with FriendofPM. Team is expected to go easy on FriendofPM in the interview. So the team must walk a fine line between too critical of the lack of knowledge and ending up with a developer who has no skills and no desire to learn but is kept around because the PM gives great reviews. – IDrinkandIKnowThings Jul 31 '12 at 12:53
  • @Chad, that certainly could be the case but the PM would then be shooting himself in the foot if he managed a project with that team. Really, I just saying that there better something other than current programming skill (or PM friendship) that compels the team to select this candidate. – Angelo Jul 31 '12 at 13:35
  • @Angelo - Bad PM's tend to be the rule rather than the exception it seems though... That is kind of harsh but you should see some of the requirements documents I have gotten. I have had a PM think that if she brought a non programmer in as a programmer that her requirements would be more understandable... – IDrinkandIKnowThings Jul 31 '12 at 14:04
3

To assess whether he has the capability of learning while on the job (presuming you've already decided he in fact does have excellent domain knowledge that would make him valuable after coming up to speed):

  • Has he done any hobbyist programming or tried to learn programming to any degree before? What languages did he use? Did he find it rewarding? Fun? Challenging? In what ways?
  • If not, has he ever done anything remotely like programming? (Web pages, shell scripts, batch files, word macros, excel formula, encountered a bug in software, etc)
  • What did he find enjoyable and/or difficult about his most programming-like experience? Did he feel a sense of pride or excitement when he got his project to work? Did he have to overcome any hurdles of knowledge he didn't already have?
  • Does he have a batchelors or associates degree in an of sciences discipline? What is the highest level of math or physics he ever completed? Did he enjoy high-school math, especially algebra? Was that one of his favorite subjects in school? (while loving math is not a requirement per se, having an analytical mindset is most beneficial to having an aptitude for programming) Did he prefer classes where you could just write some "bs" and there wasn't right/wrong answers?
  • Has he ever learned a new skill from reading a book? How does he learn best?
  • If you hired him, what would he come up to speed on programming? What sort of training would he want to have?
  • Show him some some fairly simple code (loop, conditionals, etc, maybe not all at once) and ask him what he thinks it might do...if he's totally stumped, ask him to give his best guess (even if it's way off) about a single line of the code. Maybe have a harder one handy if the fundamental stuff he totally knows, or move into questions you'd ask a junior programmer.
  • ask him problem-solving skills questions. What would he do if he realized he didn't know what a piece of existing code does? Does he enjoy being a problem solver?
  • ask him questions about his exposure in his previous role to software developers and software development processes, was he fascinated with what they do? Converse with them about their jobs to learn more about what programmers do? Does he know something about the stages of development? Used version control? etc.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.