# Roadmap to become a Vue.js 2 developer in 2020

> This is a graph I made with the technologies that will make you a well-rounded developer proficient in Vue.js programming.

Author: [Flavio Copes](https://flaviocopes.com/about/) | Published: 2018-07-15 | Updated: 2019-01-17 | Topics: [Vue.js](https://flaviocopes.com/tags/vue/) | Canonical: https://flaviocopes.com/vue-developer-roadmap/

I found out the [React Developer Roadmap](https://github.com/adam-golab/react-developer-roadmap) on the web, and I decided to make one for Vue.

To be a proficient Vue.js developer, you need to learn:

1. the basics of how the Web works
2. HTML, [CSS](https://flaviocopes.com/css)
3. the [DOM](https://flaviocopes.com/dom/)
4. how browsers work
5. the [JavaScript basics](https://flaviocopes.com/javascript/), [event handling](https://flaviocopes.com/javascript-events/), the newest [ES6-7-8](https://flaviocopes.com/ecmascript/) features
6. [Git](https://flaviocopes.com/git/)
7. how to use the terminal
8. [the Vue basics](https://flaviocopes.com/vue-introduction/)
9. [webpack](https://flaviocopes.com/webpack/)
10. how to install packages using [npm](https://flaviocopes.com/npm/) or [yarn](https://flaviocopes.com/yarn/)
11. how to run tasks using npm scripts
12. CSS modern tools: SASS, [PostCSS](https://flaviocopes.com/postcss/)
13. a CSS framework like Tailwind or Bootstrap or another
14. how to use CSS in JS using Single File Components
15. how to manage state using component state or [vuex](https://flaviocopes.com/vuex/), and its libraries
16. how to check types using prop types or [TypeScript](https://flaviocopes.com/typescript)
17. how to handle routing using [vue-router](https://flaviocopes.com/vue-router/)
18. how to consume APIs using [GraphQL](https://flaviocopes.com/graphql/)/[Apollo](https://flaviocopes.com/apollo/)/REST using [axios](https://flaviocopes.com/axios/) or [fetch](https://flaviocopes.com/fetch-api/)
19. use an utility library like lodash or moment
20. how to test using [Jest](https://flaviocopes.com/jest/) and the [Vue Test Utils](https://vue-test-utils.vuejs.org)
21. how to perform end to end testing using Cypress or [Puppeteer](https://flaviocopes.com/puppeteer/) or others
22. how to build a desktop Vue app using [Electron](https://flaviocopes.com/electron/)
23. how to internationalize an app using [`vue-i18n`](https://github.com/kazupon/vue-i18n)
24. how to implement server-side rendering

The list could grow indefinitely, but those are the basics of a well-rounded Vue developer 😇
