Am I ready for a React developer job?
Students learning React often ask the question, "Am I ready for a React developer job?" To answer the question, you must reflect on your React skill level, your React knowledge, and your React experience. The truth is that getting a job as a React developer does not require as much knowledge and experience as you might think.
Let's go over a list of things that you need to know to get hired as a React developer. Then, we'll go over a list of things that you aren't expected to know as a junior or intermediate React developer. You'll be relieved to find out that you are not expected to know it all!
What you need to know
All the essential topics that you need know below are covered in my React books:
- React Ready: Learn modern React with TypeScript.
- React Router Ready: Learn React Router with React and TypeScript
JavaScript
React is built on JavaScript, so a good understanding of modern JavaScript fundamentals is essential.
You should be familiar with modern JavaScript features, such as:
var
versuslet
andconst
.- Template literals.
- Ternary operator.
- Optional chaining.
- Nullish coalescing operator.
- Arrow functions.
- Classes and inheritance.
- Destructuring, rest, and spread operators.
- Promises.
- Asynchronous programming (Callbacks, promises, async/await).
- Error handling (try/catch/finally).
- ES modules.
- Web Storage (localStorage, sessionStorage).
- Pure functions and immutability.
These modern JavaScript ES6+ features are needed to write good React code.
The basics of React
It's important to know the React fundamentals well enough to build a basic web app with React. Here's a list of React essentials that you should be familiar with:
- Components.
- Re-using components.
- Component composition.
- Props.
- The special
children
prop. - State.
- JSX.
- Uncontrolled and controlled forms.
- Hooks (
useState
,useRef
,useReducer
,useEffect
). - Custom Hooks.
- Performance Hooks (
useCallback
,useMemo
). - React
memo
. - React Context.
React state
You should know how to use local component state via React's useState
and useReducer
Hooks. You should also know how to use React Context to manage things like the user's login state, their preferred theme, their preferred language, and so forth.
Knowing how to use Redux is a plus, but it is not required.
React Routing
You should know how to create a React app with client-side routing using the popular React Router library.
React and APIs
You should know how to use the Fetch API to make asynchronous requests to an API. These requests should be used to retrieve resources (GET
), create new resources (POST
), update existing resources (PUT
), and delete resources (DELETE
).
Styling
You should know how to style React components using different approaches:
- Inline styling.
- Using CSS files.
- Using CSS modules.
- Using Sass and SCSS.
Knowing how to use a CSS library like Tailwind CSS, as well as component libraries like Daisy UI, shadcn/ui, or Chakra UI is beneficial but not required.
What you don't really need
The inner workings of React
You don't need to know about all the inner workings of React. If you know what the advantages of using React are, and you know what React uses the Virtual DOM for, that's a good start.
Testing
Even if you never wrote unit tests or integration tests for your React components using Jest or React Testing Library, don't let that stop you from applying for junior or intermediate React positions. Testing can be learnt on the job in less time than you might think!
Build Tools
You don't need to have extensive knowledge on build tools like Vite, Webpack, Babel, npm, or yarn.
If you know how to use Vite and npm/yarn to create simple React projects, that's a great start.
Deployment knowledge
You don't need extensive knowledge on how to deploy React apps. Every company has its own deployment tools and strategies, so it's impossible to be fully prepared.
If you know how to configure a GitHub repository for your React app, that's a great start.
As an added bonus, you can learn how to deploy a React app using providers like Netlify, Vercel, or Digital Ocean.
It's worthwhile to learn how to collaborate with other React developers over GitHub via pull requests and code reviews. Try to find other React developers who would be open to reviewing your code. Offer to help them with code reviews as well. This is great preparation for any job you apply for.
Next.js and Remix
You don't necessarily need to know the full-stack server-side React frameworks, Next.js and Remix, unless the job posting requires it.
Once you know the fundamentals of React and React Router, learning either of these frameworks becomes a lot easier.
Many projects
You don't need to have built many React projects, or large React projects, to start applying for React jobs. As long as you have a few good React apps that you can demonstrate, you should be fine.
Start by building a React website for yourself, even if you have no other projects to add to your portfolio yet. Start with a home page, an about page, and a blog page with articles that tell the world what you've learned.
Build your React website using Vite, React, and React Router. If you want a greater challenge, try building it with Next.js. Then, add it to a GitHub repository. Lastly, try to deploy it using a provider like Netlify or Vercel.
Conclusion
Focus on learning the necessary topics that we covered above to boost your React confidence. If you have more time, learn the other topics as well. Then, apply for the React jobs that interest you. Even if you don't make it past all the interview rounds, you can learn a lot from the questions you will be asked.
You don't need to know everything to get hired as a React developer. Even senior React developers use Google, StackOverflow, and ChatGPT on a daily basis. No one on the job will expect you to have it all memorized. Using online resources is encouraged at every job because it promotes learning and growth.
You might be more ready for a React developer job than you think!
If you need help learning React and React Router, check out my React books: