Прогрессивное обучение путем кодирования программ и примеров в порядке возрастания сложности.

Мы будем применять очень методичный подход к созданию и пониманию каждого основного шага приложения.

Это часть программы Освоение фронтенд-инжиниринга за 12–20 недель, над которой мы работаем.

Ниже приведены приложения, утилиты и модули, которые мы будем создавать в этом упражнении (на данный момент двухлетний план по получению большей части блока в зависимости от доступности членов команды для работы над ним).

Примечание:

Публикация повестки дня для справки. Работа над этим уже началась, и мы надеемся, что в ближайшие две недели содержание и руководства будут публиковаться на https://teachyourselfcoding.com.

Также, пожалуйста, не пугайтесь огромного количества проектов, начиная от простых приложений командной строки и заканчивая законченными веб-приложениями, поскольку мы будем почти повторно использовать 50% кода приложения.

Идея нижеприведенных приложений заключается в том, что они почти охватывают все основные аспекты Интернета, программного обеспечения и разработки приложений, которые создают люди по всему миру.

Мы просто не хотим кодировать эти решения , а тщательно продумывать дизайн, чтобы мы могли повторно использовать как можно больше кода и изучать дизайн и архитектуру в процессе.

Я знаю, что это огромная задача, но я планирую это с учетом долгосрочного видения наших людей, которых мы нанимаем, а также обычных учеников, участников фри-кодекэмперов или всех, кто хочет быть лучше, чем они сейчас.

Структуры данных и алгоритмы

  1. Кодирование связанного списка
  2. Набор агрегатов
  3. Кодирование кругового и двусвязного списка
  4. Реализовать очередь
  5. Реализовать двоичное дерево
  6. Линейный поиск
  7. Бинарный поиск
  8. Сортировка слиянием
  9. Сортировка по скорлупе
  10. Вставка сортировки
  11. Быстрая сортировка
  12. График
  13. Хеш-таблица
  14. BTree
  15. Пытается

Шаблоны проектирования

  1. Творческий шаблон дизайна
  2. Шаблон поведенческого дизайна
  3. Структурный шаблон проектирования

Разработка проектов и продуктов

  1. Создайте свою собственную утилиту для копирования файлов
  2. Создайте свою собственную утилиту для переименования файлов / mv
  3. Кодируйте команду "голова и хвост".
  4. Код сенсорной команды
  5. Код утилиты массового переименования файлов
  6. Создайте программу для разделения и объединения больших файлов.
  7. Кодирование визуализатора дискового пространства
  8. Запрограммируйте утилиту типа curl
  9. Создание пользовательского регистратора
  10. Кодируйте свои собственные строковые функции, такие как substring, left, right, pad и т. Д.
  11. Создайте простой HTTP-сервер
  12. Создайте простой сервер веб-сокетов
  13. Создайте приложение для чата в реальном времени
  14. Написание простого vi-подобного редактора
  15. Создайте простой сервер JSON
  16. Создайте простой файловый сервер
  17. Создание онлайн-текстового процессора на основе json
  18. Создание электронной таблицы в Интернете
  19. Код утилиты для отправки электронной почты из командной строки
  20. Преобразование чисел в английские слова.
  21. Создайте простой URL-маршрутизатор
  22. Код утилиты сокращения URL
  23. Кодирование утилиты преобразования HTML в PDF из командной строки
  24. Написание собственного простого игрового движка
  25. Создайте код для консольной игры.
  26. Запрограммируйте таймер помидора
  27. Кодирование игры в змейку
  28. Написание собственного инструмента модульного тестирования
  29. Написание приложения для изучения орфографии для детей
  30. Написание игры для сапера
  31. Создание небольшой игры, похожей на марио
  32. Кодирование многопользовательской игры в крестики-нолики
  33. Кодирование экстремальной прорывной игры
  34. Кодирование игры в понг
  35. Создание ракетной командной игры
  36. Создание приложения для создания слайд-шоу
  37. Написание календаря и планировщика событий
  38. Создание приложения для бронирования встреч
  39. Кодирование настольного приложения, такого как vscode
  40. Веб-воркеры, стриминг
  41. Аниматор
  42. Кодирование системы аутентификации и авторизации.
  43. Написание онлайн-редактора кода, такого как jsbin, codepen.
  44. Кодирование приложения для заметок.
  45. Кодирование движка блога
  46. Создание программного обеспечения для форума
  47. Создание механизма анализа викторин / навыков
  48. Сборка новостного агрегатора
  49. Кодирование распределенного кеша
  50. Кодирование приложения для генеалогического древа
  51. Написание совместного вики-подобного приложения
  52. Кодирование приложения для электронной коммерции
  53. Кодирование редактора nosql
  54. Кодирование ORM (объектно-реляционного сопоставителя)
  55. Написание собственного мини-сервера nosql.
  56. Кодирование графического редактора
  57. Написание мини-редактора визуального программирования
  58. Написание собственного ExpressJS-фреймворка
  59. Создайте приложение для гибкого управления задачами
  60. Кодирование клона pinterest
  61. Создание рынка обмена навыками, такого как fiverr
  62. Создание социальной сети, такой как facebook
  63. Построение системы учета / выставления счетов
  64. Создание портала для поиска работы и сетевого приложения, такого как linkedin.
  65. Создание сайта, похожего на Airbnb.
  66. Создание CRM
  67. Клонирование Reddit
  68. Создайте WhatsApp / Telegram как мессенджер
  69. Построение системы управления контентом (CMS)
  70. Система управления Building Form
  71. Создание системы отслеживания ошибок
  72. Создание приложения Geo tracker
  73. Кодирование инструмента составления интеллект-карт
  74. Кодирование собственного транспайлера
  75. Кодирование вашего собственного интерпретируемого языка
  76. Создание системы управления обучением, подобной Udemy.
  77. Создание клона Gmail
  78. Создание приложения для визуализации данных
  79. Создание клона Twitter
  80. Приложение для распознавания изображений
  81. Приложение для создания форм
  82. Приложение для создания списка рассылки
  83. Система управления обучением
  84. + еще впереди

Будет некоторая избыточность, которая будет отфильтрована позже.

Конечно, в ходе подготовки я буду объединяться с единомышленниками, поскольку это не задача одного человека.

Вскоре я буду упорядочивать проекты по степени сложности и связности.

Для этого уже создан специальный веб-сайт. Первый бета-контент будет опубликован примерно на 3-й неделе мая 2020 года на сайте https://teachyourselfcoding.com.