3 ms·
How seriously should I interpret requirements for programming jobs?
I'm a physics student at Stanford applying for full-time programming jobs. I worry that I don't possess the attributes that many job postings seem to require. For example, Facebook'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 'strong programmer.'
But I don't consider myself a strong programmer. As a young soon-to-be graduate, I have big gaps in my software know-how. I've never worked on large-scale projects. I've never programmed on a team. I've never done unit testing. I've never used version control except a tiny bit of GitHub. I'm not experienced in a UNIX shell. I can't explain how TCP/IP works. And I'm not an expert in any language.
All I have going for me is that I'm smart, I've done well in my programming classes (algorithms, assembly, C, machine learning), I've placed highly in a couple of programming competitions, and I've built a few small projects for fun.
I guess I'm wondering:
(1) If companies like Facebook only want strong programmers with years of problem solving experience, should I just admit they're out of my reach for now and shoot lower?
(2) Or am I taking their job requirements too seriously and disqualifying myself unnecessarily? I've heard the possibly untrue claim that men tend to apply when they meet just 60% of the requirements.
(3) Also, how can I get a better sense of whether I'm a 'strong programmer' or not? I'm surrounded by a non-representative community of programmers, so I'm aware my self-evaluation may be way off.
(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.
Thanks for listening to the ignorance and insecurities of a fledgling programmer. I will appreciate any advice you can spare.
- Zekio 11y agoWell, 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 11y agoNo just a H1B willing to work for half the going rate.
- JayNeely 11y agoI 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.
- brudgers 11y agoKeep 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.
- ClayFerguson 11y agoThe 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.
- thecupisblue 11y ago(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 11y ago> 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.
- poof131 11y agoDo 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.
- drallison 11y agoGiven 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.
- nikdaheratik 11y agoFirst 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).