Skip to content

S1THOF/Learn-with-GPT

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Learn-with-GPT

RU

Привет!

После очередного забрасывания изучения фронтенда я решил прибегнуть к помощи GPT у которого попросил написать основные навыки для прохождения собеседования на junior позицию и дедлайн на изучение в 2 месяца, а также дать задания для закрепления. На данный запрос я получил расписание:

Неделя 1: JavaScript (ES6 и выше)

  • День 1-2: Основы JS (стрелочные функции, деструктуризация, шаблонные строки).
  • День 3-4: Promises и async/await.
  • День 5-6: Практика: напиши небольшие скрипты, используя изученные функции.
  • День 7: Рефлексия: что тебе понравилось? Где у тебя возникли трудности?

Неделя 2: React (основа)

  • День 8-9: Изучение функциональных и классовых компонентов, JSX и виртуальный DOM.
  • День 10-11: useState и useEffect.
  • День 12-14: Создание своего небольшого проекта на React (например, ToDo приложение).

Неделя 3: Углубление в React

  • День 15-16: Обработка событий, работа с формами.
  • День 17-18: Использование useReducer и контекста (useContext).
  • День 19-21: Погружение в тестирование компонентов с использованием React Testing Library.

Неделя 4: TypeScript и Redux

  • День 22-23: Изучение основ TypeScript и его использование в React.
  • День 24-25: Введение в Redux (actions, reducers, store).
  • День 26-28: Создание простого проекта с использованием Redux и TypeScript.

Неделя 5: Управление состоянием и Fetch API

  • День 29-30: Глубокое изучение Redux и redux-thunk для асинхронных действий.
  • День 31-32: Изучение Fetch API, работа с REST API.
  • День 33-35: Реализация асинхронного API-вызова в проекте.

Неделя 6: CSS и инструменты

  • День 36-37: Основы CSS и Flexbox.
  • День 38-39: БЭМ-методология.
  • День 40-42: Вводная работа с Git (настройка репозитория, коммиты, ветки).

Неделя 7: Инструменты сборки и тестирование

  • День 43-44: Углубление в npm и yarn.
  • День 45-46: Написание unit-тестов с Jest.
  • День 47-49: Тестирование React-компонентов с React Testing Library.

Неделя 8: Повторение и практика

  • День 50-54: Повторение ключевых тем, практическое применение знаний, работа над существующими проектами или создание нового проекта с использованием всех изученных технологий.
  • День 55-56: Подготовка к собеседованию (практика ответов на вопросы, возможные проекты).

И задания для самостоятельной практики:

1. JavaScript (ES6 и выше)

Задание 1: Стрелочные функции

  • Напиши функцию, которая принимает два числа и возвращает их сумму и произведение, используя стрелочные функции.

Задание 2: Деструктуризация

  • Создай объект с данными пользователя (имя, возраст, email) и распакуй значения в отдельные переменные, затем выведи их в консоль.

Задание 3: Шаблонные строки

  • Напиши функцию, которая принимает имя и возраст пользователя и возвращает строку в формате: "Имя: [имя], Возраст: [возраст]".

Задание 4: Promises и async/await

  • Создай функцию, которая делает GET-запрос к публичному API (например, jsonplaceholder.typicode.com) и выводит результат в консоль. Используй как Promises, так и async/await.

2. React (основа)

Задание 5: Создание простого компонента

  • Создай функциональный компонент Greeting, который принимает props и отображает приветствие (например, "Hello, [имя]!").

Задание 6: Состояние с useState

  • Создай компонент Counter, который отображает число (изначально 0) и две кнопки: "Увеличить" и "Уменьшить". Используй useState для управления состоянием.

Задание 7: Эффекты с useEffect

  • Создай компонент, который использует useEffect для вывода в консоль сообщения каждый раз, когда компонент монтируется.

3. Углубление в React

Задание 8: Обработка событий

  • Создай форму с полем ввода и кнопкой. При нажатии на кнопку выводи значение поля ввода в консоль.

Задание 9: useReducer

  • Создай компонент для управления сложным состоянием с помощью useReducer, например, для управления списком задач (то есть добавление, удаление и отметка выполненной задачи).

Задание 10: Тестирование компонентов

  • Напиши тест для компонента Greeting с использованием React Testing Library, чтобы проверить, корректно ли отображается приветствие.

4. TypeScript и Redux

Задание 11: Применение TypeScript

  • Конвертируй простой функциональный компонент из JavaScript в TypeScript, добавив типизацию для props.

Задание 12: Redux actions и reducers

  • Создай простое приложение, которое включает в себя redux-store с одним action и соответствующим reducer для увеличения/уменьшения счётчика.

5. Управление состоянием и Fetch API

Задание 13: Асинхронный запрос с Fetch API

  • Создай компонент, который загружает список пользователей из API jsonplaceholder и отображает их в виде списка на странице.

Задание 14: Использование redux-thunk

  • Расширь своё приложение с redux, добавив асинхронный action creator с использованием redux-thunk для загрузки данных из API.

6. CSS и инструменты

Задание 15: Flexbox

  • Создай простой макет из трёх колонок, используя Flexbox. Каждая колонка должна занимать равное пространство и иметь разные цвета фона.

Задание 16: БЭМ-методология

  • Измени стили в существующем проекте, применяя БЭМ-методологию к классам CSS.

7. Инструменты сборки и тестирование

Задание 17: Управление зависимостями

  • Создай новый проект на React, используя Create React App, и добавь несколько зависимостей (например, axios и react-router-dom) через npm или yarn.

Задание 18: Написание unit-тестов с Jest

  • Напиши несколько unit-тестов для функции, выполняющей арифметические операции (сложение, вычитание).

