Список практических проектов по строительству знаний. Поскольку проекты направлены на увеличение вашей базы знаний, они несколько сложные. Тем не менее, есть и несколько простых. Многие из них даже достаточно достойны, чтобы продемонстрировать в вашем портфолио.
Проекты разделены на несколько категорий и помечены некоторыми предлагаемыми языками и структурами/инструментами (я все еще работаю над этой частью), чтобы начать вас.
Чтобы начать работу с идеями проекта:
Общие веб -проекты, от создания простого веб -сайта до создания инструментов для сложных и сложных сетевых задач, таких как обнюхивание пакетов.
Построение автоматических ботов - это то, что вы действительно хотите попробовать в какой -то момент своей карьеры/жизни.
Правильное программное обеспечение или предложения по приложениям, которые вы даже можете использовать в своей повседневной жизни, например, простой текстовый редактор или пользовательский музыкальный проигрыватель.
Проекты, которые в основном касаются искусственного интеллекта или машинного обучения. Идеально для демонстрации вашего портфеля, если вы думаете о том, чтобы подать заявку на любые рабочие места или программы, связанные с искусственным интеллектом.
Проекты, которые обеспечивают более глубокое понимание внутренней работы многих вещей, связанных с CS, которые вы можете использовать сознательно или неосознанно в своей повседневной жизни.
Проекты, которые включают в себя дело с шифрованием/дешифрованием или в общей компьютерной безопасности.
Вся работа и без игры делают Джека скучным мальчиком! Игры должны наслаждаться и изучать многие концепции программирования, включая упс.
Они были одни в их собственных категориях, и я не хотел, чтобы они чувствовали себя одинокими, поэтому я объединил их вместе.
Некоторые рекомендуемые каналы для работы по большему количеству проблем и отточить ваши навыки кодирования.
Простой клиент передачи файла, который использует FTP (протокол передачи файла). В качестве бонусной задачи добавьте поддержку для безопасной передачи файлов. Это может быть приложение для Интернета, рабочего стола или CLI.
Вы можете сначала реализовать TFTP (тривиальный протокол передачи файлов), так как это проще.
Предлагаемый язык : C/C ++
Предлагаемые рамки/инструменты : используйте Wireshark для наблюдения за пакетами и отладка их
Пример реализации : Filezilla чрезвычайно завершена, вот простая реализация GO
Чтобы лучше понять HTTP, вам нужно построить HTTP -сервер. Сейчас не очень сложно (с богатством информации вокруг нас).
Предлагаемый язык : Python (или любой другой язык, который вы хотите освоить)
Предлагаемые фреймворки/инструменты : сокет (библиотека Python)
Пример реализации : сообщение в блоге от Руслана
Создайте веб -скребок, который принимает URL/ключевое слово в качестве ввода и возвращает результаты сопоставления из Интернета, связанного с входом. Вы также можете создать поисковик продукта или что -то в этом роде.
Предлагаемый язык : Python (или любой другой язык, который вы хотите освоить)
Предлагаемые рамки/инструменты : BeautifulSoup (библиотека Python)
Пример реализации :
Создайте приложение Scanner Scanner, которое может исследовать сервер или хост для открытых портов. Вам понадобятся некоторые технические знания относительно того, как работают сети и как вы можете сканировать для портов или классифицировать их.
Предлагаемый язык : java, c ++, python
Предлагаемые рамки/инструменты : библиотека сокета Python
Пример реализации : Piescan - это реализация Python
Пакет Sniffer используется для мониторинга сетевого трафика путем изучения потоков пакетов данных, которые протекают между компьютерами в сети. Чтобы начать с проекта, правильно изучать сетевые протоколы. Затем погрузитесь в реализацию приложения, которое отслеживает сетевые пакеты и анализирует его контент в читаемой форме человека.
Предлагаемый язык : java, c ++
Предлагаемые рамки/инструменты :
Пример реализации : Wireshark - это чрезвычайно полный пакет, травоядный, является более простой реализацией.
Создайте приложение, которое обеспечит безопасное обмен файлами в интернете. Это поможет вам безопасно перенести файлы из одного места в другое или отправить что -нибудь своему другу.
Предлагаемый язык : java, c ++
Предлагаемые рамки/инструменты :
Пример реализации :
Создайте веб -поисковую систему, такую как Google или Bing. Не копируйте из них, хотя
Предлагаемый язык : веб -языки. Настоящая работа произойдет на бэкэнд с такими языками, как Python, PHP, SQL, Node ... Используйте все, что вы хотите, для Frontend: HTML, CSS, JavaScript ...
Предлагаемые фреймворки/инструменты : django, если вы используете Python, MySQL для баз данных, если вам нужен один
Пример реализации : SEARX-это поисковая система с открытым исходным кодом, кодируемая в основном в Python и Javascript
Создайте инструмент, чтобы отслеживать, сколько данных вы загрузили или загрузили в Интернет. Поправляйте это вам еженедельными отчетами о вашем использовании (или уведомите вас, когда вы превышаете указанный лимит использования). В качестве бонусной задачи прогнозируйте время использования пика.
Предлагаемый язык :
Предлагаемые рамки/инструменты :
Пример реализации :
Создайте идеальную целевую страницу продукта в соответствии с вами. Выберите продукт, создайте страницу и демонстрируйте его в вашем портфолио.
Предлагаемый язык :
Предлагаемые рамки/инструменты :
Пример реализации :
Блог должен иметь для всех (по моему мнению). Объедините этот факт с тем фактом, что вы многому научитесь, создавая свой собственный блог с нуля и вуаля!
Предлагаемый язык : JavaScript, Python, Ruby
Предлагаемые рамки/инструменты : Jekyll (для Ruby), Django/Flask (Python)
Пример реализации :
Если вы когда -либо заинтересованы в демонстрации того, что вы построили, создайте веб -сайт портфеля! Создание веб -сайта для отображения всего этого будет многому научить вас о дизайне веб -сайта в целом (если вы никогда не строили веб -сайт раньше).
Предлагаемый язык : JavaScript, HTML, CSS
Предлагаемые рамки/инструменты : gatsbyjs
Пример реализации :
Хотя это может показаться небольшой задачей, создание анимированного навигационного переключателя будет многому научить вас о веб -разработке. Исследуйте все идеи, с которыми вы можете играть, и посмотрите, сможете ли вы построить что -то действительно увлекательное!
Предлагаемый язык : JavaScript, CSS
Предлагаемые фреймворки/инструменты : -
Пример реализации :
Можете ли вы найти страну с предоставленного IP -адреса? Напишите сценарий, который может помочь вам в этом. Для бонусных баллов попробуйте выяснить более локальное место с IP -адресом.
Предлагаемый язык :
Предлагаемые рамки/инструменты :
Пример реализации :
Создайте чат -бот, с которым вы можете поговорить, когда скучно. Для бонусных баллов используйте машинное обучение/ИИ, чтобы сделать его умным. Я предлагаю вам реализовать его как простое приложение CLI.
Предлагаемый язык :
Предлагаемые рамки/инструменты :
Пример реализации :
Описание
Предлагаемый язык :
Предлагаемые рамки/инструменты :
Пример реализации :
Построить бота, который либо будет
Предлагаемый язык :
Предлагаемые рамки/инструменты :
Пример реализации :
Постройте бот для мессенджера, который может выполнять некоторые черновые задачи, например, перевернуть монету, бросить кости, представить новости и поговорить с вами, когда скучно.
Предлагаемый язык :
Предлагаемые рамки/инструменты :
Пример реализации :
Создайте бот для WhatsApp, который может соскрести информацию из Интернета, такие как новости, записи в Википедии и другие вещи. Сделайте возможность отслеживать некоторые события, такие как ваш/чужой день рождения, и отправьте автоматическое сообщение, желающее вам/другого человека.
Предлагаемый язык : предлагаемые рамки/инструменты : пример реализации :
Пользователь выбирает категорию и получает случайный набор вопросов из данной категории. Внедрить приложение Quiz с множественным выбором, чтобы предотвратить больше сложностей.
Предлагаемый язык :
Предлагаемые рамки/инструменты :
Пример реализации :
Создайте программное обеспечение брандмауэра, которое может регулировать сетевые подключения для пользователя, а также блокировать/уведомлять о любом подозрительном действии с любого веб -сайта/внутреннего программного обеспечения/внешнего агента.
Предлагаемый язык :
Предлагаемые рамки/инструменты :
Пример реализации :
Создайте приложение для выполнения, которое может отслеживать различные этапы данной работы (Todo, постоянный, завершенный). Для бонусных баллов, заставьте его работать с повторяющимися задачами и включить планирование задач (когда делать что делать/срок для задач).
Предлагаемый язык :
Предлагаемые рамки/инструменты :
Пример реализации :
Создайте простой текстовый редактор, который может помочь вам открыть, читать и записать в текстовые файлы. Для бонусных баллов включают такие функции, как инструмент Find и поиск и замену режима.
Предлагаемый язык : JavaScript, Java
Предлагаемые рамки/инструменты : электрон (JavaScript Framework)
Пример реализации : редактор Atom, Notepad ++
Это, вероятно, самый сложный в списке и самый расплывчатый тоже. Разработайте систему, которая принимает текстовый ввод и генерирует приложения (или, по крайней мере, интерфейсы приложений) на основе текстового описания. Вы также можете использовать функцию перетаскивания, чтобы позволить пользователям создавать приложение.
Предлагаемый язык : -
Предлагаемые фреймворки/инструменты : -
Пример реализации : Appgyver - хороший пример Code App Builder
Создайте приложение, которое позволяет пользователю рисовать что -нибудь и сохранить его как изображение. Для дополнительных моментов добавьте окраски и другие классные вещи, такие как анимация.
Предлагаемый язык :
Предлагаемые рамки/инструменты :
Пример реализации :
Создайте приложение/веб -приложение, которое позволит кому -либо создавать вопросы опроса и распространять его по электронной почте, чтобы записать ответы, а затем проанализировать собранные данные.
Предлагаемый язык :
Предлагаемые рамки/инструменты :
Пример реализации :
Создайте кусок программного обеспечения, которое поможет вам просмотреть любую HTML -страницу. Для бонусных баллов добавьте дополнительные функции, такие как в Chrome и Firefox.
Предлагаемый язык :
Предлагаемые рамки/инструменты :
Пример реализации :
Создайте приложение, которое получает погоду в вашем месте в настоящее время. Вы можете либо использовать веб -скребок в фоновом режиме для сбора данных, либо использовать API погоды.
Предлагаемый язык :
Предлагаемые рамки/инструменты :
Пример реализации :
Создайте приложение, которое будет правильно отформатировать уравнения, которые вводит пользователь. Лично я нахожу действительно неудобным работать со специальным программным обеспечением, чтобы просто написать и отображать уравнения, как латекс, таким образом, если вы создаете что -то, что может преобразовать простой английский текст в правильно отформатированные уравнения, пинг меня!
Предлагаемый язык :
Предлагаемые рамки/инструменты :
Пример реализации :
Создайте приложение для музыкального проигрывателя, которое может воспроизводить музыку из MP3 -файлов, а также иметь функциональность для вперед, перемотки, паузы и воспроизведения.
Предлагаемый язык :
Предлагаемые рамки/инструменты :
Пример реализации :
Создайте приложение/веб -приложение для секунды. Это также должно быть в состоянии провести время.
Предлагаемый язык :
Предлагаемые рамки/инструменты :
Пример реализации :
Создайте веб -приложение, которое может сократить любой URL -адрес, который предоставляет пользователь. Вы можете либо кодировать алгоритм, который сокращает и хранит пользователь, предоставляющий URL, либо использовать API.
Предлагаемый язык :
Предлагаемые рамки/инструменты :
Пример реализации :
Создайте интерфейс оплаты, который может иметь дело с фальшивыми наличными (лучше, если вы можете иметь дело с реальной валютой, хотя я не знаю, нужно ли вам предпринять дополнительные шаги для этого). Пользователи должны иметь возможность получать и отправлять деньги, а также проверять их текущий баланс.
Предлагаемый язык :
Предлагаемые рамки/инструменты :
Пример реализации :
Создайте приложение/веб -приложение, которое накладывает текст на изображение, чтобы пользователи могли создавать мемы.
Предлагаемый язык :
Предлагаемые рамки/инструменты :
Пример реализации :
Создайте таймер Pomodoro, который поможет вам сделать перерывы в правильное время, выполняя задачу. Для бонусных баллов включают различные форматы таймера Pomodoro.
Предлагаемый язык :
Предлагаемые рамки/инструменты :
Пример реализации :
Создайте приложение, которое позволяет вам практиковать печатание. Сделайте это генерировать случайные предложения и посмотрите, как быстро вы можете набрать предложения. Набор текста - это то, что многие разработчики полностью игнорируют, но это один из самых важных навыков, с которыми должен обладать кто -то, работающий с компьютерами.
Предлагаемый язык :
Предлагаемые рамки/инструменты :
Пример реализации :
Создайте программное обеспечение, которое будет проверять и проверить простые грамматические ошибки в любом тексту, который вы пишете. Для получения дополнительных моментов/сложности попробуйте угадать настроение (счастливый текст, формальное письмо и т. Д.) Текста и предложите соответствующие изменения.
Предлагаемый язык :
Предлагаемые рамки/инструменты :
Пример реализации :
Создайте приложение, которое представит вам ежедневные новости из достоверных источников. Убедитесь, что вы объединяете уникальную информацию о данном заголовке новостей с разных сайтов, чтобы удалить любые предвзятости, которые могут присутствовать в данном источнике.
Предлагаемый язык :
Предлагаемые рамки/инструменты :
Пример реализации :
Создайте приложение, которое будет отслеживать количество калорий, которые вы едите каждый день. Попробуйте также включить информацию о других макро и микроэлементах, чтобы обеспечить более полную картину.
Предлагаемый язык :
Предлагаемые рамки/инструменты :
Пример реализации :
Создайте приложение (приложение для телефонного приложения будет лучше), в котором находит, насколько перегружен один маршрут, а затем предлагает вам лучший маршрут для вашего пункта назначения.
Предлагаемый язык : Java, Kotlin, Swift
Предлагаемые фреймворки/инструменты : Android Studio
Пример реализации :
Создайте виртуального помощника, который поможет вам выполнять такие задачи, как вызов людей, планирование задач, создание списков TODO, делать заметки, ... вы понимаете.
Предлагаемый язык :
Предлагаемые рамки/инструменты :
Пример реализации :
Создайте антивирусное программное обеспечение, которое защитит вас от вирусов и других компьютерных червей и прочее. Убедитесь, что вы часто обновляете его, чтобы справиться с более новыми вирусами.
Предлагаемый язык :
Предлагаемые рамки/инструменты :
Пример реализации :
Создайте приложение, которое может позволить вам позвонить кому -нибудь в любом месте через Интернет.
Предлагаемый язык : Python, Java, C ++ для настольного приложения
Предлагаемые рамки/инструменты :
Пример реализации : NextCloud Talk и Jitsi-программное обеспечение для видео-вызовов с открытым исходным кодом
Создайте приложение для гипотетической (или лучшей библиотеки рядом с вами), которая поможет в управлении. Вы должны отслеживать книги, которые у вас есть, книги на заказ, люди с доступом к библиотеке, заимствованные книги, возвращенные и другие связанные задачи.
Предлагаемый язык :
Предлагаемые рамки/инструменты :
Пример реализации :
Создайте свою собственную систему управления базами данных, такую как MySQL или PostgreSQL. Это не должно быть совместимы с ними, но это должно помочь пользователям эффективно управлять своими данными и создавать реляционные таблицы.
Предлагаемый язык :
Предлагаемые рамки/инструменты :
Пример реализации :
Создайте кусок программного обеспечения, который будет анализировать картинки (или, что лучше, живой канал CAM) и теги на изображениях в виде лица или с коробкой.
Предлагаемый язык : Python (или любой другой язык, который вы хотите выучить)
Предлагаемые фреймворки/инструменты : openCV
Пример реализации :
Создайте классификатор спама, который фильтрует рекламу и другие нерапированные электронные письма от людей, на которые вы действительно не хотите смотреть.
Предлагаемый язык :
Предлагаемые рамки/инструменты :
Пример реализации :
Создайте расширение браузера, которое блокирует спойлеры фильмов на веб -сайтах. Я поместил его в ИИ, так как вы должны думать об изменяющемся алгоритме, который должен быть достаточно умным, чтобы идентифицировать спойлеры из кусочка текста.
Предлагаемый язык :
Предлагаемые рамки/инструменты :
Пример реализации :
Надоело одни и те же песни, но не знаете, что попробовать дальше? Создайте ИИ, чтобы предложить вам музыку, основываясь на вашем вкусе, который вам больше всего понравится.
Предлагаемый язык :
Предлагаемые рамки/инструменты :
Пример реализации :
Создайте приложение, чтобы перевести текст с одного языка на другой. Для бонусных точек включают переводчик изображения, который может получить текст из изображения и перевести его.
Предлагаемый язык :
Предлагаемые рамки/инструменты :
Пример реализации :
Создайте кусок программного обеспечения, который может распознавать жесты из видео камеры, а затем выполнять определенные задачи на основе жеста.
Предлагаемый язык :
Предлагаемые рамки/инструменты :
Пример реализации :
Введите видео и получите подзаголовок! Создайте программное обеспечение, которое автоматически создает субтитры из предоставленного видео. Вначале это может показаться трудным, но посмотрите на обработку естественного языка, чтобы увидеть, насколько далеко уже находятся машины в отношении понимания человеческого языка.
Предлагаемый язык : Python (так как это было бы очень легко в реализации с доступными библиотеками)
Предлагаемые рамки/инструменты : AutoSub
Пример реализации : Вы можете направить документацию здесь или проверить представленные здесь шаги.
Создайте программное обеспечение, которое принимает имя компании и некоторые связанные ключевые слова, чтобы создать новый логотип для пользователя. Сделайте редактируемый логотип, чтобы пользователь мог внести какие -либо изменения, если ему не нравится сгенерированный вывод.
Предлагаемый язык :
Предлагаемые рамки/инструменты :
Пример реализации :
Создайте систему рекомендаций, которая позволяет вам или любым пользователям выбирать следующий фильм, который вы хотите посмотреть. Вместо того, чтобы копировать существующий рекомендатель фильма с хорошо изученным алгоритмом, постарайтесь придумать свой собственный алгоритм и проверить его.
Предлагаемый язык : Python (или любой другой язык, с которым вам удобно)
Предлагаемые фреймворки/инструменты : -
Пример реализации : есть много, система рекомендаций Netflix, линза и т. Д.
Подобно переводчику видео, но теперь вам нужно перевести звук на язык жестов. Парень из языка жестов может быть в форме серии изображений или видео.
Предлагаемый язык :
Предлагаемые рамки/инструменты :
Пример реализации :
Этот проект будет технически сложным и углубит ваше понимание того, как работают компьютеры и операционные системы. Создание ОС с нуля - действительно сложная задача, но вы наверняка найдете способ сделать это.
Предлагаемый язык : языки низкого уровня, такие как C/C ++.
Предлагаемые фреймворки/инструменты : -
Пример реализации : LFS - это проект, который объясняет каждый шаг для создания ОС Linux
Создайте веб -приложение для визуализации различных алгоритмов перетасовки, которые можно использовать для перетасовки стандартной колоды карт.
Предлагаемый язык :
Предлагаемые рамки/инструменты :
Пример реализации :
Создайте веб -страницу/видео, которая будет визуализировать различные алгоритмы сортировки. Вы можете использовать различные виды визуализации: точки, стержни, цветные стержни, круговые разбросанные точки и так далее.
Предлагаемый язык : обработка, JavaScript
Предлагаемые фреймворки/инструменты : p5.js (javaScript)
Пример реализации :
Сделайте программное обеспечение, которое пройдет через ваш код (без его выполнения), и проверьте на наличие любых несоответствий или ошибок (синтаксические ошибки, отступа и т. Д.), Которые могут вызвать любые проблемы во время выполнения.
Предлагаемый язык : любой язык, который вы чувствуете комфортно с предложенными фреймворками/инструментами :
Пример реализации :
Если вы создаете операционную систему, вам наверняка понадобится терминал командной строки. Постарайтесь клонировать оболочку Bash или Windows PowerShell как независимый проект, чтобы облегчить его, пока вы создаете свою собственную ОС.
Предлагаемый язык :
Предлагаемые рамки/инструменты :
Пример реализации :
Напишите сценарий, который проходит через ваш код OOPS и создает хорошо форматированную диаграмму UML для вашего кода.
Предлагаемый язык :
Предлагаемые рамки/инструменты :
Пример реализации :
Сделайте визуализатор для различных алгоритмов нанесения пути. Добавьте это к создателю лабиринта, и у вас есть программа, которая может генерировать и решать лабиринты.
Предлагаемый язык : обработка, JavaScript
Предлагаемые фреймворки/инструменты : p5.js (javaScript)
Пример реализации :
Сделайте правильную систему управления версиями, такую как GIT, которая может отслеживать любые изменения, которые вы вносите в свой проект.
Предлагаемый язык :
Предлагаемые рамки/инструменты :
Пример реализации :
Кодировать язык программирования с нуля. Этот проект даст вам отличное представление о том, почему языки структурированы такими, какими они есть, и какие языки подходят, что лучше. Таким образом, есть довольно много языков программирования, включив некоторые действительно странные (или полезные) функции, чтобы выделить ваш язык (например, проверьте Brainfuck).
Предлагаемый язык :
Предлагаемые рамки/инструменты :
Пример реализации :
Создайте программное обеспечение, которое будет зашифровать и расшифровать текст для вас. Включите довольно много алгоритмов, чтобы обеспечить гибкость пользователю.
Предлагаемый язык : C, C ++, Java, Python
Предлагаемые рамки/инструменты :
Пример реализации :
Создайте программное обеспечение, которое может управлять различными паролями, которые вы используете на разных сайтах. Для бонусных баллов включают генератор случайных паролей.
Предлагаемый язык :
Предлагаемые рамки/инструменты :
Пример реализации :
Создайте кусок программного обеспечения, который может зашифровать и заблокировать выбранную папку. Содержимое папки не должно быть доступным/скопировано/перемещено без правильного пароля.
Предлагаемый язык :
Предлагаемые рамки/инструменты :
Пример реализации :
Создайте веб -сайт/приложение, которое будет проверять, насколько силен данный пароль. Чтобы сделать его более причудливым, включите хороший показатель того, насколько силен пароль (посмотрите на пример).
Предлагаемый язык :
Предлагаемые рамки/инструменты :
Пример реализации : Насколько безопасен мой пароль?
Кодировать игру Понг. Сделайте это многопользовательским и визуально привлекательным.
Предлагаемый язык : Python (или любой другой выбор выбора)
Предлагаемые фреймворки/инструменты : pygame (python)
Пример реализации :
Добавьте в программу Pong, которую вы создали выше. Создайте противника ИИ для игры в одном режиме игрока.
Предлагаемый язык : Python (или любой другой выбор выбора)
Предлагаемые рамки/инструменты : Tensorflow, Pytorch, Openai/Gym
Пример реализации :
Попробуйте кодировать классическую настольную игру риска. Убедитесь, что вы знаете все правила и правильно понимаете игру, прежде чем кодировать ее.
Предлагаемый язык :
Предлагаемые рамки/инструменты :
Пример реализации :
Кодируйте игру шахмат с нуля. Создайте доску, кусочки (вы можете использовать изображения для этой части). Код в правилах и убедитесь, что вы не допускаете недействительных движений.
Предлагаемый язык : JavaScript, Python, любой другой язык, который вы хотите освоить
Предлагаемые рамки/инструменты :
Пример реализации : Chessboard.js
Это один из самых простых элементов в списке. Для дополнительной задачи попробуйте создать разные карты, чтобы играть.
Предлагаемый язык : любой язык, с которым вы чувствуете себя комфортно
Предлагаемые рамки/инструменты :
Пример реализации :
Кодируйте игру Tetris, начиная с тетромино до интерфейса игры. Веб -приложение лучше, так как оно позволит вам играть из любого места. Для получения дополнительной задачи попробуйте реализовать простую версию HTML и JavaScript без каких -либо дополнительных фреймворков или библиотек, чтобы помочь.
Предлагаемый язык : JavaScript, HTML
Предлагаемые рамки/инструменты :
Пример реализации :
Теперь, когда вы, скорее всего, построили шахматную игру, создайте AI, с которым вы можете сыграть. Для вдохновения загляните в приведенные примеры. Задача здесь состоит в том, чтобы сделать искусственный интеллект, который достаточно быстр, чтобы играть против. Большинство простых AIS для шахмат просто очень медленные (занимайте около минуты или больше для движения). Сделайте интерфейс шахматного двигателя с другими программами, такими как через универсальный шахматный интерфейс. Затем вы можете проверить это против других ботов/игроков в Интернете.
Предлагаемый язык : Python, JavaScript
Предлагаемые фреймворки/инструменты : Chessboard.js (JavaScript) Пример реализация : Stockfish AI, Leela Chess Zero
Создайте простой AI Snake, который играет змею. Для дополнительной задачи генерируйте случайные карты, а затем обучайте ИИ играть на любой случайной карте, которую вы генерируете.
Предлагаемый язык :
Предлагаемые рамки/инструменты :
Пример реализации :
Создайте простую программу, которая будет генерировать случайные карты местности с помощью процедурной генерации с полученным пользователем.
Предлагаемый язык :
Предлагаемые рамки/инструменты :
Пример реализации :
Постройте классическую игру линкора. Вы можете создать приложение CLI или гораздо лучшее приложение с графикой, используя любой 2D -графический модуль.
Предлагаемый язык : Python (или любой язык, который вы хотите выучить)
Предлагаемые фреймворки/инструменты : pygame (python)
Пример реализации :
Это одна из самых простых сложных игр, которые вы можете построить. Вы можете использовать изображения для труб и птицы или генерировать свою собственную птицу и трубы для проекта.
Предлагаемый язык :
Предлагаемые рамки/инструменты :
Пример реализации :
Создайте приложение CLI для Tic-Tac-Toe или графический интерфейс. Одна из интересных идей - позволить пользователю рисовать XS и ОС, а затем позволить машине автоматически идентифицировать, нарисовали ли вы x или o.
Предлагаемый язык :
Предлагаемые рамки/инструменты :
Пример реализации :
Реализуйте классическую загадку памяти, в которой пользователь должен нажать на две аналогичные карты, чтобы исключить их. Сначала перетасывайте карты и дайте пользователю фиксированное количество шансов или фиксированное время для очистки платы.
Предлагаемый язык :
Предлагаемые рамки/инструменты :
Пример реализации :
Видеоигры работают над физическими двигателями. Построить свой собственный. Позже вы можете использовать этот двигатель для создания игр или проведения симуляций. Попробуйте построить 2D или 3D -двигатель физики, который может справиться с столкновением, движением, ускорением, гравитацией и другими силами в системе. Возможно, вам придется сначала понять немного физики, чтобы иметь возможность что -то построить, поэтому не торопитесь на это.
Предлагаемый язык : обработка (любой другой язык, который вы чувствуете себя комфортно, работает тоже)
Предлагаемые рамки/инструменты :
Пример реализации :
Проектируйте ИИ для игры Flappy Bird. Попробуйте несколько алгоритмов обучения, чтобы обучить свою сеть - Q -обучение, аккуратное и т. Д. Постройте идеальный ИИ, который будет играть в Flappy Bird лучше, чем вы (или кто -либо еще) когда -либо.
Предлагаемый язык :
Предлагаемые рамки/инструменты :
Пример реализации :
Создайте непревзойденный ИИ (либо всегда, либо по крайней мере рисует) в Tic-Tac-Toe. Вместо того, чтобы просто жестко кодировать, какой шаг играет, когда создайте искусственный интеллект, который узнает, как играть, а затем разрабатывает стратегии для победы.
Предлагаемый язык :
Предлагаемые рамки/инструменты :
Пример реализации :
Создайте симуляцию для лифта. Это может показаться случайным симуляцией, но вам нужно много думать, прежде чем реализовать что -то относительно этого, на какой этаж выходить, когда нажимают две кнопки? Есть ли какие -либо изменения, если вы добавите предпочтение подняться или уйти вниз? и так далее.
Предлагаемый язык :
Предлагаемые рамки/инструменты :
Пример реализации :
Создайте симуляцию всего мира. Постарайтесь быть как можно более подробно. Держите это простым, когда вы чувствуете себя застрявшим и медленно улучшаем это. Оцените это как самостоятельную игру, если это облегчает ситуацию. Для бонусных баллов добавьте в систему ИИ, чтобы позволить ей работать самостоятельно.
Предлагаемый язык : C ++ (или C - вам понадобится быстрый язык для симуляции)
Предлагаемые рамки/инструменты : Unity (хорошо для визуализации)
Пример реализации : Бибиты, моделирование экосистемы от Себастьяна Лага
Создайте инструмент, который будет генерировать случайных персонажей для игр, которые вы играете/создаете, как Pathfinder или Divinity: Original Sin. Сначала реализуйте случайный генератор символов, а затем настройте его, чтобы сделать символы, которые вам понравятся (добавьте ИИ).
Предлагаемый язык :
Предлагаемые рамки/инструменты :
Пример реализации :
Игра в жизни Конвея имитирует жизнь простых клеток, которые подчиняются алгоритмическим законам. Вы можете прочитать алгоритмические правила со страницы Википедии и реализовать их. Сделайте программу, способной к графическому рендерингу отображать конечный продукт.
Предлагаемый язык : обработка, JavaScript
Предлагаемые фреймворки/инструменты : p5.js (javaScript)
Пример реализации :
Создайте простое веб -приложение, чтобы уведомить вас, когда товар, который вы жажду, поступит в продажу по хорошей цене. Вы можете использовать веб -скребок, чтобы вытащить страницу продукта товара и уведомить вас о любых изменениях цен.
Предлагаемый язык :
Предлагаемые рамки/инструменты :
Пример реализации :
Создайте простой интерфейс (приложение для веб -приложения/телефон), которое вы можете использовать для добавления и классификации ваших расходов. Создайте ежемесячные отчеты на основе входных данных и напишите пользовательские оповещения о таких вещах, как «тратить слишком много на кофе ... как всегда».
Предлагаемый язык :
Предлагаемые рамки/инструменты :
Пример реализации :
Приложение (или служба) должно генерировать новые рецепты/царапины из Интернета. Поэтому, когда вы готовите по его рецепту, вы оцениваете его, чтобы рассказать ему, насколько хорош рецепт.
Предлагаемый язык :
Предлагаемые рамки/инструменты :
Пример реализации :
Создайте расширение браузера, которое переведет любое предоставленное предложение в комбинацию эмодзи. Вы можете использовать расширение для автоматического изменения текстов, которые пользователь отправляет посредством обмена сообщениями или электронной почты, или даже использовать его, чтобы помочь в написании сообщений в блоге.
Предлагаемый язык : JavaScript
Предлагаемые рамки/инструменты :
Пример реализации :
Создайте инструмент поиска, который реализует регулярные выражения. With it you can easily search for text matching a pattern in websites or documents that you may be writing or browsing.
Suggested Language : JavaScript
Suggested Frameworks/Tools :
Example Implementation :
Code a script that scrapes the currency conversion rate and then converts from a given currency to another suing the current market rate.
Suggested Language : Python, JavaScript
Suggested Frameworks/Tools :
Example Implementation :
Code a script that takes in a picture and then creates the Pixel Art from the image. You can achieve this by downsizing the image. You should also be able to generate random art using this script.
Suggested Language :
Suggested Frameworks/Tools :
Example Implementation :
Generate a tree like structure using the directories present in a given path by the user. This allows you to see the positioning of files and directories. We are visual animals and thus, visual depictions of directories are more understandable.
Suggested Language :
Suggested Frameworks/Tools :
Example Implementation :
Write a script to generate random usernames that you can use in games or various other places.
Suggested Language : Python or any other language
Suggested Frameworks/Tools : Random (Python Library)
Example Implementation :
Write a script that converts decimal numbers to roman numerals and vice versa. This may seem like an easy task but I assure you its not that easy. Попробуйте.
Suggested Language : Python or any other language
Suggested Frameworks/Tools :
Example Implementation :
Project Euler contains mathematical challenges that require programming tools to be solved. There are over 700 problems that you can solve, I urge you to document each solution in a properly organized way (probably build a repo for the solutions) so that you can showcase them online.
Suggested Language : Any language you want to practice
Advent of Code challenges occur every year in the days leading up to Christmas. They include lots of fun programming challenges that can help you develop your chops in a programming language that you want to master.
Suggested Language : Any language you want to master
Kaggle offers fascinating challenges to introduce you to the basics of machine learning with Python or R: Use a real dataset from the Titanic passenger log to predict which passengers were most likely to survive the disaster.
Suggested Language : Python or R