Прогрессивное обучение путем кодирования программ и примеров в порядке возрастания сложности.
Мы будем применять очень методичный подход к созданию и пониманию каждого основного шага приложения.
Это часть программы Освоение фронтенд-инжиниринга за 12–20 недель, над которой мы работаем.
Ниже приведены приложения, утилиты и модули, которые мы будем создавать в этом упражнении (на данный момент двухлетний план по получению большей части блока в зависимости от доступности членов команды для работы над ним).
Примечание:
Публикация повестки дня для справки. Работа над этим уже началась, и мы надеемся, что в ближайшие две недели содержание и руководства будут публиковаться на https://teachyourselfcoding.com.
Также, пожалуйста, не пугайтесь огромного количества проектов, начиная от простых приложений командной строки и заканчивая законченными веб-приложениями, поскольку мы будем почти повторно использовать 50% кода приложения.
Идея нижеприведенных приложений заключается в том, что они почти охватывают все основные аспекты Интернета, программного обеспечения и разработки приложений, которые создают люди по всему миру.
Мы просто не хотим кодировать эти решения , а тщательно продумывать дизайн, чтобы мы могли повторно использовать как можно больше кода и изучать дизайн и архитектуру в процессе.
Я знаю, что это огромная задача, но я планирую это с учетом долгосрочного видения наших людей, которых мы нанимаем, а также обычных учеников, участников фри-кодекэмперов или всех, кто хочет быть лучше, чем они сейчас.
Структуры данных и алгоритмы
- Кодирование связанного списка
- Набор агрегатов
- Кодирование кругового и двусвязного списка
- Реализовать очередь
- Реализовать двоичное дерево
- Линейный поиск
- Бинарный поиск
- Сортировка слиянием
- Сортировка по скорлупе
- Вставка сортировки
- Быстрая сортировка
- График
- Хеш-таблица
- BTree
- Пытается
Шаблоны проектирования
- Творческий шаблон дизайна
- Шаблон поведенческого дизайна
- Структурный шаблон проектирования
Разработка проектов и продуктов
- Создайте свою собственную утилиту для копирования файлов
- Создайте свою собственную утилиту для переименования файлов / mv
- Кодируйте команду "голова и хвост".
- Код сенсорной команды
- Код утилиты массового переименования файлов
- Создайте программу для разделения и объединения больших файлов.
- Кодирование визуализатора дискового пространства
- Запрограммируйте утилиту типа curl
- Создание пользовательского регистратора
- Кодируйте свои собственные строковые функции, такие как substring, left, right, pad и т. Д.
- Создайте простой HTTP-сервер
- Создайте простой сервер веб-сокетов
- Создайте приложение для чата в реальном времени
- Написание простого vi-подобного редактора
- Создайте простой сервер JSON
- Создайте простой файловый сервер
- Создание онлайн-текстового процессора на основе json
- Создание электронной таблицы в Интернете
- Код утилиты для отправки электронной почты из командной строки
- Преобразование чисел в английские слова.
- Создайте простой URL-маршрутизатор
- Код утилиты сокращения URL
- Кодирование утилиты преобразования HTML в PDF из командной строки
- Написание собственного простого игрового движка
- Создайте код для консольной игры.
- Запрограммируйте таймер помидора
- Кодирование игры в змейку
- Написание собственного инструмента модульного тестирования
- Написание приложения для изучения орфографии для детей
- Написание игры для сапера
- Создание небольшой игры, похожей на марио
- Кодирование многопользовательской игры в крестики-нолики
- Кодирование экстремальной прорывной игры
- Кодирование игры в понг
- Создание ракетной командной игры
- Создание приложения для создания слайд-шоу
- Написание календаря и планировщика событий
- Создание приложения для бронирования встреч
- Кодирование настольного приложения, такого как vscode
- Веб-воркеры, стриминг
- Аниматор
- Кодирование системы аутентификации и авторизации.
- Написание онлайн-редактора кода, такого как jsbin, codepen.
- Кодирование приложения для заметок.
- Кодирование движка блога
- Создание программного обеспечения для форума
- Создание механизма анализа викторин / навыков
- Сборка новостного агрегатора
- Кодирование распределенного кеша
- Кодирование приложения для генеалогического древа
- Написание совместного вики-подобного приложения
- Кодирование приложения для электронной коммерции
- Кодирование редактора nosql
- Кодирование ORM (объектно-реляционного сопоставителя)
- Написание собственного мини-сервера nosql.
- Кодирование графического редактора
- Написание мини-редактора визуального программирования
- Написание собственного ExpressJS-фреймворка
- Создайте приложение для гибкого управления задачами
- Кодирование клона pinterest
- Создание рынка обмена навыками, такого как fiverr
- Создание социальной сети, такой как facebook
- Построение системы учета / выставления счетов
- Создание портала для поиска работы и сетевого приложения, такого как linkedin.
- Создание сайта, похожего на Airbnb.
- Создание CRM
- Клонирование Reddit
- Создайте WhatsApp / Telegram как мессенджер
- Построение системы управления контентом (CMS)
- Система управления Building Form
- Создание системы отслеживания ошибок
- Создание приложения Geo tracker
- Кодирование инструмента составления интеллект-карт
- Кодирование собственного транспайлера
- Кодирование вашего собственного интерпретируемого языка
- Создание системы управления обучением, подобной Udemy.
- Создание клона Gmail
- Создание приложения для визуализации данных
- Создание клона Twitter
- Приложение для распознавания изображений
- Приложение для создания форм
- Приложение для создания списка рассылки
- Система управления обучением
- + еще впереди
Будет некоторая избыточность, которая будет отфильтрована позже.
Конечно, в ходе подготовки я буду объединяться с единомышленниками, поскольку это не задача одного человека.
Вскоре я буду упорядочивать проекты по степени сложности и связности.
Для этого уже создан специальный веб-сайт. Первый бета-контент будет опубликован примерно на 3-й неделе мая 2020 года на сайте https://teachyourselfcoding.com.