Job seekers are sometimes reluctant to apply for positions that might be considered a stretch for their abilities or qualifications, and there are several possible explanations for the hesitation. Fear of rejection, underconfidence, or concerns about wasting time are all likely contributors when we hover the cursor over the APPLY NOW button. Of course if you were to ask your friends and family, they are all going to tell you the same thing.
"Go for it!"
"It never hurts to apply."
"The worst they can say is no."
In most cases I'd agree with this advice, but it's not universally true. Let's talk about the exception. First, some background.
ATS and Interview Policy
When you submit an application to a company, chances are the company stores your resume and an applicant tracking system (ATS) maintains all the relevant data surrounding your candidacy - the date you applied, interview results, notes, etc. This system also comes in handy when a candidate applies for jobs in different areas of the same large company, or applies multiple times over a short time span.
Many companies have a policy as to how often they will interview a candidate that has failed in past interviews. It takes time to schedule and interview someone, and the time of developers (who have a primary purpose of producing code) is valuable, so it makes sense that employers do not want to waste time interviewing the same candidate over and over again over a short period of time.
You see a job listing and realize that it's probably a long shot. Although you meet some of the minimum criteria, there are multiple required or desired skills that you haven't acquired yet (and perhaps some you've never even heard of). You couldn't possibly hold a reasonably intelligent conversation about some of the items listed in the job requirement, so you certainly can't list them on the resume.
Option A — Listen to your dad and APPLY NOW
Pros: You might be an early applicant and get a quick interview.
Cons: Your quick interview might be an experiment early in the company's hiring process, and as a minimally qualified candidate you may be used simply to measure future candidates.
Possible result: You admit to having no experience with several of the technologies discussed in the interview and give answers ending in "...but I'm sure I can pick it up." Rejected... and worse, you won't be considered for any roles with the company for n months.
Option B — Spend some hours playing with those unfamiliar technologies and apply in a few days/week.
Pros: You can list those technologies you didn't previously "know" on the resume with some caveat ("exposure to $SKILL"?), which may improve your resume's chances of getting noticed by a human scanner or ATS for this job and future jobs as well.
Cons: You risk waiting too long and having the position close in the meantime. You also risk wasted time if the knowledge you gain in self-study isn't likely to benefit you in applying for other positions.
Possible result: During the interview you are asked questions about those unknowns. You tell the interviewers that you did not have exposure to those technologies, but took the initiative to do some research and play with them in preparation for the interview. The hiring panel is impressed by this as it shows serious motivation and interest in the job.
Timing is (almost) everything when it comes to job search, and sometimes it makes more sense to wait a while before applying in order to make sure you are ready to make the best possible first impression. You aren't likely to get a second chance with an employer in the near future.