10 продвинутых проектов, которые можно построить в 2021 году

0
1505
views

Перевод статьи «10 Advanced Projects to Build in 2021».

Собрали список из 10 сложных проектов, которыми опытному разработчику можно заняться в 2021 году. Говоря, что проекты сложные, мы имеем в виду именно то, что они сложные и по силам только опытным программистам.

1. Язык программирования

В этом проекте мы предлагаем вам спроектировать и реализовать интерпретируемый или компилируемый язык программирования. Создание нового языка с нуля — непростая задача. Подумайте о тех проблемах, с которыми вы сталкиваетесь при использовании других языков программирования, и о том, как их исправить.

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

Руководства (на случай, если застрянете):

2. Игрушечная база данных (или хранилище ключей и значений)

Создайте игрушечную базу данных или хранилище для пар ключ-значение. Если перед созданием собственной базы данных вы хотите попрактиковаться и получше разобраться в работе баз данных, попробуйте начать с создания хранилища для пар ключ-значение. Это может быть клон Redis или Memcached. Поскольку эти проекты меньше, чем полноценная NoSQL/SQL база данных, их вполне можно использовать как проекты по проектированию систем среднего уровня. Когда почувствуете, что уже готовы двигаться дальше, создайте игрушечную базу данных. Она может быть любой: SQL или NoSQL, реляционной или нереляционной и т. д.

Руководства (на случай, если застрянете):

3. Реализуйте TCP-протокол

Попробуйте реализовать TCP-протокол с нуля. Если вы не знаете, что это такое, почитать можно здесь. Вообще TCP-протокол довольно сложный. При желании можно начать с чего-то попроще. Например, можно сначала реализовать FTP-протокол.

Руководства (на случай, если застрянете):

4. Реализуйте биометрическую аутентификацию

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

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

Руководства (на случай, если застрянете):

5. Конкурентная структура данных

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

Руководства (на случай, если застрянете):

6. Создайте операционную систему

Создание собственной операционной системы с нуля. Вот это интересно!

Для работы над этим проектом используйте высокопроизводительный язык, например Rust, C или C++, потому что создание ОС может немного замедлить ваш компьютер. Ваша ОС может быть сложной настолько, насколько вы сами захотите. Можно добавить дополнительные фичи в виде встроенных приложений (блокнот, плейер, текстовый редактор и т. п.).

Руководства (на случай, если застрянете):

7. Шифрование изображений с использованием алгоритма AES

Крутой проект. Создайте инструмент для шифрования изображений с использованием алгоритма AES. Разобраться в сути AES вам поможет этот пост.

Проект можно расширить, используя уже готовый инструмент шифрования в каком-нибудь веб-приложении (например, в клоне Instagram).

Общее руководство: статья «An image encryption method based on chaos system and AES algorithm».

8. Создайте текстовый редактор

Ваша цель — создать полнофункциональный текстовый редактор. Вы можете создать редактор кода с подсветкой синтаксиса, сочетаниями клавиш и т. п. (пример — Sublime Text) или что-то попроще, вроде Notepad++.

Руководства (на случай, если застрянете):

9. Создайте веб-браузер

Ваш браузерный движок должен обрабатывать HTML, CSS и JS-файлы. Проект может быть сколь угодно сложным. При его создании нужно обратить особое внимание на дизайн, потому что для пользователей это очень важный фактор при выборе браузера.

Руководства (на случай, если застрянете):

10. Создайте криптовалюту

Примеры криптовалют — Bitcoin, Ethereum, Dash и т. п. Как и впредыдущих проектах, вы можете сами выбирать уровень сложности. При желании можно добавить более продвинутый функционал: смарт-контракты, майнинг и т. д.

Руководства (на случай, если застрянете):

Успехов в работе над проектами!

ОСТАВЬТЕ ОТВЕТ

Please enter your comment!
Please enter your name here