
How seriously should I interpret requirements for programming jobs? - tedsanders
I&#x27;m a physics student at Stanford applying for full-time programming jobs. I worry that I don&#x27;t possess the attributes that many job postings seem to require. For example, Facebook&#x27;s first new grad job states that I must have 3+ years of solving analytical problems using quantitative approaches and that I must be a &#x27;strong programmer.&#x27;<p>But I don&#x27;t consider myself a strong programmer. As a young soon-to-be graduate, I have big gaps in my software know-how. I&#x27;ve never worked on large-scale projects. I&#x27;ve never programmed on a team. I&#x27;ve never done unit testing. I&#x27;ve never used version control except a tiny bit of GitHub. I&#x27;m not experienced in a UNIX shell. I can&#x27;t explain how TCP&#x2F;IP works. And I&#x27;m not an expert in any language.<p>All I have going for me is that I&#x27;m smart, I&#x27;ve done well in my programming classes (algorithms, assembly, C, machine learning), I&#x27;ve placed highly in a couple of programming competitions, and I&#x27;ve built a few small projects for fun.<p>I guess I&#x27;m wondering:<p>(1) If companies like Facebook only want strong programmers with years of problem solving experience, should I just admit they&#x27;re out of my reach for now and shoot lower?<p>(2) Or am I taking their job requirements too seriously and disqualifying myself unnecessarily? I&#x27;ve heard the possibly untrue claim that men tend to apply when they meet just 60% of the requirements.<p>(3) Also, how can I get a better sense of whether I&#x27;m a &#x27;strong programmer&#x27; or not? I&#x27;m surrounded by a non-representative community of programmers, so I&#x27;m aware my self-evaluation may be way off.<p>(4) I thought that starting a software internship might teach me some of the skills I lack, but from looking at Google and other companies, they only accept students who are returning to school in the fall. Are there other opportunities where I could get exposure to working on large projects with large teams? I feel this is my biggest weakness as a candidate.<p>Thanks for listening to the ignorance and insecurities of a fledgling programmer. I will appreciate any advice you can spare.
======
thecupisblue
(1) Let me spit some fire. Facebook sucks at a lot of things and excels at
some. There is a huge number of companies with development teams 10x smaller
than Facebook's and 10x better. You're not shooting low if you're applying to
something else, you're shooting high, because as someone who has no experience
in team work, source control, testing or any specific language, anything will
be aiming high for now.

(2.) Probably yes, but with your skill set you should be Aiming for a junior
job, not something with 3+ years experience requirement.

(3.) Get experience and look at your old code in six months, you'll see what
level you were on. It's not about "how strong is the force in you", it's about
"how much experience and wisdom do you have in real world situations". Just in
those first six months, you'll probably encounter a lot of situations your
college didn't prep you for.

(4.) Go get a junior job. Join an open source project. Develop something alone
and ask people to contribute. It doesn't have to be Google/FB/TW.

~~~
tedmiston
> It's not about "how strong is the force in you", it's about "how much
> experience and wisdom do you have in real world situations".

For someone without a CS degree, building side projects [and sharing them]
speaks volumes too. This matters more at startups, small companies, or
anywhere hiring is less formulaic.

To OP:

3\. You could try fixing a bug on an open source project of interest to you
and see if your PR gets accepted.

Another idea is to work on algorithmic problems in your spare time. Project
Euler ([https://projecteuler.net/](https://projecteuler.net/)) is my current
favorite site for that.

------
brudgers
Keep in mind this is free advice:

Just get a job doing something interesting alongside people who are nice,
smart, and willing to help you learn. Big organizations have advantages and
disadvantages that vary for each individual. The only way to identify them in
your case is actual experience. In the abstract it will just be a guess.

Working somewhere that's not Facebook or Google isn't necessarily "shooting
lower" except when the target is a job at someplace everybody has heard
of...though I am not sure if Walmart Labs would fall in or out of that
category, it does really interesting work, which I point out because the world
of programming jobs is bigger than what will make it through to young people
studying at university. Even at a place like Stanford.

If the goal is _really_ working on large projects within a large team consider
working for a defense contractor. That's where the really big projects are
likely to be.

Whatever happens, odds are it's going to turn out well.

Good luck.

------
JayNeely
I wouldn't let a single requirement that you don't meet deter you from
applying -- if you're a 90% match for a company's requirements list, and truly
believe you'd be a good fit for the job, chances are you're a better candidate
than many other people applying for literally everything that has a particular
job title, regardless of their experience. It doesn't hurt to apply. Just make
sure you're pursuing other opportunities as well.

Since you're a Stanford student, I'd guess Facebook actually comes to your
campus for some recruiting events as well. Check with your career center to
find out. Meeting one of their recruiters in person would be a good chance to
ask questions about their requirements and how your experience might match.

------
nikdaheratik
First of all, it depends on who you are applying with. State agencies, state
federal contractors, and large enterprise organisations take the requirements
list very literally (and may be limited by legal requirements). Having
participated in the other end of the process, we literally had to remove
applications from consideration by well qualified candidates _in our own
organisation_ because they answered "no" to one of the required job items
while other candidates that seemed to be lacking even basic written English
skills were still left in the initial pool for consideration because they made
sure to answer "yes" to all the required items.

Other employers have much more flexibility but may be looking for candidates
that have demonstrated experience in professional development as they don't
want to waste time bringing them up to speed on "what is a version control
system" kind of questions. It can take 3-6 months to bring even an experienced
programmer up to speed on how other developers run things in a company. On the
plus side, you're unlikely to have learned any bad habits from your previous
employer that you would then have to "unlearn".

As most people suggested, you're probably better off spending 6 months to a
year at a junior job. And it really has nothing to do with skill levels, but
with learning how to work in a dev team, which you can't really pick up on
your own. After you've gotten up to speed the first time, you'll probably
start to be bored. This is a good sign as it means you're ready to "level up"
and find a different job (even if it is in the same company).

------
poof131
Do not worry. You have years of problems solving experience. Physics is one of
the most challenging majors you can do. The fact that you completed a degree
in it and have taken algorithms, assembly, C, and machine learning puts you in
a fantastic place. Apply anywhere you are interested in for a new grad
position and don’t think twice. In fact, you would probably be a perfect fit
for the more challenging to get machine learning and data science jobs. Many
programmers haven’t taken calculus. Don’t underestimate yourself. I would
probably hire you over most new grads with a CS degree, unless they had a
solid portfolio, which in my opinion is the most important thing. Nothing says
‘ability to build software’ like building software.

------
ClayFerguson
The best way to judge your experience as a programmer is not by educational
level, but more by number of years of experience. If you have been a novice
programmer for X number of years conider your true experience in the pro world
to factor about X/5\. But mainly just be honest about that number. If you've
done 5 on your own, call it 1. But just you should be looking for entry level
and you might be able to cut it in the real world.

------
Zekio
Well, I once saw a job offer with the requirement "10 Years of experience in
NODE.JS" and I'm guessing they are still looking for such a person :)

~~~
danieltillett
No just a H1B willing to work for half the going rate.

------
drallison
Given your background in physics, why do you want a job programming? Most of
your self-evaluation failings seem to be related to the mechanics of
programming, coding, and can be learned in an afternoon with the manual. As a
physicist, you should be seeing the computer and programs for what they are,
tools for exploration.

