Getting your first job
There are a lot of questions out there about how to be the ideal candidate and get job the dream job. There is no one path to getting to achieving your goals, but there are a lot of concrete steps you can take to make sure to standout as a candidate. These steps span from the education choices you make, your portfolio of work, how you present yourself to potential employers and the world and much more. This repository aims to look at all the ways you can optimize your chances for getting the job you want and putting yourself in a position to grow in your career. Not everything in here will apply to every situation but there will be helpful takeaways for everyone.
Table of Contents
Making sure to get internships throughout your college career is a hugely impactful on getting your first job. In many cases internships will often lead to being offered jobs, but even when it does not, having these on your resume will make a world of difference. Especially for internships, having a solid understanding of data structures will make a big difference in getting those internships. There are a wide range of great resources available to help ensure you have the fundamentals down for any internship interviews but below are a few exceptional standout ones to start with:
- MIT Open Courseware - Introduction to Algorithms
- Stanford - Algorithms: Design and Analysis, Part 1
- Stanford - Algorithms: Design and Analysis, Part 2
This whole repository is geared towards people who want to be prepared as far in advance as possible, it may go without saying but its important identify and apply to internships as early as possible and make sure you have backups.
Bootcamps have been a very touchy subject for many. There are people who think very poorly about them and those who sing their praises, without getting into debate about this, it is for many, a viable option to change careers. There are far more low quality than high quality bootcamps out there but those which are strong will set you up for success. Truth be told, a strong bootcamp will provide you will all of the information found within this repository.
For those who are taking an alternative route such as a coding bootcamp or self-taught, do not fret, there are tons of candidates who are able to get jobs without a degree from a university or a single internship under their belt.
I did not get an internship for x year, is this going to ruin my chances of getting my desired FAANG job?
Not getting an internship is in no way a death sentence for getting your dream job. There are people who have had no internships on their resume who will get a dream job offer. Whats important to focus on is what is in your control. That is how you spend your time that you do not have an internship. Take the time to build out your portfolio, spec out and build a small full stack project, a library, a light-weight testing framework. Anything to demonstrate what you are capable of will make a world of difference in being an appealing candidate.
One of the biggest challenges a lot of college candidates seem to lack and bootcamp graduates tend to have more of, is a github profile with what looks more like real world experience. Having some relevant full stack applications to show a potential employer will leave them much more confident in your abilities and will definitely help you get call backs when applying to jobs. An in-depth primer of picking a good project can be found here.
It is important to realize that having a good github profile is not simple about having a few random repositories thrown up. Engineers who will be looking through candidates profiles will have a few things that immediately jump out to them. A well crafted README is very important, you can read more about that here.
- Above is an indepth primer into picking a good full-stack project that will help fill our your portfolio.
- Equally important to having a good project to show potential employers is the readme that is at the root of your project. Take some time to take a look at the link and make sure you are putting your best foot forward.
You also want to make sure you are demonstrating your ability to use
git properly. A lot of times when reviewing a candidates portfolio I will see a fully complete project and every file was committed at completion. You will see
Initial commit. as the only commit in the repository. This in itself is not something that would stop someone from being hired but it is an immediate signal that they are using git purely to display their work and leaves the question if they have any experience using git properly. Committing your work as you go is a good touch to demonstrate your understanding. Free code camp has a great article on making great commit messages.
How do I choose which language or framework to get the best job?
Languages and choice of framework do not matter that much contrary to what some may believe. Your ability to understand a language / framework is much more important than the specific ones chosen. There will always be employers who will prefer to see you using the language they use but that alone should not leave you paralyzed with what choice to make. You are better off picking something you find interesting and might enjoy.
In the room - More detailed look at preparing for the interviews themselves.
Places to hone your interview skills
- Leetcode - Probably the premier pool of interview questions available.
- The Daily Byte - Daily interview questions to your inbox in an order with a curriculum to help foster learning and improving over time. A great option for people stating ahead of time who want to keep consistent.
- Project Euler - Project Euler is a series of challenging mathematical/computer programming problems that will require more than just mathematical insights to solve.
Preparing for the interviews is an extremely important process and is not something that can be left until the last minute. People prepare for many months before applying to jobs, there are whole industries surrounding helping prepare for the interview process. In many cases the technical interview questions asked are questions that address topics you will not be dealing with on a day to day in your job; however, they still serve a purpose to get to see how your logical brain works, how you work through problems and somewhat are aimed to ensure you learned the types of things expected from a standard CS degree.
The most important piece of advice is to start this process early and practicing often. There are endless great resources for interview prep, github repositories, YouTube videos, free and paid services. Keeping your skills sharp and being prepared far in advance will pay great dividends when it comes time to start interviewing.
There are a variety of portals to find jobs and this list is not comprehensive but:
One of the most important aspects of applying to jobs is standing out from the crowd. While most people will apply to jobs directly through the portal, it is important to realize that you are one in a large pool of candidates when you apply through their portal. Everything discussed in this repository is about standing out from the crowd and getting yourself in the door; however, your profile/portfolio may not be enough. Looking at a job posting on LinkedIn you might see something like
323 applicants on the side, those are already not great odds for you.
If there is a name of the hiring manager attached the job, one tactic is to try and reach out to the hiring manager directly. State your interest, that you have found the job online and are interested, make sure to tell them some about yourself and make sure to attach your resume. One way to find people's email addresses is to use a site like Norbert.
For example if I went to apply to a job on Angel List, the placeholder text when applying says
Write a note to John Doe at Oscar. If I were to go to Norbert and put in the name
John Doe with the domain
hioscar.com I will get a result thats a probable match. Having the hiring manager get an email in a way that most other candidates are not reaching them will help you standout from the crowd. This approach will not always work, and can turn off some people who do not want their email to be filled so use this method with discretion.
Emotional Aspects of applyting to jobs
A lot of people tend to get very discouraged by not hearing back from any jobs. There are tons of posts around the internet if they should give up. Applying to jobs can be very discouraging and difficult but you need to keep in mind that it is really a numbers game. If you are a top tier candidate, who is checking off all the boxes of everything listed above and you are not hearing back from places that can be tough but just realize this is really like a marketing funnel. If we start with an offer and say for every offer you need to have 4 on-site interviews and for every onsite interview you need to have done 2 phone screens. And lastly to get each phone screen you need to send out 100 applications, doing some simple math 1 offer = 4 * 2 * 100 that would be somewhere around 800 applications.
Do not be discouraged by the lack of hearing back! Do make sure you have all everything prepared before applying to maximize your chances. It really will feel like you will never get a job but you will. Learn from any mistakes you make, if you are having terrible luck evaluate what you can do better, where your knowledge gaps are and continue to apply.
It gets easier
The first job is by far the hardest to get, keep that in mind, whatever you go through in this process, everything after it will be immensely easier. Once you have real world experience, have worked in a production environment, understand real-world problems and workflows you will be a much more desirable candidate.
Build a network
One of the most important things you can do is to keep a network of friends who work in the field. Getting a job working somewhere you know someone is so much easier than cold applying places. For most people having an ex-coworker recommend you will go a long way to making the interview process a lot easier. Having someone vouch for you gives you a great positive bias the moment you walk in the door, it wont 100% guarantee you a job but it certainly gives you a leg up. That is why so many companies payout high referral bonuses to employees, because it makes their lives a whole lot easier to find someone they know they can trust (and they don't have to pay a recruiter).
Below is a list of resources that I have found extremely helpful. While I have not used every product I'm listing resources I know have a proven track record of success. You can see the full list of resources here.