Evaluating Your Options
Written by Tim Condon
So, you’ve just finished a coding bootcamp, university or a self-taught learning path. Congratulations on learning a new set of skills! Whether you want to improve your financial situation, work for your dream company or find a job you love starting each morning, breaking into the technology industry can change your life. However, you’re probably asking some big questions: Are your programming skills enough to get you a new job? And where should you even start looking? This chapter will help you make those decisions.
What You’ll Learn
In this chapter, you’ll go over some factors to consider before applying for your first job. You’ll start by asking yourself some important questions to see if you’re ready, professionally and personally, to begin applying and to help you take your first steps toward landing a job.
Note: This book’s GitHub materials repository contains a worksheet for each chapter. Be sure to take the time to write down the answers to these questions. Actually writing them out forces you to give these questions the attention they deserve, and in the process, you’ll create an action plan that you’ll refer to throughout the interview process.
It’s hard to be introspective! However, these steps are essential to ensuring you’re applying to the right places — and that you’ll be successful when you do.
Along the way, you’ll learn:
- The skills and knowledge companies expect you to have when applying for your first role.
- How to decide when to start sending out resumes.
- Important job aspects to consider, such as your financial needs and the types of companies you want to target.
- The different stages of a job application.
Evaluating Yourself: Are You Ready to Apply for Junior Roles?
It’s not unusual to feel a little lost when a course of study ends. When you’re working on a degree or going through a bootcamp, you have a course laid out for you. When you graduate, you’re left on your own to work out your next steps. Are you really ready to get a job? Especially after an accelerated course like a bootcamp, you might not be sure.
Don’t worry — no company expects a junior dev to know everything. You won’t be expected to build an iOS app, an Android app, the back end, the database and the website and scale the project to millions of users. ;] Instead, companies are looking for junior devs with a lot of promise. Passion and dedication will go a long way toward getting your first mobile dev role.
When I hire developers, both junior and senior, the main thing I’m looking for is the ability to learn. Tech is a never-ending cycle of change. Whether it’s moving from Objective-C to Swift, Java to Kotlin, or back end to front end, you’ll need to pick up new things throughout your career. Demonstrating a willingness to work out new problems, seek out answers and just try stuff out will go further than any other trait.
Remember, companies won’t expect people applying to junior roles to have much experience. You won’t need to have apps with millions of users in the App Store, for example. Most people start their tech careers in junior roles with no professional experience.
In an interview, you might be asked to demonstrate some coding knowledge or the basics of building an app — but you don’t need to know everything. Having a portfolio of things you’ve tried, like cornerstone projects from your bootcamp or sample apps you’ve created from Kodeco videos or books, is a great start. Showcasing open-source contributions is another good way to demonstrate an eagerness to learn.
Note: See Chapter 4, “Creating a Resume & Portfolio”, and Chapter 8, “Building in Public”, for more information on how to help yourself stand out as a junior developer.
So, which skills should you be able to demonstrate as a junior developer? Next, you’ll cover some of the knowledge interviewers are likely to look for in a junior dev.
Required Skills for Beginner Developer Roles
Companies expect any developer, even at a junior level, to have basic programming skills. You’ll be expected to know common programming terms like
for loops, conditional statements (
else) and how to build and run apps.
If you’re applying for a web developer role, you should be able to create a basic website and run it in your browser. If you’re applying for a mobile developer role, you should know how to create a simple app and run it on a simulator.
To stand out from your fellow developers a bit, it’s useful to know:
- How to use a source control management system like Git to store your code.
- A basic understanding of HTTP and how to send requests to an API.
- How to write and run tests.
Don’t worry too much about specific technologies — most concepts are transferable. For instance, if you’ve learned Android development and are applying for a junior iOS developer role, don’t worry about not being an expert in the Swift language. You should, however, familiarize yourself with building a basic iOS app using Xcode because that’s the preferred IDE. If you’d like to brush up on your skills, check out our iOS and Swift for Beginners Learning Path.
And if you’ve learned iOS and are applying for an Android role, work through a getting started tutorial to see how Android Studio works. Our Android and Kotlin for Beginners learning path is a good candidate.
To reiterate: Companies won’t expect you to be language experts or wizards at creating UIs. Make sure you have a solid foundation in your role’s basic skills, and the rest will follow.
Job descriptions usually list expected skills, so you can use them as a checklist to see what you know and where there’s room for improvement. However, as mentioned earlier, don’t be put off if you don’t have every “required” skill listed. Sometimes, the job descriptions are a little overbearing. If you feel solid with the basics, you’ll be fine.
Next Step: Are You Ready to Start Sending Out Your Resume?
The first step toward deciding if you’re ready is to work out when to start applying. Just because you’ve graduated doesn’t mean you have to send out applications instantly! You have a choice: Should you apply now, or should you spend some time proving your skills to potential employers?
If you have money to cover your living costs while you build a portfolio, a delay might be worthwhile. However, applying to many different jobs gives you invaluable experience with the interview process. This can help you learn which jobs feel right to you and give you interviewing skills to improve your chances of landing the right job.
Neither decision is wrong — just work out what’s best for you and try it. Most important, however, is to set a timeline and stick with it. Don’t let imposter syndrome or nervousness prevent you from getting started! The Chapter 1 Worksheet will help you make a timeline that works best for you.
If you’re not sure which path is right, here are some of the advantages and disadvantages of jumping into the job hunt versus getting everything lined up before you start.
Applying Right Away
The best way to get better at interviewing and applying for jobs is through experience. And the best way to get that experience is by going through the process, seeing how you get on and improving based on the feedback you receive.
In software, there’s the concept of an MVP, or minimum viable product. This philosophy says it’s impossible to know what your users want until you ship your app and get feedback. So, you don’t try to put out a perfect app; instead, you start with one that works, then refine it based on user feedback until it meets your customers’ actual needs.
The same principle applies to finding a job. Until you get experience with tailoring resumes for different roles and going through interviews, it’s hard to know where you need to improve. So, it could be useful to start applying sooner rather than later to gain that experience.
The most important thing to do as you go through each interview is ask for feedback. Most companies will give you feedback on your application and interview performance, especially if you ask. Use their feedback to find out where you have room to improve.
Another important reason to start applying immediately is that the hiring process takes time. According to data from the Higher Education Statistics Agency, most computing graduates end up in full-time employment… eventually. (Outcomes in the following chart do not add to 100% due to rounding.)
But it doesn’t happen overnight. The average interview process takes almost 49 days, according to LinkedIn’s Economic Graph team. And that doesn’t consider the time it takes to find jobs to apply to, or the gap between accepting an offer and starting in your role.
Especially in an ever-changing economic environment, landing a job takes time. And if your savings are dwindling, those delays can put a lot of pressure on you. So, the earlier you start applying, the more quickly you’re likely to find gainful employment.
Taking Time to Apply
By applying as soon as you think your skills are ready, you shorten how long you have to wait before starting a job, and you improve your interviewing skills. So, when might you want to not apply right away? Next, you’ll look at three situations where you might want to hold off:
- When applying for your dream job.
- When you struggle with rejection.
- When you’ve identified weaknesses you want to work on.
Waiting Before Applying for Your Dream Job
Applying right away when you’re targeting your dream job might hurt your chances. Repeatedly applying for the same role at the same company and getting rejected will count against you, so it’s good to be well prepared before sending in your resume.
First, perfect your application and read up on the company’s interview process. Chapter 4, “Creating a Resume & Portfolio”, explains how to create a great application.
Additionally, you can prepare yourself to give the best interview possible. Focus on gaining more skills and improving your application process. If you have time, take a few months to concentrate on building your portfolio to put you ahead of the field. See Section II, “Standing Out From the Crowd”, for specific ideas.
A good middle ground might be to start applying for jobs that you’re not sure you’ll love, and hold off on applying for those dream companies. That way, you’ll gain interview experience while using the extra time to work on your portfolio. And who knows, you might luck out and land a job at a company that’s better than you expected.
Avoiding Rejection by Targeting Your Applications
If you know you have a hard time dealing with rejection, you can consider targeting the jobs you apply to more carefully. Take the time to get your resume just right, polish your presentation skills and mindfully select the roles you apply for.
However, don’t let a fear of rejection discourage you. Remind yourself that getting turned down is just part of the job application process. It might help to think of every “no” as getting you one step closer to your eventual acceptance.
You can also take the time after each rejection to reflect on the process. What went well? What can you improve next time? Each rejection provides you with vital experience to help you get to a positive result.
That said, be careful not to fall into the trap of spending so much time preparing that you don’t actually apply. Take the same attitude as when you prepare to ship your MVP: You don’t have to be perfect to get started. It’s better to get a rejection than not to apply at all!
Addressing Weaknesses in Your Skill Set
If you’ve inventoried your skills and realized that you have some weaknesses you want to address, it makes sense to put off applying for a short time while you work on them. This could mean following along with some tutorials to improve your programming skills or doing some mock interviews to improve your interview techniques.
That said, don’t be afraid to apply for roles that seem out of reach. Unfortunately, many companies post job openings with unrealistic requirements, especially if these postings come from recruiters.
According to research by global staffing firm Robert Half, 84% of companies say they’d be willing to train a good candidate that doesn’t meet every requirement of a role.
So, if you see a role you really like and think you’d be good at, don’t be afraid to apply. The worst that can happen is they say no!
Deciding Where to Apply
Once you decide that you’re ready to apply, you need to decide which companies to target. As a junior developer, you have a wide variety of options available to you, which can also make it difficult to decide where to start.
So next, you’ll learn some of the factors to consider when determining which companies you want to apply to, including:
- Whether a large or small company is better for you.
- Which tech stack the company uses.
- The compensation package the company offers.
All types of companies need developers these days, which means that you can apply to tiny start-ups and huge multinational corporations. With some exceptions, the size of a company determines a lot about its culture and the opportunities you’ll receive there.
To look at the ends of the spectrum, here are some advantages and disadvantages of startups versus big corporations:
Start-ups: Start-ups offer a dynamic environment where you’re able to have a big impact on the company. You’ll probably get to work in lots of different areas of technology. Start-ups are fast-moving companies with big opportunities, and they call for people who are flexible and motivated. However, they’re also risky. Oftentimes, they don’t have a lot of revenue, so salaries might be lower and benefits less generous. There’s also a risk that they’ll go out of business, sometimes without ever even creating a marketable product.
Large Companies: In larger companies, you could have the opportunity to work on products that millions of people use. The pace is usually slower, there’s more stability and the company is less likely to be constantly in flux. Many large companies also have a larger tech team, which means more opportunities for mentorship. However, there’s usually more bureaucracy and fewer opportunities to take a leadership role and to try new things.
Most people prefer one kind of company over the other, so it’s worth considering what’s best for you — or if you’re really looking for something in the middle. Chapter 2, “Types of Jobs Available”, covers this in more detail.
The technology you work on has a big impact on your work life. For example, if you’re applying for an iOS role and want to write Swift apps, make sure the company uses Swift. If the company uses React Native and Xamarin and you want to write native apps, then you’re not going to enjoy your job.
To determine if the tech stack of a company is one you want to work with, check the job description and ask lots of technology questions during your interviews.
You should also see how modern the company’s tech stack is. Do they migrate to new features quickly so you’ll get to use the latest syntax and frameworks? Or do they use custom tools that are different from what you’re used to?
There are pros and cons to any approach, so make sure you find out and consider what you want to work on.
Compensation & Benefits
When you consider the compensation you’re looking for, it’s natural to think primarily about the salary. However, it’s important to consider the entire benefits package when you’re looking for the right job to apply to.
There’s a wide range of salaries out there, with most of the highest paying roles based in Silicon Valley in the United States. However, many of the locations that pay best also have high costs of living. And that’s even assuming you want to move at all.
So, when you evaluate a job description to determine if you want to apply for a role, look at all the benefits. This not only includes salary but also things like whether you can work remotely, the amount of vacation time, training budgets, parental leave, stock options and so on. Chapter 3, “Decoding Job Listings to Find the Right Roles”, covers this in more detail.
What to Expect During the Interview Process
Now that you’ve decided when and where you want to apply, it’s worth taking a moment to familiarize yourself with the typical tech interview process. Many people find the different stages of applying for a job intimidating — but you don’t have to be one of them.
It helps to understand the purpose of each interview stage… and to remember that interviewing offers a good chance for you to interview the company as well.
Companies use different processes for hiring employees depending on their size and needs. The most common interview stages you’ll encounter on your journey to become a developer include:
- CV/resume submission
- Telephone interview
- Culture-fit interview
- Whiteboard interview
- Pair programming exercise
- Take-home project
- Assessment centers
Note: Keep in mind that not all companies use all of these interview stages. Smaller companies tend to do an interview that covers technical aspects, culture fit and your resume all at once. There might be a follow-up interview or two, but often you’ll receive an offer or rejection letter after just one interview.
Submitting Your Resume
Almost all job applications require you to start with some form of resume. This might be a copy of a traditional resume or an application form on the company’s website that breaks down your experience into education, job history and so on.
Some applications also require a cover letter explaining why you want to work for that company, what makes you interested in the role and why you’d be a good fit.
See Chapter 4, “Creating a Resume & Portfolio”, for more information.
Often, the first step for larger companies with more hiring stages is a telephone screening to determine if you’re fit for the role.
This interview covers your resume and experience, along with some basic questions to gauge your knowledge. It may be conducted by someone with a technical background or by a non-technical person from human resources or another branch of the company.
In the culture-fit interview, you’ll meet with a potential manager or colleague to see if you’ll get along well with the team.
For example, if you’re applying for a customer-facing role, can you articulate problems in a simple way? If you’re applying for a web developer role, do you have a passion for design? If the role involves working in open source, are you comfortable working in public and interacting with a community?
Remember, interviews are two-way processes. They are as much about seeing if you like the company as they are if the company likes you. Be sure to take full advantage of this opportunity. A role that looks great on paper might not be the right fit for you. Take the opportunity of face-to-face time to ask as many questions as you like. The culture-fit interview is a good time to make sure you get along with your prospective manager, for example.
An important question to ask is, are the people you’ll work with passionate about what they’re working on, or do they seem not to enjoy it? If they don’t enjoy their jobs, it’s likely you won’t either.
You can ask questions about how well you’ll fit in with the company as well as technical questions. For example, you could ask:
- Do you host social events so colleagues can get to know one another?
- What is the tech stack like?
- How will your day-to-day routine look?
- What is the turnover rate at the company?
Once you’ve worked out what’s important to you in your job, you can ensure you’re applying for a job that meets those needs.
The technical interview gives you the chance to demonstrate your technical prowess. There are three major types of technical interviews:
- Whiteboard interviews
- Pair programming exercises
- Take-home projects
In a whiteboard interview, you’re asked to draw algorithms, code or solutions on a whiteboard in front of the interviewers. The industry is moving away from this kind of interview because they put a lot of pressure on people. Furthermore, you’re typically asked about computer science questions that aren’t relevant to your job. However, it’s a good idea to prepare for this kind of interview, in case you want to interview with a company that still uses them.
Pair programming is where you’re asked to write code to solve a particular problem, and you have another person to talk to. You can bounce ideas off your pair, ask them questions, and discuss your solution.
The aim of pair programming interviews is to replicate your potential job as closely as possible and to see how you work and get along with people. You’re usually allowed to look up questions and solutions, but be prepared to explain why you’re using that piece of code from Stack Overflow and what it does!
In a take-home project, you’ll be given a well-defined problem to solve in your own time. For example, you might have to write an app that reads from a specific API then displays the results in a table.
Take-home projects are popular because they give people time to work through the problem without the pressure of working live. The best companies will even pay you for the time the project takes.
The project doesn’t need to be perfect, but you should be prepared to explain your code in the interview. For example, your interviewers might ask why you chose to use a particular framework or UI element. Remember, there’s no one right answer; the interviewers are simply trying to understand your thought processes.
The project is partly used as a simple screening exercise and partly to have something to discuss. You don’t have to spend weeks on it; you should stick to the time guidelines they give you.
Most technical interviews will ask you questions relevant to your role. You might be asked about language features or your experience with using particular dependencies. These interviews probe your knowledge, but remember, you won’t be expected to know everything as a junior developer. Don’t be afraid to give a wrong answer or to say that you’d need to research that problem.
It’s OK to ask for clarification. If you don’t know an answer, explain the parts that you do know and describe what you’d do to find out the rest. You can even ask if you can look it up to explain it. That comes across much better than trying to make something up — it’s easy for your interviewer to tell when you bluff.
Visiting an Assessment Center
Finally, very large companies might use assessment centers. These are all-day, or even multiple-day, events where you’ll have technical interviews, culture-fit interviews, team exercises in an all-in-one compressed session. These tend to be used by non-technical companies recruiting for generic roles or by universities for graduate program admissions, but you may encounter them in your developer interview process.
Research the interview styles the companies you apply to use so you won’t be surprised. You should be told what the interview will involve when you’re invited; if you’re unsure, it’s always best to ask. This shows an interest in the role and willingness to prepare while also ensuring you have time to prepare yourself.
This chapter covers a lot of information you need to take your first step toward getting a job in tech. It’s hard to process everything on the first go, so go back over the different sections if you need to.
Assessing yourself, working out what your skills are and if you feel ready is not an easy job. It takes time to pull everything together — and that’s OK. It’s a useful process to undertake, and it will set you up nicely for the rest of the book.
Remember, junior developers aren’t expected to have lots of experience. Companies usually want to see a willingness to learn and an ability to find answers to your problems. Making sure you can demonstrate an interest in technology and your desired field is far more important than having 10 apps in the App Store.
- Before you start applying, take some time for self-evaluation to determine your skills, which companies are right for you and what your timeframe needs to be.
- Different companies have different interview processes. Get to know the different types of interviews. Ask which ones the company will use when you’re invited to interview.
- Remember that, no matter what the company asks for in its job posting, you don’t need to be a perfect fit or have all the knowledge. Remember that a solid foundation in the basics, eagerness to learn and the ability to cooperate with your coworkers are more important traits than any specific language knowledge.
You should now have some understanding of what you need to think about before applying for your first role. Before you apply, you should:
- Write down the skills that you currently have to evaluate if you need more time before applying.
- Prepare a list of things you must have in your job and a list of nice-to-haves.
- Use this list to work out the type of company and job you want to target.
- Research the interview process for the company you’re applying to.
- Put together a list of things you’ll need before applying, like a resume.
- Read any relevant chapters in the rest of the book!
Reflect on what you’ve learned: Find this chapter’s worksheet (PDF) in this book’s GitHub materials repo.