Recently, I interviewed a few candidates with excellent academic records and from top tier colleges but they were from Materials Engineering and we are hiring for software engineers.

Is it a good idea to consider job candidates from outside the relevant field?

How can they be evaluated in comparison to candidates with more conventional degrees or experience for a job?

  • 1
    a) Do the have any (verifyable) programming skills? b) If yes, are they somewhat comparable to CS graduates? c) ...
    – deviantfan
    Aug 1, 2016 at 9:47
  • Not actually, just basic knowledge of programming but don't know any thing about other software terminologies like data-structures, databases, networking...
    – smali
    Aug 1, 2016 at 9:49
  • 1
    We can not really help you with this question. You need to know what skillset is required for the job you offer. We have no idea what you are hiring for ("software engineer" can mean anything) so we have no idea what kind of people you need.
    – Philipp
    Aug 1, 2016 at 12:10
  • @Philipp, You are right but if you read my question carefully its a generic one if I include the skill set, then it will only useful for me and will be closed as soon as I add the skill set.
    – smali
    Aug 1, 2016 at 12:17
  • 1
    Presumably, these candidates have some reasons for attempting to take on a SW dev role. It all depends on specifics of the candidates, the roles, and the company. For entry level roles it is perfectly fine to take on demonstrably talented but perhaps inexperienced candidates. The problem. Is that many senior devs are horrific at mentoring and don't even see it as their job (you can see examples of that here in other questions). If you have a company with rigid expectations about experience, it might not work out to bring in a new employee who will have a lot of questions and need guidance.
    – teego1967
    Aug 1, 2016 at 13:41

3 Answers 3



Talent and motivation can't be learned, but the skills for your job can be.

A really high performing individual, who doesn't have quite the right skills or experience, will win out over a mediocre candidate with a better CV over time--and this can happen quite quickly.

In software development, there are famously wide gaps in productivity between the top developers and the average. (It is a common adage that the top 20% of developers write 80% of the code, though I can't find a hard reference for this). It almost certainly better to hire someone who can become a top developer, rather than someone who already is an average developer.

The problem is evidence.

You should probably jump at the chance to reach outside your field and get a talented individual. But the problem is, how do you identify such an individual?

If they have very little programming experience, you don't have much to go on. A top degree in a different field doesn't tell you that much.

Some things you might consider:

  • Examples of any coding they have done. If they have never worked as a software developer, yet have written some sophisticated code as part of a side project in their spare time, this is a good sign.
  • Examples of the right kind of problem solving thinking. If they say "everyone in my materials science lab kept doing this task manually and it was driving me crazy, so I hacked this quick script to automate it." that's a hopeful sign.
  • Programming tests. They have limited value. And an outside the field candidate will be at an automatic disadvantage because of their lack of experience. But if a non-software person is able to succeed at a test, despite their lack of experience, that's another good sign.
  • Trying to gauge their intuitive understanding of the concepts in interview. Can they problem solve on the fly how they would apply code to a particular situation, even if they aren't fully knowledgeable?
  • Enthusiasm. Are they actually interested in the job? Did they come prepared and know a lot about the company and have intelligent questions?

Ultimately it depends on your particular job and candidate pool.

It is a risk, simply because you have limited information to tell how this candidate will succeed in a different field.

But it may be a risk worth taking, especially if you are struggling to find good candidates. It also depends on how much "off the shelf" computer science knowledge will be needed in the role.

But don't do it to save money as your comment implies. Do it if you think they are the best available candidate. Getting the most productive person in the job is what will save the company money.

  • 1
    An old boss of mine hired me over a more "qualified" candidate because I was passionate. He was not disappointed. I've done the same thing, again, never disappointed. Aug 1, 2016 at 13:24
  • @RichardU I have had similar experience. And also I realized that passion was something missing from my list.
    – user45590
    Aug 1, 2016 at 14:56

I'm from the generation before the internet.

Most of us were self taught and when I met with a recruiter a couple of years ago, I found out that during the course of my career, names have come up for things I had been doing all along "ETL" for example.

I have no degree, I've just been doing this for 25 years now.

Most of the industry has been made up as we've been going along.

Now, if you are dealing with a hobbyist vs a recent grad, I would personally take the hobbyist.

You can teach skill, you can not teach hunger, drive, passion, or natural talent.

An advantage that many of us self-taught folks have is that we think outside of the box if for no other reason that we don't know where the box is, so to speak.

That said, before considering anyone (people with degrees included) ask for some source code, ask them how they would approach problem solving, try to determine how much passion that they have. Many people go into IT because they see the earning potential of the field. Those folks rarely have the natural talent.

Then there are those of us who have been coding since childhood, literally.

If the person has the passion give them a shot, provided they demonstrate a willingness to get up to speed on their own time.


[They have...] just basic knowledge of programming but don't know any thing about other software terminologies like data-structures, databases, networking

Then my simple answer is "No". You want graduated software engineers (I think?), not people who could be like them in some years.

And, the fact that they are applying in a field so different from what they learned, could mean: They were not hired anywhere in they're branche because they suck (even in their own field), and now their so desperate that they apply to all jobs with a nice salary. Not a good sign for the employer.

That you suddenly have not just one, but multiple persons from Material Eng. is another possibly bad sign for this. I've seen this often enough in real life: Groups that did as much as possible together in university etc. (and only barely passed the other things), because

  • each single individual couldn't have done it alone when they started,
  • they were too lazy to sit down and learn it the hard way, so each person just did the part he/she could do best,
  • their way of working lead to a result, but each individual still didn't know enough to do it alone after finishing it.

Such groups often stuck together even after passing, because of this very reason:
They can't meet the expectations people have if they are alone.

  • While I agree with your sentiment, many would argue that they could hire these folks instead at a lower pay grade and save money. In the process of course they cost themselves more in the long run in training and how projects will run overlong and not perform as well as they should, but people like short term gains.
    – Broklynite
    Aug 1, 2016 at 10:56
  • 2
    I cannot tell you how many times I've had to deal with new graduates who couldn't code their way out of a box, or who were so focused on "doing it the right way" that their projects were late or they constantly criticized people who had been running systems for years. Aug 1, 2016 at 13:07
  • 1
    Being myself a plastics engineer who began its career as a COBOL programmer, I find you a little bit harsh. But the process itself is risky, you're right : we were numerous in the beginning, and 3 years later, 70% of us had vanished. But, as I said elsewhere, COBOL is easier for a beginner as JAVA, which requires much more theory for being done a professional way.
    – gazzz0x2z
    Aug 1, 2016 at 13:19
  • 1
    @deviantfan I've seen plenty of people WITH a CS degree who couldn't code. How is that better than a self-taught hacker? Aug 1, 2016 at 14:00
  • 1
    @deviantfan It depends on how complex the systems are and what the existing structure is. I trained someone on the business to maintain an app I wrote for him. It's a simple app, and I designed it with that in mind, but again, it's how much of a gap and how passionate the person is. Aug 1, 2016 at 14:19

Not the answer you're looking for? Browse other questions tagged .