Задание 19: Тестирование компонентов с React Testing Library

  • Проверь, что компонент счётчика корректно обновляет состояние и рендерится при изменении состояния.

8. Повторение и практика

Задание 20: Итоговый проект

  • Создай небольшое приложение, которое объединяет все изученные темы. Например, приложение для задач (ToDo), в котором использованы:
    • React для интерфейса
    • Redux для управления состоянием
    • TypeScript для типизации
    • Fetch API для загрузки данных из внешнего источника.
    • Применение CSS с Flexbox и БЭМ.

В этот раз точно должно получиться!

ENG

Hi!

After another bout of frontend learning, I decided to enlist the help of GPT, who asked me to write down the basic skills to interview for a junior position and a deadline of 2 months to learn them, as well as give me assignments to reinforce them. I received a timetable for this request:

Week 1: JavaScript (ES6 and above)

  • Day 1-2: JS basics (arrow functions, destructuring, pattern strings).
  • Day 3-4: Promises and async/await.
  • Day 5-6: Practice: write small scripts using the learned functions.
  • Day 7: Reflection: what did you like? Where did you have difficulties?

Week 2: React (basics)

  • Day 8-9: Learning functional and class components, JSX and virtual DOM.
  • Day 10-11: useState and useEffect.
  • Day 12-14: Creating your own small project in React (e.g. ToDo app).

Week 3: Getting Deeper into React

  • Day 15-16: Handling events, working with forms.
  • Day 17-18: Using useReducer and context (useContext).
  • Day 19-21: Diving into component testing using the React Testing Library.

Week 4: TypeScript and Redux

  • Day 22-23: Learning the basics of TypeScript and its use in React.
  • Day 24-25: Introduction to Redux (actions, reducers, stores).
  • Day 26-28: Creating a simple project using Redux and TypeScript.

Week 5: State Management and Fetch APIs

  • Day 29-30: An in-depth look at Redux and redux-thunk for asynchronous actions.
  • Day 31-32: Exploring the Fetch API, working with the REST API.
  • Day 33-35: Implementing an asynchronous API call in a project.

Week 6: CSS and tools

  • Day 36-37: CSS and Flexbox basics.
  • Day 38-39: BEM methodology.
  • Day 40-42: Introduction to Git (repository setup, commits, branches).

Week 7: Build tools and testing

  • Day 43-44: Getting deeper into npm and yarn.
  • Day 45-46: Writing unit tests with Jest.
  • Day 47-49: Testing React components with the React Testing Library.

Week 8: Repetition and Practice

  • Day 50-54: Repeating key topics, practicing, working on existing projects or creating a new project using all the learned technologies.
  • Day 55-56: Preparing for the interview (practicing answering questions, possible projects).

And assignments for independent practice:

1. JavaScript (ES6 and above)

Assignment 1: Arrow functions

  • Write a function that takes two numbers and returns their sum and product using arrow functions.

Assignment 2: Destructuring

  • Create an object with user data (name, age, email) and unpack the values into separate variables, then output them to the console.

Assignment 3: Template strings

  • Write a function that takes a user's name and age and returns a string in the format: “Name: [name], Age: [age]”.

Assignment 4: Promises and async/await

  • Create a function that makes a GET request to a public API (e.g., jsonplaceholder.typicode.com) and outputs the result to the console. Use both Promises and async/await.

2. React (basics).

Assignment 5: Create a simple component

  • Create a functional Greeting component that accepts props and displays a greeting (e.g., “Hello, [name]!”).

Task 6: State with useState

  • Create a Counter component that displays a number (initially 0) and two buttons, Increase and Decrease. Use useState to control the state.

Assignment 7: Effects with useEffect

  • Create a component that uses useEffect to display a message to the console each time the component is mounted.

3. Getting Deeper in React

Assignment 8: Event Handling

  • Create a form with an input field and a button. When the button is clicked, output the value of the input field to the console.

Assignment 9: useReducer

  • Create a component to manage complex state using useReducer, for example, to manage a list of tasks (i.e. adding, deleting and marking a task completed).

Assignment 10: Testing Components

  • Write a test for the Greeting component using the React Testing Library to see if the greeting is displayed correctly.

4. TypeScript and Redux

Assignment 11: Applying TypeScript

  • Convert a simple functional component from JavaScript to TypeScript by adding typing for props.

Assignment 12: Redux actions and reducers

  • Create a simple application that includes a redux-store with one action and a corresponding reducer to increase/decrease the counter.

5. State management and Fetch API

Assignment 13: Asynchronous Query with Fetch API

  • Create a component that loads a list of users from the jsonplaceholder API and displays them as a list on the page.

Assignment 14: Using redux-thunk

  • Extend your application with redux by adding an asynchronous action creator using redux-thunk to load data from the API.

6. CSS and tools

Assignment 15: Flexbox

  • Create a simple three-column layout using Flexbox. Each column should occupy equal space and have different background colors.

Assignment 16: BEM Methodology

  • Change the styles in an existing project by applying BEM methodology to CSS classes.

7. Build tools and testing

Assignment 17: Dependency Management

  • Create a new React project using Create React App and add a few dependencies (e.g. axios and react-router-dom) via npm or yarn.

Assignment 18: Writing unit tests with Jest

  • Write some unit tests for a function that performs arithmetic operations (addition, subtraction).

Assignment 19: Testing Components with the React Testing Library

  • Verify that the counter component correctly updates the state and renders when the state changes.

8. Repetition and practice

Assignment 20: Final Project

  • Create a small application that integrates all the topics you have learned. For example, a task application (ToDo) that uses:
    • React for the interface
    • Redux for state management
    • TypeScript for typing
    • Fetch API for loading data from an external source.
    • Applying CSS with Flexbox and BEM.

It should definitely work this time!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors