00:00:00Знаете, что может быть хуже, чем создание проекта? Незнание того, что именно создавать.
00:00:04В какой-то момент вашего пути разработчика наступает странная фаза.
00:00:08Создание очередного CRUD-приложения на JavaScript-фреймворке кажется скучным,
00:00:11а написание операционной системы с нуля — невыполнимым. Вы застряли посередине.
00:00:16Вам не нужно что-то слишком простое или невозможное. Вы просто хотите чего-то значимого.
00:00:21Чего-то достаточно сложного, чтобы вырасти над собой, но не настолько тяжелого, чтобы бросить на полпути.
00:00:26Поверьте, я сам через это проходил. В этом видео я поделюсь с вами отличными идеями для проектов.
00:00:32Я разделил их на три уровня. Уровень первый: создание фундамента. Уровень второй: хранение,
00:00:38базы данных и системы данных. И уровень третий: продвинутые системы и внутреннее устройство.
00:00:44Создав эти проекты, вы не просто подтянете код, вы начнете мыслить как инженер.
00:00:49Начнем с первого уровня. Первый проект — это создание собственного HTTP-сервера с нуля.
00:00:55Если вы это смотрите, то наверняка знаете, что такое HTTP-сервер. Каждый раз, когда вы открываете
00:01:01сайт или вызываете API, за кулисами происходит процесс обмена запросами и ответами.
00:01:06Но до сих пор вы взаимодействовали с этим только через фреймворки вроде Express. Создание своего
00:01:12мини-HTTP-сервера заставит вас понять, что происходит на самом деле. Вы узнаете, как TCP-сокеты
00:01:19передают данные, как парсятся HTTP-запросы, как формируются ответы и как обрабатываются
00:01:25несколько параллельных запросов. Если вы уже чувствуете панику при мысли о сложности
00:01:30этих проектов, у меня есть решение в конце видео. Обязательно досмотрите до конца.
00:01:35Теперь второй проект. Создание собственной командной оболочки. Вы использовали
00:01:40команды вроде cd, ls, pwd сотни раз. Но задумывались ли вы, что именно их обрабатывает?
00:01:46Когда вы создаете свою оболочку, вы сами строите эту систему. Вы научитесь таким вещам,
00:01:52как чтение и парсинг ввода, выполнение процессов, обработка системных вызовов,
00:01:58и поймете концепции ОС, такие как процессы и команды. Построив свою оболочку с нуля,
00:02:04вы поймете компьютер на глубоком уровне. А теперь начинается самое интересное.
00:02:09Переходим к проектам второго уровня. И первый проект здесь — создание своего Redis.
00:02:15Redis — это хранилище данных в памяти, используемое как кэш, БД, брокер сообщений и не только. Оно невероятно быстрое.
00:02:21Но пока вы не построите его сами, вы не поймете, почему. Реализуя свой клон Redis,
00:02:26вы узнаете, как работают структуры данных в памяти. Вы внедрите базовые команды Redis.
00:02:32Вы разберетесь в протоколе Redis. Научитесь эффективно управлять множеством клиентских подключений
00:02:38с помощью циклов событий. И это лишь основы. В процессе работы вы узнаете еще очень много нового.
00:02:43Вы осознаете, что разработка ПО — это не только создание CRUD-приложений.
00:02:48Следующий проект — создание собственного Git. Вы пользуетесь им каждый день. Но знаете ли вы, как он работает?
00:02:54Когда вы создадите упрощенную систему контроля версий сами, пазл сложится. Вы поймете,
00:03:00как коммиты хранятся внутри. Реализуете хэширование и контентно-адресуемое хранилище.
00:03:05Организуете снимки файлов в деревья коммитов. Вас ждет еще масса открытий и задач по реализации.
00:03:11И самое крутое в создании с нуля — вы можете заставить систему работать именно так, как вам хочется.
00:03:16Наконец, наш третий проект — создание собственной базы данных SQLite. SQLite — это автономный
00:03:22движок БД, который хранит всё в одном файле. В отличие от MySQL или Postgres, здесь нет
00:03:29отдельного серверного процесса. Он легкий, но невероятно мощный. Создавая свою версию,
00:03:34вы поймете, как данные организуются с помощью таких структур, как B-деревья. Будете парсить
00:03:39и выполнять простые запросы. Реализуете индексацию для быстрого поиска. Как разработчику,
00:03:45вам не избежать баз данных. Но поняв их внутреннее устройство, вы станете элитным специалистом.
00:03:52Теперь на третьем уровне мы идем еще глубже. Первый проект здесь — создание своего мини-языка программирования.
00:03:58Да, своего языка. Вы создадите нечто, что читает код, понимает его и выполняет
00:04:04инструкции. И хотя это звучит пугающе, это один из самых вознаграждающих проектов.
00:04:10Вы изучите и реализуете лексер, парсер и абстрактное синтаксическое дерево. А главное,
00:04:17поймете, как на самом деле работают интерпретаторы и компиляторы. Это крутой проект, ведь вы
00:04:22наконец осознаете, как мы общаемся с компьютерами. А еще сможете похвастаться,
00:04:27что создали язык программирования и назвали его как угодно. Второй проект —
00:04:32создание собственного BitTorrent-клиента. Здесь в игру вступают распределенные системы. BitTorrent — это
00:04:38пиринговая сеть, где пользователи качают части файла у других участников, а не с одного сервера.
00:04:44При создании вы реализуете поиск пиров, управление соединениями между узлами, нарезку файлов
00:04:50на фрагменты, проверку целостности и распределенную связь. Это непростой проект.
00:04:57Уверен, вы не поняли и половины из того, что я сказал. Но это научит вас принципам работы
00:05:02крупномасштабных распределенных систем. И наш последний проект — создание собственного
00:05:08ИИ-помощника для кодинга. Что-то похожее на Claude Code. Современные ИИ-инструменты впечатляют,
00:05:14но внутри это системы, объединяющие большие языковые модели с классической архитектурой ПО.
00:05:20Когда вы построите такой сами, вы интегрируете API LLM в приложение. Будете парсить и индексировать
00:05:27файлы проекта для контекста. Научитесь управлять промптами и ответами. Вы создадите систему,
00:05:32сочетающую ИИ с реальными инженерными принципами. Начав работу над этим, вы поймете,
00:05:38как популярные ИИ-инструменты устроены изнутри. И не только это: поскольку тема ИИ сейчас
00:05:44очень популярна, этот сложный проект поможет вам выделиться среди других. Будем честны:
00:05:50некоторые из этих проектов действительно трудные. Написание своего Redis, Git или BitTorrent-клиента
00:05:55нельзя закончить за выходные. Вы будете застревать. Будете сомневаться в себе. Иногда
00:06:01даже не будете знать, правильно ли вы всё делаете. И именно на этом этапе большинство сдается.
00:06:05Чтобы справиться с этим, существует платформа CodeCrafters. Это площадка для обучения,
00:06:11основанная на проектах, где вы пошагово пересоздаете инструменты вроде Redis, SQLite, DNS и HTTP-серверов.
00:06:19Вам не дают готовое решение. Вам дают тесты и структурированные этапы, а реализацией
00:06:23вы занимаетесь сами. Я лично использовал её при работе над этими проектами. Честно говоря,
00:06:29наличие четкого плана — это то, что помогло мне дойти до конца, а не бросить. Так что если вам
00:06:34нравятся эти идеи, но вы хотите руководства, не теряя при этом самостоятельности, ссылка будет
00:06:39в описании. Но используете ли вы платформу или идете в одиночку, важно, чтобы вы начали строить сами.
00:06:45Если вы перерыли весь интернет в поисках идей для следующего проекта, надеюсь, это видео внесло ясность.
00:06:51Сначала может быть страшно, но вода не станет теплой, пока вы в нее не прыгнете. Если вам
00:06:57понравилось видео, ставьте лайк, подписывайтесь и пишите, с какого проекта решите начать.
00:07:02Увидимся в следующем выпуске!