Giter Club home page Giter Club logo

react-developer-roadmap's Introduction

React Developer Roadmap

README in Chinese

README in Japanese

README in Korean

README in Portuguese (Brazil)

README in Russian

README in Spanish

Roadmap to becoming a React developer in 2019:

Below you can find a chart demonstrating the paths that you can take and the libraries that you would want to learn to become a React developer. I made this chart as a tip for everyone who asks me, "What should I learn next as a React developer?"

Disclaimer

The purpose of this roadmap is to give you an idea about the landscape. The road map will guide you if you are confused about what to learn next, rather than encouraging you to pick what is hip and trendy. You should grow some understanding of why one tool would be better suited for some cases than the other and remember hip and trendy does not always mean best suited for the job

Roadmap

Roadmap

Resources

  1. Basics
    1. HTML
      • Learn the basics of HTML
      • Make a few pages as an exercise
    2. CSS
      • Learn the basics of CSS
      • Style pages from previous step
      • Build a page with grid and flexbox
    3. JS Basics
      • Get familiar with the syntax
      • Learn basic operations on DOM
      • Learn mechanisms typical for JS (Hoisting, Event Bubbling, Prototyping)
      • Make some AJAX (XHR) calls
      • Learn new features (ECMA Script 6+)
      • Additionally, get familiar with the jQuery library
  2. General Development Skills
    1. Learn GIT, create a few repositories on GitHub, share your code with other people
    2. Know HTTP(S) protocol, request methods (GET, POST, PUT, PATCH, DELETE, OPTIONS)
    3. Don't be afraid of using Google, Power Searching with Google
    4. Get familiar with terminal, configure your shell (bash, zsh, fish)
    5. Read a few books about algorithms and data structures
    6. Read a few books about design patterns
  3. Learn React on official website or complete some courses
  4. Get familiar with tools that you will be using
    1. Package Managers
    2. Task Runners
  5. Styling
    1. CSS Preprocessor
    2. CSS Frameworks
    3. CSS Architecture
    4. CSS in JS
  6. State Management
    1. Component State/Context API
    2. Redux
      1. Async actions (Side Effects)
      2. Helpers
      3. Data persistence
      4. Redux Form
    3. MobX
  7. Type Checkers
  8. Form Helpers
  9. Routing
  10. API Clients
    1. REST
    2. GraphQL
  11. Utility Libraries
  12. Testing
    1. Unit Testing
    2. End to End Testing
    3. Integration Testing
  13. Internationalization
  14. Server Side Rendering
  15. Static Site Generator
  16. Backend Framework Integration
  17. Mobile
  18. Desktop
  19. Virtual Reality

Wrap Up

If you think the roadmap can be improved, please do open a PR with any updates and submit any issues. Also, I will continue to improve this, so you might want to star this repository to revisit.

Contribution

The roadmap is built using Draw.io. Project file can be found at /src directory. To modify it, open draw.io, click Open Existing Diagram and choose xml file with project. It will open the roadmap for you. Update it, upload and update the images in readme and create a PR (export as png).

  • Open a pull request with improvements
  • Discuss ideas in issues
  • Spread the word

License

License: CC BY-NC-SA 4.0

react-developer-roadmap's People

Contributors

danielramosacosta avatar dszymczuk avatar kimhodol avatar kiq7 avatar lex111 avatar melongbob avatar misacorn avatar msrahman07 avatar ogaston avatar shastel avatar shobhitchittora avatar sunasun avatar tienpham94 avatar zenghongtu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

react-developer-roadmap's Issues

Some recommended technologies are outdated and there are better alternatives!

Some recommended technologies are outdated and there are better alternatives!

such as:

  1. immutable-js

The project has actually been abandoned. Also, I think immer is a good alternative.

  1. classnames

The project has not been updated for more than two years. Also, I think clsx is a good alternative.

  1. moment

The project is great, but its build size has been criticized in recent years, and officials have introduced new alternatives. However, I think dayjs is a lighter alternative.

  1. semantic-ui

