How To Learn React - Js
How To Learn React - Js
js in 2019
Follow (https://www.facebook.com/rwieruch) Follow 9k (https://twitter.com/intent/follow?
screen_name=rwieruch)
JANUARY 1, 2019
(https://www.pinterest.com/pin/create/button/?
url=https%3a%2f%2fwww.robinwieruch.de%2flearn-react-
js%2f&media=https://www.robinwieruch.de/img%2fposts%2flearn-react-
js%2fbanner.jpg&description=)
How to learn React is high on the agenda for plenty of JavaScript developers for this year. The
recent State of JS survey (https://2018.stateofjs.com/front-end-frameworks/overview/) has
shown that many developers are content with React for creating modern web applications.
However, due to its popularity and job demand, there are still many JavaScript developers who
want to learn React. In this guide, I want to give beginners a comprehensive overview of how to
approach learning React without getting distracted or overwhelmed by other topics along the way.
“I had a job interview coming up where I was asked to complete a project in React. I sat down on a Saturday
and worked through The Road to Learn React and on Sunday I completed my project with plenty of time left
before my interview Wednesday. In one weekend I went from 0% to 80% comfortable working independently
in React.” (Source (https://www.amazon.com/review/R36DSHPGT5V9N7))
There are a couple of tech stacks that people want to learn with React straightaway. I want to pick
up a few of them and give a brief explanation why it isn’t a good idea to marry them with React
while learning it:
Learn React with TypeScript? No way, learn React first before converting JavaScript to a
typed language. Not only the vanilla JavaScript code will be typed with TypeScript, but also
your React components and everything that comes with them. It will become a mess and
overwhelming when you haven’t learned React itself from scratch. Also 99% of the React
tutorials and courses out there are not written in TypeScript, so it makes things more
complicated than easier.
Learn React with Redux? Redux is a popular state management library for JavaScript.
Again, learn React and its built-in state management first before reaching out to a
sophisticated external state management library which is meant to be used in large scale
and complex applications. React already comes with plenty of tools to handle state in your
application. The vast majority of React applications out there doesn’t even need Redux or
any other state management library. Learn how to deal with the state in React first before
throwing another library on the problem. Redux makes React more complicated for
beginners.
Learn React with Gatsby? Gatsby.js got quite popular in the recent time. It’s the go-to
solution for creating static websites such as personal websites, blogs and landing pages.
However, Gatsby comes with its own learnings such as GraphQL, its large plugin system,
(https:/
with server-side rendered React applications. So don’t mistake
and the problems coming
Gatsby.js for having an easier time learning React. It makes writing
(https://www.facebook.com/sharer/sharer.php? static websites with
text=How%20to%20lea
React easier, but not learning React itself.
u=https%3a%2f%2fwww.robinwieruch.de%2flearn- %4
react-js%2f) %23ReactJs&url=https%3a%
re
These were only a few things React beginners tend to associate with React when starting out with
it. There are definitely more of them. However, they will not make the learning experience easier.
In contrast, you will have to learn two things instead of one. So start out with React first before
learning anything on top of it. Learn one thing (https://amzn.to/2Vi44xz) at a time.
React Prerequisites
Since React is a JS library, there is no way around learning JavaScript. You cannot learn React
without JavaScript or without knowing JavaScript in the first place. In comparison to other
frontend solutions, React makes heavily use of JavaScript.
There are many people who recommend to learn web development and all JavaScript
fundamentals as prerequisite before learning React. The skills they recommend to acquire go far
beyond what’s needed to build basic applications with React.js. A couple of them may be:
I believe most of JavaScript can be learned along the way when learning React, because then
you experience it in context while building web applications. That’s exciting and that’s what drives
us as human beings. So keep yourself excited while learning and don’t hang around too long with
the fundamentals where you cannot see the purpose without ever applying them in a real world
scenario. Start to build real projects. Stay curious! Move forth and back between JavaScript and
React while you learn React.
If you are working on a larger application that utilizes React at your new job, it is likely to be
confronted with jQuery in the application’s legacy areas. But it’s okay to not being proficient with
jQuery then and just look up online what you need to get the job done. As alternative, try to
migrate the code from jQuery to React instead as a learning opportunity. That’s how I did it in my
last job, because I became a JavaScript developer in the early days of Angular, but never really
had to learn jQuery to a degree of being proficient with it. Instead I focused on the journey ahead
with Angular which then became React (https://www.robinwieruch.de/reasons-why-i-moved-from-
angular-to-react/).
It doesn’t only apply to React, but to all the other libraries and frameworks you will learn in your life
as a developer. What problem does it solve for me? Too often people throw libraries on top of
(https:/
(https://www.facebook.com/sharer/sharer.php?
their text=How%20to%20lea
tech stack without experiencing the problem in the first place. That’s why I believe it is a
great learning experience to implement the identical application with vanilla JavaScript and React %4
u=https%3a%2f%2fwww.robinwieruch.de%2flearn-
(https://www.robinwieruch.de/why-frameworks-matter/). It demonstrates you which problem the
react-js%2f) %23ReactJs&url=https%3a%
new library is solving for you. The same technique can be applied when deciding whether you
re
want to learn React or another solution such as Vue or Angular. Build a basic application with the
solutions of your choice (https://github.com/rwieruch/why-frameworks-matter) and compare
your the development experience. Which of the solutions felt just right for you?
beginner tutorial
no commercial interest
opinionated way of doing things
thoughtfully put together by core contributors and community
latest material and updates for new versions
API references
Every time I pick up a new tech, I don’t check any courses or books, I go straight to the tech’s
documentation and check whether there is a beginner tutorial. Often there is one and that’s my
entry point into a new world. From there, I can always check for other learning material, but my
starting point will always be the official documentation of the new thing I intend to learn. After all,
that’s why I write my tutorials and books in close relation to the documentation by always
refereing it in my guides. That’s how beginners learn to use the documentation and that’s what
will make them more efficient and effecrtive when learning a new tech in the future.
Twitter (https://twitter.com/rwieruch)
Reddit (https://www.reddit.com/r/reactjs/)
Reactiflux (https://www.reactiflux.com/)
Spectrum (https://spectrum.chat/react)
You will not only get feedback from people there, but also dive more into React by joining
discussions. Be part of the community. Another great way to learn something new yourself is to
explain it to someone else. Maybe
you are one step ahead of a fellow React beginner and
can
(https:/
help them out. Checkout the React Beginner Thread in the React Subreddit where you can help
(https://www.facebook.com/sharer/sharer.php? text=How%20to%20lea
fellow React developers to solve their problems.
u=https%3a%2f%2fwww.robinwieruch.de%2flearn- %4
Learn to use React
react-js%2f) %23ReactJs&url=https%3a%
re
After you went through the beginner tutorial in React’s docs and started to implement a React
project yourself, learn to use React with all its facets. React has only a slim API surface area, so
try to get proficient with it.
Learn and understand React. In the end, it doesn’t need much to create a React component that
returns JSX, to use a React component in another React component while arranging them in a
component hierarchy, to pass data from component to component with props, and to make
components interactive with state. That’s the gist of React. Learn React in depth by applying your
learned skills in your project and not by consuming endless of content.
Both guides come with a minimal set of recommended tools to get you started with React:
Execute JavaScript with Node and NPM: While Node.js makes it possible to run JavaScript
outside of the browser, NPM (node package manager) allows you to install libraries like
React to your project. You will need both tools for almost any other modern JavaScript
project as well.
Develop with Visual Studio Code: A popular lightweight IDE that is the go-to solution for
React developers. Visual Studio Code (VS Code) comes with an editor to learn React
development and a terminal
(command line) to start your React project and install
libraries
(https:/
for it.
(https://www.facebook.com/sharer/sharer.php? text=How%20to%20lea
Learn with create-react-app: The go-to solution from Facebook and the React team to get
u=https%3a%2f%2fwww.robinwieruch.de%2flearn-
you started with a lightweight and zero-configuration React starter project. 99% of the React %4
tutorials out therereact-js%2f) %23ReactJs&url=https%3a%
build up on top of this starter project to get you started with React. You
re
can focus only on learning React while all the toolings around it are taken care of by create-
react-app.
Format with Prettier: Opinionated code formatter that automatically formats your code in
your development environment. It comes with a straightforward setup and integrations for
popular editors (VS Code). While you learn React web development, it shows you how to
format your React code.
Being equipped with these advanced React techniques, you should be comfortable to dive into
larger React applications where you will find these concepts and techniques more often. Due to
React Hooks, the other Higher-Order Components and Render Prop Components may be less
used in the future, but you should still see them fairly often throughout the next year.
(https:/
React Tutorials
(https://www.facebook.com/sharer/sharer.php?
React Books text=How%20to%20lea
u=https%3a%2f%2fwww.robinwieruch.de%2flearn-
React Videos (YouTube, Twitch, Online Courses) %4
Web Developmentreact-js%2f)
or React Podcasts %23ReactJs&url=https%3a%
Interactive Courses
re
However, not every kind of learning material may suit you. The same applies to the teaching styles
of the people behind the larning material. Everyone has a different way to produce content and to
offer it to their students, so checkout which teaching style is best for you.
“Initially, when first approaching React, I had purchased a Udemy course from another teacher. However, I
found myself getting quite lost after just a few videos. The teacher in that highly rated series kept it easy at
first but then blindsides you with hard to grasp concepts and code and failed to inform well what was going
on. (Source (https://www.amazon.com/review/RK12HO6J0BY8M))
If you are into reading, checkout online tutorials and React books. Print books are a good
resources to learn React offline as well. Even though many people are afraid that books get
outdated too quickly, I can only argue that most books are self-published and it takes the author
only 1 day to have a new version of it online (even on Amazon). I believe it takes longer to update
a video than written content nowadays.
If you are into watching, checkout online courses by individual developers on YouTube, Udemy
and their own course platforms. However, again don’t get stuck in only watching the content. Find
content where you are forced to apply your learnings.
If you just want to keep up with recent React news, Podcasts are a great way to stay ahead of the
curve. You will listen to developers being on the bleeding edge of the technology who always
release something new to learn. Also Podcasts are a great way to keep learning React while
commuting or while exercising in the gym. That’s how I do it at least.
There are plenty of free React learning resources online that have a high quality and are
accessible to everyone. If anyone asks me about becoming a React developer, I often just send
them straightaway to FreeCodeCamp (https://www.freecodecamp.org/). Regardless of which
learning resource you pick, try to stay pragmatic by applying the learnings yourself. Don’t just
passively consume the content. Be active and challenge yourself to hone your skills.
. . .
That’s it from my side. Stay curious, commit to it every day by getting your hands dirty, be public
about it, and run a marathon and not a sprint. Challenge yourself to advance your skills as a
developer and become a React developer this year!
Did the article help you? Share it with your friends on social media , support me as my
Patron (https://www.patreon.com/rwieruch), and become a full-stack developer with
my books
(https:/
(https://www.facebook.com/sharer/sharer.php? text=How%20to%20lea
Build a Hacker News App along the way. No setup configuration. No tooling.
u=https%3a%2f%2fwww.robinwieruch.de%2flearn- %4
No Redux. Plain React in 200+ pages of learning material.
react-js%2f) Learn React like
%23ReactJs&url=https%3a%
50.000+ readers.
re
GET THE BOOK FOR FREE (HTTPS://ROADTOREACT.COM)
Name
Mukesh Kamath
− ⚑
3 months ago
Did not get distracted... the central message has been conveyed. I read this in one shot quite unlike
other react related stuff out there. So it was engrossing and relevant today.
2△ ▽ Reply
I'm almost 10 years develop windows application. Now I need to move my butt to web application.
reactjs one of my paddle to start with. I hope I can understand the concept of javascript fundamental.
Can I?
#advise_needed
1△ ▽ Reply
The way and steps you mention to learn React JS definitely help to learn it. Keep posting such
wonderful stuff.
△ ▽ Reply
Wen Po Chen
− ⚑
14 days ago
Suresh Vemuri
− ⚑
2 months ago
@Robin Wieruch -Can you advise on what is the popular/better UI automation framework(s) (or tool) to
automate ReactJS based web application.
I am familiar with Protrctor (am testing AngularJS based web application). Is this suitable for even
ReactJS based web application.
Thanks!
△ ▽ Reply
You can check Jest with Enzyme for testing React apps.
△ ▽ Reply
Sitraka Andriamparany
− ⚑
2 months ago
Kiwiyaaa Zue
− ⚑
2 months ago
Useful Content! <3
△ ▽ Reply
Muhammad Arif
− ⚑
3 months ago
i read till the end..priceless guide and convinced me to start and stick to react roadmap...thanks for the
hard work and its sharing
△ ▽ Reply
Shingi Munyuki
3 months ago
− ⚑
Appreciated
△ ▽ Reply
(https:/
Robin Wieruch > Shingi Munyuki
(https://www.facebook.com/sharer/sharer.php? − ⚑
text=How%20to%20lea
2 months ago
u=https%3a%2f%2fwww.robinwieruch.de%2flearn-
Glad it helped! :) %4
△ ▽ Reply react-js%2f) %23ReactJs&url=https%3a%
Carlo Giordano
re
− ⚑
4 h