I have experience with SQL/MySQL, but many businesses want "Microsoft SQL Server" or "Oracle" experience - not just experience coding in SQL.

When companies say they "prefer" some kind of experience but that experience isn't listed in the required section, does that mean it won't be used? When something is in a job description using language like "prefer", what does that mean exactly?

  • 4
    Hey Nick, welcome to The Workplace SE! Most of your question was off-topic on our site, so I edited this a bit to focus on the part that is on topic. If you wish to expand on that or put in your own words, please feel free to edit further. For more details on how our site works, please see help center and tour. Hope this helps!
    – jmort253
    Mar 29, 2014 at 18:21

7 Answers 7


"Prefer" usually means "we use this but it's a hard-to-find skill so we'll do on-the-job training if we need to".

For example, I hire programmers to work with a bunch of technologies, Oracle included. I'll take someone with no oracle experience who does well in a technical interview over someone who does poorly in the interview but has more oracle experience - I myself was hired without any database experience, so I know it doesn't take long to learn to read an explain plan.

A candidate who interviewed well and who had lots of relevant experience would be even better - but I'm a realist about the current job market for programmers :)

On the other hand, if you're in an industry where there are many applicants for each job opening, employers might be more picky.


Coding in mysql is very different from either Oracle or SQL server especially as you get to the more complex database postions such as business information jobs or data analyst jobs. However, it is better experience than no database experience at all. If I were to put that in a job advertisement, I would consider that people with actual experience in the database I wanted would be at the top of my list and people with experience in some other database would be in the next tier unless they had domain experience or had done something extraordinary. And based on what I know about databases I would be inclined to prefer Oracle candidates over MySQl candidates if I had no great SQl Server candidates.

So suppose I was looking for a data analyst for a financial services company dealing with terrabyte-sized databases.

My first pick to interview would be a sql server person with experince in the financial sector and experience in large databases.

My next pick might be an Oracle person with experience in large databases and the financial sector.

My third pick might be a SQL Server person with experience in some other business sector and experience with large databases.

My fourth pick might be a person who had extensive MySQl experience in the financial sector but not dealing with datbases as large as ours.

My fifth pick might be a SQL Server person with no financial experience and no large database experience.

Other people might rank them differntly depending on how important the skill was and what other achievements the applicant had. I tend to discount resumes that only talk about responsibilities for instance. I want people who think in terms of accomplishments. That might be enough for me to give the edge to someone who doesn't have the exact skill set I am looking for over someone who does, but doesn't appear to have done anything interesting with it.

Now if the job was not mostly a database job, it would be much easier to get into the interview pile because other skills such as C# or Java might be a much greater portion of the job and the actual level of database skill needed might be at a lowere level and easier to pick up.

However since you never know the skills of the other people who apply or exactly how each hiring official will rank them, it is worth a shot at applying if you think you can do the job. Just don't think you will automatically get an interview.

However, if you want to get into real database programming (as opposed to it being a side duty of application programming) then you need to get some SQL Server or Oracle experience. In that case, download the free versions and start learning the syntax differnces or invest in the developer edition of SQL server and learn SSIS.


I think it boils down to a tie breaker.

If I was hiring somebody for a position programming in Java, the perfect fit of course is a Java developer. On the other hand, I have to be realistic. .NET is very similar to Java, especially C# .NET. A C# expert could learn Java easily, so if I am willing to invest in a learning curve for the individual (the cost is ramp up / training time), it makes sense to consider them.

However, let's assume I get 2 candidates, both with the same experience, comparable accomplishments and the only difference in qualifications is Java vs. .NET. How to break the time? Look at it financially. The Java developer would be productive sooner and thus less lost opportunity cost. Therefore, I would hire that candidate.

On the other hand, if the .NET developer had something else that distinguished them, like had more impactful accomplishments, then I may be willing to hire them and accept the learning curve time because it will be worth it in the long run.


I want to bring in a bit of a different perspective - this is how it usually works in my team. This is not the most common case, but it is likely true for some other jobs as well where it is required that a wide range of skills is present in the team but not feasible for everyone to be able to do everything.

There are some skills that are absolutely required to do the job and that we can't afford to train someone in after hiring. This obviously goes under required.

Then there is a wide range of skills that would be useful in different places in the project. If you bring those, it means we are more flexible in where to put you. This is not just about the time you might take with some tasks but often about whether you would be able to do them at all. If you don't bring these skills, we won't train you up in most of them. Sometimes that would cost us too much time before you become productive, sometimes it's just not possible (e.g. we can't just teach someone higher math who is not at all interested in numbers). Our team is already very diverse in its skills - we'll just shuffle around tasks and responsibilities between us to make space where the new hire can contribute best.

So far we have hired people who had some of the preferred skills or none at all. I don't remember anyone who brought in all the listed skills and we never expected that. We never got so many applications that we could afford to be too picky, anyway.


Simply put, and all else being equal:

Required means "your CV goes in the bin if you don't have this".

Prefer means "if you have this and another candidate doesn't your application goes ahead of theirs".

In terms of application advice, it's usually not worth applying for jobs where you lack the "required" skills, but it's well worth applying for jobs where you only lack some of the "preferred" skills.

  • I disagree with "only apply when you fulfill all required skills". This heavily depends on the skills, number of skills etc. It is often said that women only apply when the have all skills, while men don't. And then the men get the jobs.
    – guest
    Mar 8, 2023 at 20:20

If you can create tables, queries, views, stored procedures, and constraints in MySQL you understand a lot of the abstractions of relational databases. Many of the differences at this level are incidental - slight differences in SQL syntax, data types, etc.

I was working on an Oracle project where I attempted to update a million rows in a single statement and it overran some buffer. Someone pointed out to me that I had to break this up into 10,000 row-at-a-time updates, something not necessary with SQL Server. However, this was something someone could show me how to do in a few minutes, so that missing detail had little impact on project completions.

At another location I was asked to set up replication between two SQL Server instances, and separately, two MySQL instances. This was different as night and day. If you were going to be doing this kind of stuff routinely you wouldn't be seeing 'prefer' in the job posting. It would be a requirement.


There are all types of different brands, languages and frameworks in the technology industry, so many feel it is more important to have certain skills that can be more generalized like relational database design. You may not be fluent in the syntax of the language or aware of particular limitations, but you can learn those quickly.

For some businesses, some technologies are more critical than others. All of your custom development may be on SQL Server, so that is a requirement. However, there may be a third-part application that uses Oracle, but they may only need basic maintenance and little to no customizations. There could be a web app written in PHP that performs a task that isn't too important, so if you take an extra day to get it up and running, it's no big deal.

You never know with jobs where the list of requirements came from. There could have been a person with this position who listed everything she did/skills needed and half of them could no longer be in use. In my current job, I created some apps in MS Access, but haven't done anything with it in 2 years. I don't see it as a required skill any more.

You must log in to answer this question.

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