TIF's Guide To Become A Frontend Developer
Published: 2022-07-02 09:13:16

According to [Stackoverflow](https://insights.stackoverflow.com/survey/2021), their platform consists of 27.42% frontend developers and according to [Statista](https://www.statista.com/statistics/1124699/worldwide-developer-survey-most-used-frameworks-web/), 40.14% of all the developers use ReactJS Framework around the world.

Front-end developers are the ones who are responsible for how your website looks and operates. The end-user directly interacts with the work of a front-end developer.

At TIF, we all have been working with multiple tech teams around the world. This guide can get you started and get you to the next stage of Frontend Development. But following the courses won't make you a pro. It's just writing code and solving different problems.

You need to sit and dedicate a lot of time to learn the ins and outs of these techs.

Rest assured the following roadmap is everything that you need to know as a beginner.

(You can also jump to the end to get the list of resources and miss some important information)

HTML & CSS
----------

The flashy and user-friendly websites that you see today are the results of HTML and CSS. These two are responsible for the layout and format of the pages that you visit. 

If a web page is a body then HTML is supposed to be its skeleton and CSS to be the skin.

While you can create websites using just HTML they might look mundane. Therefore CSS comes into the picture to add style to visuals.

💡Pro-tip: Get a basic idea of these technologies and move forward.

You will learn a lot of things by doing projects in Javascript and React. Waiting to learn everything will stop you from seeing the real magic of web development 😉 

Check out these cool links to see what they can do: 

Here are the RESOURCES for you to start learning 

### HTML

![No alt text provided for this image](https://media-exp1.licdn.com/dms/image/D4D12AQHzF1DOjjRq_A/article-inline_image-shrink_1500_2232/0/1654429748948?e=1661990400&v=beta&t=ff0pe2wFT7xQcu5yZULxA-7EqGs6EKOPvasOmkaid08)

1\. [Learn HTML5 for free: an intro to HTML | Scrimba](https://scrimba.com/learn/html)

-   Depth: Basic
-   Learn HTML5 by building your own website in less than an hour!

![No alt text provided for this image](https://media-exp1.licdn.com/dms/image/D4D12AQEwvwt-1Y11kw/article-inline_image-shrink_1500_2232/0/1654429766862?e=1661990400&v=beta&t=LyrDqhlxTVyaSyP4dZ_Z0fuW_vL-XTrTge4Zv9NS2ss)

2\. [Mozilla.org HTML Docs](https://developer.mozilla.org/en-US/docs/Web/HTML)

-   This series of docs is the one place you need to learn HTML

### CSS

![No alt text provided for this image](https://media-exp1.licdn.com/dms/image/D4D12AQFxTcJ_jm3iRw/article-inline_image-shrink_1500_2232/0/1654429778697?e=1661990400&v=beta&t=YnVrB96NV-J2uH3-2R0exoFsNjrjjTj-0vz5RznaWaw)

1\.  [CSS course: an intro tutorial on CSS | Scrimba](https://scrimba.com/learn/introtocss)

-   Depth: Basic
-   This course contains 20 interactive tutorials and will teach you the basics of CSS in an hour.

![No alt text provided for this image](https://media-exp1.licdn.com/dms/image/D4D12AQFUfO7GB_FuRA/article-inline_image-shrink_1000_1488/0/1654429796437?e=1661990400&v=beta&t=EJ_QuffaEBw8biPEPC50-PGW6Qe_ULqu9EL9_vxl4hY)

2\. [CSS Tutorial - Zero to Hero Freecodecamp](https://youtu.be/1Rs2ND1ryYc)

-   Depth: Advance
-   You will learn everything from basic skills, such as coloring and text, to highly advanced skills, like custom animations.

![No alt text provided for this image](https://media-exp1.licdn.com/dms/image/D4D12AQH1DQTsdqvnWA/article-inline_image-shrink_1500_2232/0/1654429818546?e=1661990400&v=beta&t=6aUW0AZ3woyuh_hTwUnf-G3D2Ks3pIgxED_HR4qLYBA)

3\. [CSS-Tricks - Tips, Tricks, and Techniques on using Cascading Style Sheets.](https://css-tricks.com/)

-   Acquired by Digital Ocean, this website is the all-in-one resource to learn everything you need and even the things you might think is impossible.

### Practice Tasks

Task 1

Deadline: 3 days

Description: Make a clone of [Netflix](https://www.netflix.com/in/) landing page by using HTML and CSS

![No alt text provided for this image](https://media-exp1.licdn.com/dms/image/D4D12AQHlB1Y8qOCRLQ/article-inline_image-shrink_1500_2232/0/1654429842657?e=1661990400&v=beta&t=Cd8SSrfuq6THq-G4Ze1APpZutnKgkGPFv0eSqS3ighQ)

1.  The output may not look similar but try to create it as close to the original Netflix website as possible.
2.  Create the whole landing page and not just this screenshot
3.  Create on your own. Do not follow any course to create this.

Javascript
----------

As the above two are responsible for the visual appearance of the website, javascript is responsible for its workings. 

It enables the interface of your webpage. Move your cursor along with the Youtube thumbnail and a short clip appears, that's JS.

After you are familiar with Javascript, working together with HTML, CSS and JS will enable you to create your own websites. You can start with an internship, or it might even come in handy in designing your own websites for your little business ventures. 

💡Pro-tip: You may not find yourself working on native Javascript much when you will start working on ReactJS.

Working on React and working on Javascript are quite different. We advise you to learn the basics of JS and move forward to ReactJS. 

Here are the RESOURCES for you to start learning JS:

![No alt text provided for this image](https://media-exp1.licdn.com/dms/image/D4D12AQEBZfGRDTPb0A/article-inline_image-shrink_1000_1488/0/1654429853027?e=1661990400&v=beta&t=HundyE-mLmgB7H8uFpmgdaviOQEh6kj8Xb9LtdD8Re0)

1\. [JavaScript Tutorial for Beginners](https://www.youtube.com/watch?v=W6NZfCO5SIk)

-   This video will help you get an overview of Javascript

![No alt text provided for this image](https://media-exp1.licdn.com/dms/image/D4D12AQGsmW_Z8TmnAg/article-inline_image-shrink_1000_1488/0/1654429868826?e=1661990400&v=beta&t=zOJKfPvvMDg_VrA4pg8949S5qc3TRuzTJgqnqGwQmXs)

2\. [Javascript Playlist by Mosh ](https://youtube.com/playlist?list=PLTjRvDozrdlxEIuOBZkMAK5uiqp8rHUax)

-   Depth: Basics
-   This Youtube playlist is all you need to learn the basics of Javascript

![No alt text provided for this image](https://media-exp1.licdn.com/dms/image/D4D12AQEdUzD8675Xvg/article-inline_image-shrink_1500_2232/0/1654429888961?e=1661990400&v=beta&t=0znNEOs0wk8L1-UPsYZCt_A0nvkgBK5Desot5qdmsXg)

3\. [Javascript 30: 30 Day Vanilla JS Coding Challenge](https://javascript30.com/)

-   Worrying about a new idea for a JS project? This website has a collection of 30 project tutorials that you can easily follow to learn JS.

### Practice Task

Task 1

Deadline: 1-day

Description: Build a tic-tac-toe game

1.  Create a 3x3 grid and 2 users can play this game by marking O and X
2.  The first player to mark 3 horizontal, vertical, or diagonal blocks will win.
3.  Set your deadline for 6 hours.

Package Manager
---------------

A package manager helps you to install new software, update your existing versions and uninstall software.

The [node package manager](https://www.npmjs.com/) and [yarn](https://yarnpkg.com/) are the most commonly used ones.

Here are the RESOURCES for you to start learning package manager:

![No alt text provided for this image](https://media-exp1.licdn.com/dms/image/D4D12AQE8-UNW7qAXWw/article-inline_image-shrink_1500_2232/0/1654429911590?e=1661990400&v=beta&t=UfYx939_Q5iZ6705RCaaEeR_bktwibgGcswzr4D-_j8)

1\. [Yarn vs npm: Everything You Need to Know - SitePoint](https://www.sitepoint.com/yarn-vs-npm/)

-   Just having a basic knowledge of it is enough

ReactJS
-------

Developers often use the words Framework and Library interchangeably. A library is like a furniture in the home whereas a Framework is like a skeleton to build the home and as many homes as you want. 

There are multiple options to choose a skeleton from but none of them are the same.

React is a great framework to be used for front-end development. It's easier to code in React than in JS and probably that's the reason developers love it.

💡Pro-tip: Once you are familiar with React, learn from its official documentation. It is the best way to get familiar with react is to read the docs https://reactjs.org/docs/getting-started.html.

Here are the RESOURCES for you to start learning:

![No alt text provided for this image](https://media-exp1.licdn.com/dms/image/D4D12AQHwqWemgOpKdA/article-inline_image-shrink_1500_2232/0/1654429926517?e=1661990400&v=beta&t=iYTIihICTNIZwnOgeMy90J2FEC_N_m_rdK8CNYAJbGQ)

1\. [Egghead React Course](https://egghead.io/courses/the-beginner-s-guide-to-react)

-   Depth: Beginner
-   This course is for React newbies and anyone looking to build a solid foundation. It's designed to teach you everything you need to start building web applications in React right away.

![No alt text provided for this image](https://media-exp1.licdn.com/dms/image/D4D12AQEwAVxZwJcn6g/article-inline_image-shrink_1500_2232/0/1654429939997?e=1661990400&v=beta&t=iZxeNlcf-Q8tbav-bAqIbac4EqSY1iE4uXVrBmVDvaw)

2\. [Scrimba React Course](https://scrimba.com/learn/learnreact)

-   Depth: Intermediate
-   You will learn the basics and more with this interactive React course.

ReactJS Libraries
-----------------

When writing a program there might be certain patterns in the code being used repeatedly to accomplish the same tasks. This led to the development of javascript libraries. 

Javascript libraries are one of those things which are not at all necessary for you but have made programming so efficient that it is imperative that you learn to use them.

We recommend you start with

1\. [Chakra UI](https://chakra-ui.com/)

-   Chakra UI is a component library that gives you the building blocks you need to build your React applications.

2\. [Redux Toolkit](https://redux-toolkit.js.org/) (Intermediate Level)

-   Official toolset for efficient Redux development.

3\. [React Query](https://react-query.tanstack.com/) (Advance Level)

-   It is often described as the missing data-fetching library for React, but in more technical terms, it makes fetching, caching, synchronizing, and updating server state in your React applications a breeze.

4\. [Framer Motion](https://www.framer.com/motion/) (Intermediate Level)

-   It is a production-ready motion library for React.

5\. [Formik](https://formik.org/)

-   Most popular form library for React.

💡Pro-tip: Read official documentation. They are a great resource for learning and may not seem interesting like watching a video but they have the nuances of tech that nobody else explains.

Here are the RESOURCES for you to start learning:

1\. Chakra UI

![No alt text provided for this image](https://media-exp1.licdn.com/dms/image/D4D12AQFRkO0BmIU_bw/article-inline_image-shrink_1500_2232/0/1654429985928?e=1661990400&v=beta&t=iqA373eMB2eR5xItXeHkcWryN2KzfaRgDQPA1APPJrA)

-   [Build a Modern User Interface with Chakra UI](https://egghead.io/courses/build-a-modern-user-interface-with-chakra-ui-fac68106)
-   A short and simple course to help you learn to build interfaces using Chakra UI.

2\. Redux Toolkit (Intermediate Level)

![No alt text provided for this image](https://media-exp1.licdn.com/dms/image/D4D12AQFT8FbYAWspOA/article-inline_image-shrink_1500_2232/0/1654430013406?e=1661990400&v=beta&t=xU6VktKG7yC-ok8Oo0qjCKtwDmAiUm3cvYvhPccMvys)

-   [Redux.org Docs](https://redux.js.org/introduction/core-concepts) 
-   You can get an overview of Redux here

![No alt text provided for this image](https://media-exp1.licdn.com/dms/image/D4D12AQHT-jpuYV_8vA/article-inline_image-shrink_1000_1488/0/1654430033162?e=1661990400&v=beta&t=nHLL5EH9RBb2iMRXrxsPpJWuETA5mIW4EAZREULYKPo)

-   [Redux Tutorial (with Redux Toolkit)](https://www.youtube.com/watch?v=iBUJVy8phqw)
-   This tutorial contains all the basic information and hands-on you need to start working with RTK.

![No alt text provided for this image](https://media-exp1.licdn.com/dms/image/D4D12AQFNX21hSl7sKA/article-inline_image-shrink_1000_1488/0/1654430051890?e=1661990400&v=beta&t=5R1w7xXc2JBU3onqFo0JVkNx8SmQsgSgRWyDK7Z1j0I)

-   [Let's Learn Modern Redux! (with Mark Erikson)](https://www.youtube.com/watch?v=9zySeP5vH9c)
-   In this tutorial, maintainer of Redux Toolkit will explain how to use RTK

3\. React Query (Advance Level)

![No alt text provided for this image](https://media-exp1.licdn.com/dms/image/D4D12AQHFYyFF_UxZLg/article-inline_image-shrink_1500_2232/0/1654430078443?e=1661990400&v=beta&t=38fMmfipfIUZmZtX_lHI-UHRHERbHmkXJQEwJsTdeA8)

-   [Practical React Query | TkDodo's blog](https://tkdodo.eu/blog/practical-react-query)
-   For an overview of React Query

![No alt text provided for this image](https://media-exp1.licdn.com/dms/image/D4D12AQHBcfcJYGq3MQ/article-inline_image-shrink_1500_2232/0/1654430090763?e=1661990400&v=beta&t=l_7hUHTHjqzcrJ3zS3AwUiCrwKhbzCpMwm6feS6ArtI)

-   [Overview | React Query | TanStack](https://react-query.tanstack.com/overview)
-   The official documentation of React Query is the best place to learn React Query.

4\. Framer Motion (Intermediate Level)

![No alt text provided for this image](https://media-exp1.licdn.com/dms/image/D4D12AQEHmgxl6NpWvA/article-inline_image-shrink_1000_1488/0/1654430111762?e=1661990400&v=beta&t=09hNQG220khsOPQMTVXUpZ93GIlH1ps1-LHSkU-mp2c)

-   [Framer Motion (for React) Tutorial](https://www.youtube.com/playlist?list=PL4cUxeGkcC9iHDnQfTHEVVceOEBsOf07i)
-   This playlist will help you get started with Framer motion.

![No alt text provided for this image](https://media-exp1.licdn.com/dms/image/D4D12AQE9jJF6XCbKTg/article-inline_image-shrink_1500_2232/0/1654430125095?e=1661990400&v=beta&t=_s76e76mGmdrNor-mTnKWd4WVJABQ2v-ZZm84YkoX0g)

-   [Framer Official Docs](https://www.framer.com/docs/introduction/)
-   Yes! The official documentation again.

5\. Formik

![No alt text provided for this image](https://media-exp1.licdn.com/dms/image/D4D12AQFdB0Cc5dlBzw/article-inline_image-shrink_1500_2232/0/1654430140744?e=1661990400&v=beta&t=eiPb81cY6e_pHhX7mLSxzy7aqa7BwXrYAi0o3bKE-9A)

-   [Formik.org Docs](https://formik.org/docs/overview)
-   And the official documentation again.

Practice Task:
--------------

1\. Create Swiggy Restaurant Listing UI using Chakra and Framer Motion

![No alt text provided for this image](https://media-exp1.licdn.com/dms/image/D4D12AQGD_TQTI0y47A/article-inline_image-shrink_1500_2232/0/1654430166628?e=1661990400&v=beta&t=V2kWZ_vb1klEuDmq_haxLnuTknfnnbIPRhurrtDIrw4)

-   Create the build pixel-perfect to the design. Use the same font, same size, same spacing, same images, and the same color as per the design
-   Create the whole landing page and not just this screenshot
-   Set the deadline for 3 days

2\. Create Swiggy Favourite Page using Redux Toolkit (not Redux)

-   Let's go beyond what Swiggy does and create a favorite button for their restaurant listing
-   Add a star button on their restaurant cards
-   And create a page to show all the user's favorites restaurants using Redux Toolkit
-   Set the deadline for 2 days

3\. Swiggy Restaurant Listing pages with React Query

-   Use the newly modify Swiggy Restaurant Page and add React Query to its pagination
-   Set the deadline for 2 days

4\. Swiggy Multi-step Survey Form using Formik

-   Let's again go beyond what Swiggy does and create a multi-step survey form for Restaurants
-   Create a 3 step form using the Formik library
-   Set the deadline for 3 days

IDE (Integrated development environment)
----------------------------------------

The main aim of using an IDE is to increase your productivity. An IDE is a software that combines common developer tools into a single Graphical User Interface (GUI) for developing programs.

Visual studio code is the IDE that our team prefers and suggests.

VS Code Cheat Sheet:

![No alt text provided for this image](https://media-exp1.licdn.com/dms/image/D4D12AQF78EOS3yzryw/article-inline_image-shrink_1000_1488/0/1654430194594?e=1661990400&v=beta&t=s_Zg7gm7cdCX4I4NqF2F8K6HcxAvP3UV5fYz9uj_Zew)

-   [Visual Studio Code Tips and Tricks](https://code.visualstudio.com/docs/getstarted/tips-and-tricks)
-   You don't have to mug up all the info in this blog. Just having an idea of all these things is good and obviously, you can use some tricks to remove some work from your shoulder.

Good To Know Tools
------------------

Linters & Formatters
--------------------

Ever tried using a rough notebook to write something important and then finding it impossible to search it in the future? The same might happen with your code too.

Linters and formatters make you follow best practices and improve your code consistency and thus making it easy to read and understand for you as well as others.

Here are the RESOURCES for you to start learning:

![No alt text provided for this image](https://media-exp1.licdn.com/dms/image/D4D12AQF2658fdwGv_w/article-inline_image-shrink_1000_1488/0/1654430220298?e=1661990400&v=beta&t=KqFzCyq_ASBqdJE0oGOtwlAcvqMAXklR2EKNAsihl6Q)

-   <https://javascript.plainenglish.io/set-up-react-js-with-eslint-prettier-and-airbnb-cc015363a7c7>
-   Using Linters and Formatters is no rocket science, this blog contains all the things you will need to get it into use.

Git & Github
------------

Having your own Github account is an amazing way to track your progress and collaborate with your team. You can add your projects and snippets and keep revisiting them from time to time.

This also acts as a great attachment to your resume.

Here are the RESOURCES for you to start learning:

![No alt text provided for this image](https://media-exp1.licdn.com/dms/image/D4D12AQGjy0IQzVU9gQ/article-inline_image-shrink_1500_2232/0/1654430237022?e=1661990400&v=beta&t=4FnCDX16HGjd68QmQYoXC4cBQKP7wRLU19mHIyqbYSM)

-   [Git and GitHub Tutorial](https://www.freecodecamp.org/news/git-and-github-for-beginners/)

![No alt text provided for this image](https://media-exp1.licdn.com/dms/image/D4D12AQHndmGJgY0D8Q/article-inline_image-shrink_1500_2232/0/1654430248437?e=1661990400&v=beta&t=mAkycjKOX6KxOvsV4KvcPaLY1cDUSlb8CDIlXW4zLtY)

-   [Github Cheat Sheet](https://education.github.com/git-cheat-sheet-education.pdf)

Wrap-up of the roadmap 
-----------------------

Start with HTML and CSS and then make your own web pages as soon as you grasp the basics. As you move further the guide make sure to keep this process in check, making things along the way.

While building projects, one thing you can do is to make things that might be of utility to you. Build a note-taking app, an alarm clock, a to-do list, etc.

If you will be invested in the process and using it in your daily lives then it'll be more interesting for you to work on your learnings. It'll also make your journey even more fulfilling.

As time passes by, keep challenging yourself by increasing the complexity of your projects. Add animations to your clock, make your to-do list page a little more interactive by adding certain bullet journaling techniques, etc.

You can definitely choose any other framework of JS but with the current trend in technology, we recommend React. It's a great skill to learn.

Follow this roadmap and by the time you are done with it not only, you would be well learned but also well practiced with each and every concept.

Let us know in the comments if you have any doubts during the process. We'll be happy to help. :)

List of Resources
-----------------

### HTML & CSS

-   [Learn HTML5 for free: an intro to HTML | Scrimba](https://scrimba.com/learn/html)
-   [Mozilla.org HTML Docs](https://developer.mozilla.org/en-US/docs/Web/HTML)
-   [CSS course: an intro tutorial on CSS | Scrimba](https://scrimba.com/learn/introtocss)
-   [CSS Tutorial - Zero to Hero Freecodecamp](https://youtu.be/1Rs2ND1ryYc)
-   [CSS-Tricks - Tips, Tricks, and Techniques on using Cascading Style Sheets.](https://css-tricks.com/)

### Javascript

-   [JavaScript Tutorial for Beginners](https://www.youtube.com/watch?v=W6NZfCO5SIk)
-   [Javascript Playlist by Mosh ](https://youtube.com/playlist?list=PLTjRvDozrdlxEIuOBZkMAK5uiqp8rHUax)
-   [Javascript 30: 30 Day Vanilla JS Coding Challenge](https://javascript30.com/)

### Package Manager

-   [Yarn vs npm: Everything You Need to Know - SitePoint](https://www.sitepoint.com/yarn-vs-npm/)

### React

-   [Egghead React Course](https://egghead.io/courses/the-beginner-s-guide-to-react)
-   [Scrimba React Course](https://scrimba.com/learn/learnreact)

### ReactJS Libraries

-   [Build a Modern User Interface with Chakra UI](https://egghead.io/courses/build-a-modern-user-interface-with-chakra-ui-fac68106)
-   [Redux.org Docs](https://redux.js.org/introduction/core-concepts) 
-   [Redux Tutorial (with Redux Toolkit)](https://www.youtube.com/watch?v=iBUJVy8phqw)
-   [Let's Learn Modern Redux! (with Mark Erikson)](https://www.youtube.com/watch?v=9zySeP5vH9c)
-   [Practical React Query | TkDodo's blog](https://tkdodo.eu/blog/practical-react-query)
-   [Overview | React Query | TanStack](https://react-query.tanstack.com/overview)
-   [Framer Motion (for React) Tutorial](https://www.youtube.com/playlist?list=PL4cUxeGkcC9iHDnQfTHEVVceOEBsOf07i)
-   [Framer Official Docs](https://www.framer.com/docs/introduction/)
-   [Formik.org Docs](https://formik.org/docs/overview)

### IDE

-   [Visual Studio Code Tips and Tricks](https://code.visualstudio.com/docs/getstarted/tips-and-tricks)

### Linters & Formatters

-   <https://javascript.plainenglish.io/set-up-react-js-with-eslint-prettier-and-airbnb-cc015363a7c7>

### Git & Github

-   [Git and GitHub Tutorial](https://www.freecodecamp.org/news/git-and-github-for-beginners/)
-   [Github Cheat Sheet](https://education.github.com/git-cheat-sheet-education.pdf)