Are you looking to get a job in tech?
Maybe it’s your first move into the space and you want tips on getting your foot in the door?
Perhaps you already have a job and are looking for some advice on how to deal with those first few months?
Or maybe you have no experience at all and are looking to get started and be guided from zero skill to choosing the right job and then getting hired?
Well, good news! Here at Zero To Mastery, we specialize in helping people get hired in high-end tech jobs asap, with students being hired by Facebook, Google, Amazon, Tesla, and others - even if they didn’t know a line of code before they found us!
In today’s article, we’re going to share advice from Yihua Zhang, a Senior Software Developer at Bonsai and one of our instructors here at ZTM.
Yihua was kind enough to run 2 AMAs on everything about getting a job in tech and then succeeding once you’re there, even if you have no previous tech experience.
You can watch Part 1 and Part 2 of his AMA calls in the videos below.
Alternatively, if you don’t have time to watch these videos right now, we’ve transcribed the answers to the most common questions below and added a few extra things that were not covered on the call.
Tech jobs are constantly evolving, but if we were to give a simple overview:
“A tech job is any job that involves working with computer systems, networks, programs, software, hardware or applications."
The tech industry is like a modern-day gold rush right now, with a massive need for technically trained people, and so the benefits are huge.
Well, there are a lot of different job roles that can fit into this and so the benefits can vary, but broadly speaking, a tech job is usually:
Not bad right?
With all those benefits, it can be very tempting to want to work in tech, but then feel like you have no idea where to start!
You might think you want to get into programming, but even then you have front-end and back-end to choose from, as well as different languages and frameworks which can be incredibly overwhelming.
With that in mind, rather than give you a whole list of options and make you try and figure this out yourself, we created a quiz to help answer this for you instead.
You simply follow along and answer the questions based on your goals, interests, and how you want to work and we’ll help you figure out the best tech job for you.
Better still, we’ll even share the career path to follow so you can get that job. We cover what you need to know and learn, and in what order, so you can get started asap!
So how do you find these tech jobs so you can apply to them?
If you want to network and have a conversation with people who are hiring right now, then I highly recommend checking out local meetups and career fairs, as this can give you a contact inside the company almost immediately which can help you to get the interview.
Otherwise, I recommend checking out:
Check out each website as not every position is posted across every site, and you don’t want to miss any awesome opportunities.
It’s actually opened up more of them and also more remote work.
Before COVID, it was harder to get remote jobs as there were far fewer of them, but since COVID happened, more and more companies have moved to a remote-first model, with some job sites focusing on remote-first or even remote-only work.
Now of course you’re going to need some skills before you can apply, but what if you’ve never worked in a programming or similar job before?
Is it as easy as learning the thing and then getting hired right away? Not really, but it’s also not as difficult as you might think, as long as you’re willing to do the work.
Also, one of the biggest things that stands out in an interview for a Junior role is not just your current skills, but instead showing that you’re willing to learn or continue to learn.
Well, tech is a constantly evolving space and so this skill and drive to keep learning is highly regarded. If you think about it, it makes sense that they would rather hire someone with fewer skills and the passion to learn them, than someone who has a few skills and never wants to grow.
Now, of course, there’s more to getting a tech job than just being passionate so let’s break it all down, and discuss what it’s like to try and get hired at each tier of company.
There are 3 types of tech companies that you can get a job at:
Now because each company is in different stages of its growth, they will often ask for different things from their potential employees. Technically you can get a job at any of them if you have the right approach, but you may find some easier for the following reasons.
Startups are usually smaller tech companies with 5-30 employees and often working out of co-working spaces or even someone’s home. Their focus is to stay lean and spend smart. They have an idea about a business that they want to build and are just ‘getting started’, hence the name.
Often they’re funded by family and friends, or even self-funded. Depending how long they've been around, they might have managed to get enough customers to hit "ramen profitability"... i.e they make enough money to cover their own costs and growth and are now making profits without needing VC funding.
Because of this lean and agile approach, start-ups are usually looking for people who are willing to learn and hustle hard, and often don’t care if you have a degree. In fact, the person interviewing you is probably the owner of the company!
The good thing about this is that you don’t need to be incredibly technically talented to be employed here. They just want to see a level of competence from either a great interview or portfolio and a passion for growth (this can also work for larger companies but even more so here).
Not only that, but normally you’ll only be competing against other Junior Developers for these roles, simply because of funding and job requirements.
Simply put, startups don’t always have the funds to hire Intermediate or Senior Developers, and the fact that the problems that start-ups need to solve are usually more entry-level, it can be less appealing for more experienced Developers who might be focused on growing their skills in new areas.
Finally, because startups are usually at varying levels of success, the interview process can vary quite a lot. They may ask about legacy code and migrations or updating to new languages, but normally they won’t ask technical problem-solving questions about data structures and algorithms which almost always comes up in larger companies.
StartUps are a great place to start if you don’t have a Computer Science degree, but you do have a lot of ambition and have worked on some of your own projects.
You may still get the odd 50-100 person startup that is just about to bridge that gap who are hiring for more specific technical skills, but even so, it’s still worth applying for as many of these as you can as they may have other roles that need filling.
The pay may not be as high as the other tiers of tech companies, but it will still be good.
Enterprise companies are much larger, usually international, and are not always tech-focused but have a large tech element such as an engineering department or digital sector.
Think banks or telecommunications-type companies. Even though they are a B2C company at heart, they require huge teams to build, monitor, and improve its digital products, tools, or interface.
These companies tend to have more strict requirements in what they need or look for in an interviewee, but that doesn’t mean that you can’t get a job with them if you don’t have a computer science degree or live tech experience.
Sure it can help but not as much as a referral from someone who already works there.
But what if you don’t have a degree or a referral?
Well, there’s also a unique factor with Enterprise in that there is often less competition for the roles so it’s easier to get a job there than you think.
Why is this?
It's because an Enterprise position is often seen as a more traditional job role with a 9-5 and good pay, vs a more tech-focused company that might have flexible hours, remote or async work, and other benefits.
For some people, remote work and flexibility are their major reasons to get into tech and so it doesn’t appeal to them. Not to mention, there are usually more steps or people in every process that can slow things down or possibly older codebases, so not everyone wants to work here.
But what if you do want an Enterprise job?
Well, normally these have a very specific and similar interview process to FAANG-type companies which we’ll cover more later.
Enterprise is definitely worth applying to but you might see more stringent details in what they require from you when applying. This can be a degree or possibly 1-2 years of experience first.
That being said, even if you don’t have this yet you should still apply because these companies have quotas and roles to fill and budgets to spend. Case in point, a lot of blockchain companies stalled out because there was a lack of applicants, even though the starting salary was $100,000+.
Why did this happen?
It was due to the major programming language’s being just a few years old and so no one had prior experience and so a lack of applicants. People were getting jobs with just a few months of working with the languages.
The most lucrative and difficult tech company to get a job at.
FAANG technically stands for Facebook, Apple, Amazon, Netflix, and Google, but really it's also a descriptive term for any large tech-forward company, usually based in Silicon Valley or San Francisco.
These are the types of companies that are pushing innovations and have a very strict process of how they hire, even for Junior roles. In fact, their standard of ‘Junior Developer’ is so high, that people considered Senior at a start-up or Enterprise can’t even get into a junior role at a FAANG type company!
That being said, they are normally the roles with the highest pay and most benefits also.
So how do you get hired there?
Well as I said in the introduction to this article, we’ve had many of our students get hired at actual FAANG or FAANG level companies with no prior experience, so it is achievable even as your first tech job.
However, it does require more effort to get hired at these companies so let’s break down what they look for.
FAANG usually wants 3 things:
FAANG companies always want academic experience such as a Computer Science degree or an equivalent level of knowledge, such as a detailed understanding of how data structures and algorithms work.
They will ask you specific questions and riddles for you to solve, that you will struggle to answer without that Data Structure and algorithm knowledge.
This is considered a simple FAANG level interview question.
It may seem like gibberish right now, but if you follow Yihua’s training then you’ll be able to get through it.
Here’s an example of some his advice on the topic below:
These questions are mainly used as a filter or gatekeeper system to make sure that they only get the very best people working for them.
It may seem like you would never use this knowledge but you would be surprised.
The features that these FAANG companies create have incredibly large user bases and so their code needs to be able to scale without breaking, which often comes down to knowing how to write code with these algorithms in mind.
Also, FAANG loves generalists. They don’t want people who are just good at one thing.
Because they move fast. If they have an issue and want to pull 50 people off projects to work in another area quickly to solve it, then they need people who understand the core concepts and can move around and adapt.
It definitely helps if you know someone who currently works there so networking is huge. In fact, it’s rare that the company will even take a look at you unless someone has already vetted you internally.
Most of them have systems and automations in place to prioritize these referrals first, so there’s around a 3% chance that you can get through to the first interview and then a job offer organically, without a referral.
So assuming your application gets through and the recruiter is looking at you to judge if they want to contact you, what else are they looking for?
So what do I mean by this?
First, recruiters will look and see if you have a few years of actual job experience.
What if you don't have any experience yet?
Well there is another thing they'll look at. They'll also consider you if you've proven yourself in the public domain. This could be something like having a popular technical blog or made significant contributions to some open source projects.
This doesn't mean you can write a few blog posts or made a couple pull requests. These private experiences need to show significant effort and contributions.
The key point here is even if you lack ‘workplace’ experience, you can still stand out amongst their peers by taking extra effort, and that’s what FAANG companies want. They want the best of the best.
So now you know the types of tech jobs you can get and the tiers of companies that you can work for, how do you prepare and get ready to start applying?
The mile-high view is this:
So let’s look at each of these factors.
The first thing to do is to skill up and train for your ideal job. If you went through the quiz earlier then you should have an ideal career path of training to follow.
The goal here is not to know absolutely everything before you apply, because then you’ll never apply for any jobs. It’s simply impossible to know everything with all the new updates and changes!
Instead, learn the core fundamentals that will get you up and running and ignore the rest. You’ll pick up more during your job and learning anything else before you apply is just putting off the new job, possibly out of fear and self-doubt.
By all means, keep learning after you apply but get to the level where you’re sending applications as soon as humanly possible.
How do we know how much to learn?
Well, the good news is that all Zero To Mastery courses and bootcamps are built with this strategy in mind.
Then once you're on the job, your learning will accelerate exponentially. More than any course will give you.
Just follow a structured career path step-by-step and you’ll be more than proficient for almost any Junior position and will be able to quickly advance to more Senior roles.
So many of our students tell us they feel like don’t know enough.
But when they share the portfolio projects that they’ve worked on from their ZTM courses during their interviews, and they'll actually able to talk through the steps and technical choices, they’re often at an even higher level than the companies are looking for!
There’s a concept among the best performers in the world called the 10,000 hours principle. The idea is that you need to have spent 10,000 hours practicing something to become the best in the world at it.
Even crazier still is that for the first 2,000 hours, you probably don’t even know what you don’t know yet. You’ll learn things down the line that will blow your mind even after you’ve been working for years.
Now the question of course is do we need to be the best in the world before we can be hired? No, we don’t.
What we need is to know enough to do our job, and then be flexible enough to be able to learn and figure out the rest as needed.
There’s a common misconception that you need to know as much as possible, but really this is fear of taking action.
We want to learn every language and every possible issue in advance before we start for fear of not knowing something or looking like we don’t know the answer.
So how many hours until we’re good enough to get hired?
Well, we’ve had students get hired after a month of training, and some of our courses are 40 hours long or more.
But I'd say this is the exception and usually these people already have some experience (ex: junior developer using our FAANG Interview Prep course to level-up and go from working at a start-up to getting hired a FAANG company).
As you can imagine, this is a tough question to answer. Different programming languages might take longer than others. Different roles have varying skills you need to know.
Also everyone is different. So it's hard to give a specific amount of hours.
We tell students to think about the number of hours per week you're able to dedicate to completing the steps on Career Path and what your current experience level is.
Don't hold us to it but here's a rough guideline based on feedback we've received from past ZTM students on how long it takes to get hired in a tech role:__
Master one language first. It’s going to be the quickest way to get hired and you don’t need to know every language to get a job, just the core one that you will use.
Remember, you’ll pick up a lot of knowledge and experience during the job so don’t worry about knowing everything about that one language either.
Simply focus on learning the foundations and the most important points for you to get started and be able to start building things. Then over time, you'll build on that knowledge with each project you do.
Once you’ve done this, started in a role and now want to get paid more, then start learning another language or adding new skillsets.
And as an added benefit, if you wait until after you’ve learned that first language before starting another, then a lot of the skills that you learn with that first language are going to be applicable.
We mentioned earlier that going to career fairs and meetups will help you not only find job opportunities, but it can also help get contacts with companies who might not be hiring now, but could be later.
Want to work for remote companies only?
Be sure to work on open-source projects at GitHub so you can interact with other Developers internationally and get on their radar.
Speaking of GitHub, it doesn’t hurt to also share a portfolio of your own work, so that you can then show potential employers.
Want to take it a step further?
Build a blog of your own or write on Medium to get more awareness and share what you’re building.
It can help to some extent, but to be honest, your Linkedin profile doesn’t matter that much.
A well-organized profile may help potential employers see that you’re an organized person, but honestly, I’ve seen people get jobs with just one-line sentences saying which company they worked for and how long they were there.
It’s far more important to network and have a portfolio of projects instead.
You would be better off following some more unconvential techniques so that you stand out from other applicants vs. doing the same things everyone else does.
I don't recommend wasting too much time on Linkedin. But if you're going to do something, do it right. And be efficient with it.
Use the same bullet points that you would put on your resume for that same role. But make sure that these bullet points are written such that you point out the impact that you had vs. just a list of tasks.
Not sure how to do this? Use the C.A.R. method to write these.
Here's a quick example of a bullet point a developer might have:
Set up a monthly process to run the Lighthouse speed test to identify biggest performance page speed improvement opportunities which has led to a 23% increase in pageload speed within the first 3 months.
Increased page speed = higher rankings on google and better UX = more sales = $$$.
This is a real tangible result that an employer would love to see. It shows you take initiative. It shows you delivered real results. And they will definitely want to ask you about what opportunities you identified and the steps you took to fix them.
No, but that’s not to say they don’t have any benefits.
From a hiring perspective, the recruiter is not going to think you’re more prepared than the next person. You might have a slightly easier time to get an interview if you go to a super well-known coding bootcamp but they’re going to question your level of experience no matter what.
And once you're in the interview, it doesn't matter how you got there. What will matter is how you answer the questions and how you present yourself.
The benefit of bootcamps is they can help with accountability and motivation. But you're paying $8,000+ for someone to hold you accountable and motivate you. For some people, that works and they can afford it.
Since they cost so much money, you are definitely going to show up every single day. By showing up every single day for 8 hours a day for 3-12 weeks and having a set schedule of what you need to do next, you can learn a lot quite quickly.
This can help you get used to the workflow and build the habit of coding each day. It'll also force you to push through when things get tough because everyone else is showing up and doing the same.
But that doesn't help you "get hired".
Some of them make bold claims about getting you jobs. Be skeptical. Many people struggle to get hired after completing a bootcamp.
Because they don't realize that you still have to put in the same steps as everyone else... writing a resume, networking, lots of applications, lots of interviews, etc.
An alternative is to go the online route instead. Online bootcamps are more self-driven so it’s up to you to keep going, but the cost is much more afforable (ex: $300-$1,000).
If you’re self-motivated and want to save a small fortune, then an online bootcamp can kick off your career fast.
Not really. A lot of what you learn about in a Computer Science degree is the academic theory and knowledge around the scalability of systems, and less about coding or developing sites.
Every FAANG company wants you to know and understand this, but you can learn this externally.
Absolutely not. There is very little overlap between what you learn in a Computer Science degree and what you do in a front-end role.
Front-end is more UX and design-focused, and back-end is where understanding scalability and data structures come in.
So now that you’ve skilled up enough to do your role, and you’ve built a portfolio of projects and networked, it’s time to start applying for jobs.
We mentioned this a few times but tech jobs will almost always have a question and answer section, where you are tested on your problem-solving skills.
There are a lot of potential questions that can be asked. We cover a lot of them as well as the core understanding to have a framework to solve any question they throw at you in our 2 "Master The Coding Interview" courses below:
I highly recommend that you take these before you start applying for jobs.
Not only will these help you ace the coding interview, but you’ll get a deeper understanding of these topics which can help you understand your own language or frameworks better.
These companies expect you to know this so if you want an Enterprise or FAANG level tech job, you have to put in the work first.
So now you know what you need for the interview, it’s time to send as many applications as possible.
Well, the thing you need to be aware of is that you’ll see a lot of declines at first before you get an interview.
This isn’t because they don’t like you. It can be down to several reasons such as the high volume of applications or simply because some companies will also have unique criteria for the role they’re looking to fill. This is fine as every new application will help you to improve.
This is a numbers game. More applications = more chances at an interview.
That being said, even though you’re going to apply for a lot of jobs, that doesn’t mean you should spaghetti cannon the exact same resume to every single job placing.
A great way to stand out is to write a custom application for each job that you apply for.
Try to tailor your resume and cover letter to focus on exactly looking at what they are asking for and how you meet it.
If you don’t have evidence on Github (or a personal website) with specific projects, then try to overlap your personal life experience and make it relevant to what they are asking for in the role.
The recruiter's goal is to find the person who meets X, and so they’re filtering out people they don’t need to interview to save time.
If you can show how you meet each point that they’re looking for, then you’ll stand out against the other applicants.
You may not meet it perfectly but you can show how you have some contextual experience. The main thing is to sell yourself and just get the interview!
If you’ve done the work and practiced the interview questions, then the final things that normally stall people or cause them to bomb the interview are self-doubt, not selling themselves enough and how they can help the company, or simply just nerves on the day.
Here are 2 techniques to help you get past this.
This is a great way to not only learn how to sell yourself better but to also build up your self-belief and remove those doubts.
Simply ask yourself, what's your story?
It should paint a quick high-level picture of your journey from how you started to how you're sitting down in front of the interview.
Write it down. And then refine up until you have a ~60 second story. Practice saying your story in the mirror or to friends and family.
This will not only help you to realize how far you’ve grown and how much you know, but it also works well when being interviewed. And there's almost a guarantee it's one of the first questions you will get.
Here are a few ways of how it will be asked:
Even better if your story shows you overcoming difficulties and challenges because this shows ambition and drive which is what these companies want from all their employees.
Also, don’t forget that they only know what’s on your application. There is probably a depth of knowledge that you can share on the day. So connecting what you learned and how you got there will help them to see this expertise.
Andrei goes into a heap more detail on acing the interview in this article here.
Another element that can help you on the day and calm your nerves, is to start practicing meditation in advance before the interview.
I recommend doing it daily but you can start a week or so before the call and be amazed at how much it helps you focus and stay calm during the day.
It honestly feels like a cheat code for performance.
Congratulations! You nailed the interview and now you’re at your very first tech job.
Let’s break down some common questions and issues you might have now that you’re hired, or might even be thinking about while you wait to hear back from recruiters.
For big FAANG and Enterprise companies, your first month is almost completely focused on onboarding to their systems and processes.
This is to help you become familiar with the company and how it works, the products and company goals, etc. It’s also to make sure that the larger teams all work together in a similar way for maximum efficiency.
Not every company has this in place though.
Startups on the other hand are much more likely to just throw you in the deep end (ie: read through the code base and ask any questions) by giving you basic tasks to complete right away and just have you learn as you go. You'll also likely have someone a bit more senior to shadow and ask questions.
This can be overwhelming at first but you'll be learning a ton which is what it's all about for your first role!
Make sure to ask lots of questions. Own up to your mistakes and then don't make them a second time. Work hard.
Starting fresh in any new job is extremely nerve-wracking, especially if it’s a brand new industry for you or you’ve never been paid for your problem-solving skills before.
You’re going to second guess yourself and have self-doubt, and might even think that you don’t know enough and shouldn’t be there.
I get that and the most important thing to understand is that everyone feels this way, myself included.
“They’re going to find out I don’t belong here!”
First off, yes you do. You did the hard work to get there and you don’t need to learn everything in the first week or even a few months.
What you have to realize is that the companies who are hiring Junior Developers have a rough idea of the level of expertise you have now, where your gaps are, and what you need to improve.
They knew this when they hired you, and they know you won’t be as fast and will have questions so don’t beat yourself up about this.
In fact, be sure to always keep asking questions when you’re uncertain. You might think that this makes you seem like you don’t know what you’re doing, but in reality, it’s showing that you care about the details and want to learn, and it will help you get past any doubts or what-ifs almost immediately.
Not only that?
You’ll be surprised how many times corners were cut or code was added to make a random fix work, that there would literally be no way for you to know. Trying to figure it out yourself will make you go insane!
Work-life balance comes down to the individual and the environment that you’re in.
I will say that this balance is incredibly important, and finding the right company to work in that is flexible and empathetic to your needs is massive.
Likewise, you need to make sure that as a new starter, you’re not pushing yourself far more than you need to due to some fear of imposter syndrome.
That being said, the tech industry is a modern-day gold rush right now. It’s highly lucrative and incredibly competitive, and they can always hire someone else if they need to.
At the start of a new career, you'll inevitably need to work harder to get up to speed.
TL;DR: work hard and take breaks when you need them. Go for a walk and get some fresh air. Do 5-10 minutes of meditation (deep breathing). Do a workout.
Well, these are the key things that I do:
If you follow those tips then after a little practice, you should be able to deal with high-pressure environments with ease.
OK, so a few things:
When you first start out, you’re going to struggle to write a lot of code every day. Not only are you writing but you’re learning and solving problems at the same time.
Also, it’s impossible to function for 4 hours or more without small breaks to rest your brain. 15-minute breaks every 90 minutes or so can help you stay more efficient for longer so that you could effectively do a 12-hour day if you wanted to, although I don’t recommend it!
And finally, as you get more experienced, you’ll not only find it easier to write more code for longer, but it also gets easier because of practice and systems.
This comes down to less mental fatigue but also the fact that you can start reusing code or templates that you’ve created before, and now spend less time learning how to implement things. This means you can write code for less time or effort, but get projects finished earlier.
Sure it takes work but you can do this. The time will pass either way, but where you are this time next year can be drastically different depending on the choices you make now and the actions you take today.
The biggest component of high performers is simply that they follow through on the goals they set.
You don’t need to learn it all in a day, a week, or even a month, but progress each week can change your life.
Take our tech job career path quiz now and let me know how you do. I can't wait to hear your success story!