In the early years, the project was excellent, but in recent years, due to the emergence of material design, the project has actually been abandoned. I recommend a good pure JavaScript component library UIKit that is not based on react.

Suggestion - Include SSR section /Next JS

Sorry, can't do a PR because I don't know what package you've used to create the diagram, but the one thing I noticed is that Isomorphic/Universal/SSR seemed to be an obvious omission.

Great diagram though, really helping me make some choices.

To add an ISSUE_TEMPLATE.md

I think it would be nice to design an ISSUE_TEMPLATE to standardize the discussions and requests of improvement in the repo.

Let me know your opinion and I would be able to draft an ISSUE_TEMPLATE.md to discuss it.

Hope there is a multi-language version.

Thanks to the author create such a clear roadmap. I am a Chinese developer who often encounters difficult-to-understand English words on the road to learning react. I hope that not only the language version of my native language, but also other developers in different languages in the world can understand how to become a react developer.

Hooks, etc?

It might be worth mentioning features like hooks, context, etc outside of simply 'React' as they solve some of the problems that recommended-to-learn technologies addressed previously.

Since these roadmaps are often used by developers learning a tech, who don't necessarily know about its new or upcoming features, it would be worthwhile to let them know that they don't always need to go outside of React to do, for example, state management. It'd also be a useful hint as to what they are for.

Another issue is that these newer features are often considered to be optional when it comes to learning that technology. For example, most people probably wouldn't say that someone who doesn't know hooks is someone who doesn't 'know React'. So, even if you are aware of the existence of these features, you might not include them mentally in any of the points along the roadmap.

Any thoughts?

Virtual Reality / Augmented Reality: React ARkit, Viro

On React Native, developing Virtual Reality and Augmented Reality interfaces are gaining popularity this year, so I would purpose converting "Virtual Reality" to "Virtual Reality / Augmented Reality" and adding:

  • React 360
  • ViroMedia
  • react-native-arkit

Routers: UI-Router

It would be nice to add UI-Router to the list of routers. It's an awesome state based router solution with event-hooks and state transitions and can be used to route between both Angular and React components. It has also a set of Core APIs so it can be implemented for other frameworks as well, e.g. Vue.

RxJS doesn't relate to MobX

RxJS is a state management solution, but it does not relate to MobX at all. It features different kind of observables. In fact MobX observables and RxJS observables have very little in common.

You could add MobX state tree as a state management solution related to MobX if you want.

is it possible to add browserify?

Hi, nice idea you had! It will be useful to many people.

Do you think it is worth to add browserify as bundler? I am using it for many projects, in particular with budo and they work like a charm.
In my opinion the developer experience is far better than webpack:

  • minimal configuration
  • simpler build process
  • dev server with source maps working out of the box
  • rock solid dev stack

If you want to try them quickly, I wrote a bundle package that let you develop almost instantly: checkout http://g14n.info/zeroconf-redux/ or just launch

npm install zeroconf-redux
npx zeroconf-redux

Clickable PDF

Can you export a PDF?

I would like to add hyperlinks but with PNG that wouldn't make sense.

Fix errors in README file

There are typos and grammars issues can be fixed. The paragraphs can be more concise in the perspective of technical writing.

Charts and Animations

Charts and Animations is something that you are going to face as a web developer, sooner or later.

For charts, maybe D3 should be the "must" and Recharts as the proposed library (http://recharts.org/en-US/)

For Animations... I have my second thoughts

[State Magement] Include setState + new context API

I think it's important to fully understand setState and new context API before learning a more complex solution like redux or mobX.
It usually covers most of the state management requirements and let's you understand what problems those tool help you with.

Create webapp to keep track of your progress

Create webapp to keep track of your progress, with option to tick off items you already know and so on.

I'm working on it in my free time :-) if anyone wants to help, just reply here.

Add Accessibility to Roadmap

Accessibility is extremely important and I think it would be amazing if that was mentioned somewhere in the roadmap, specifically within the basics section. That might help boost the number of developers actively thinking about how to best build universal experiences for all users.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.