проекты для тренировки программирования
Где новичку в программировании найти упражнения и идеи для проектов?
Авторизуйтесь
Где новичку в программировании найти упражнения и идеи для проектов?
Обучение программированию начинается с маленьких шагов. Понятно, что для начала нужно изучить синтаксис и концепцию выбранного языка. Но не менее важным является и оттачивание мастерства в составлении алгоритмов и решении программистских задач. В этой статье перечислены ресурсы, на которых собраны всевозможные задачи и идеи для собственных проектов.
Здесь можно найти список из более чем 100 идей для проектов, которые вы можете реализовать. Список предназначен для Python, но идеи можно выполнить и в других языках. В нём есть и не совсем серьёзные проекты, и хорошие упражнения для практики. Список крайне рекомендуется к ознакомлению и выполнению новичкам.
А здесь вы найдёте список из 49 клонов игр, которые вы можете написать. Выбор зависит от уровня сложности.
3–5 декабря, Онлайн, Беcплатно
Хотите создать что-то новое? Посмотрите Idea Machine и The Internet Wishlist, где люди публикуют свои пожелания по программам, которые они хотели бы увидеть.
Если хотите практических упражнений, то пройдитесь по данному списку сайтов/ресурсов:
Общие упражнения:
Задачи из олимпиад по программированию:
Под определённые языки:
Итак, вам на выбор дан список ресурсов для оттачивания своих навыков программирования. Для начала этого более чем достаточно. Если вы серьёзно проработаете хотя бы один из них, то это уже сделает из вас если не матёрого, то вполне крепкого разработчика, способного уверенно принимать серьёзные вызовы в программировании.
Еще список проектов, на чем потренироваться
«Мастер совершает больше ошибок, чем новичок — попыток»
Прошлый список тренировочных проектов набрал 50к прочтений и 600 добавлений в избранное. Вот еще один список интересных проектов для практики, для тех кто хочет добавки.
1. Текстовый редактор
Цель текстового редактора — уменьшить усилия пользователей, пытающихся преобразовать их форматирование как валидную разметку HTML. Хороший текстовый редактор позволяет пользователям форматировать текст по-разному.
В какой-то момент каждый использовал текстовый редактор. Так почему бы не создать его самостоятельно?
2. Клон Reddit
Reddit — это агрегация социальных новостей, рейтинг веб-контента и сайт для обсуждений.
Reddit — занимает большую часть моего времени, но я продолжаю зависать на нем. Создание клона Reddit — это эффективный способ изучения программирования (при одновременном просмотре Reddit).
Reddit предоставляет вам очень богатый API. Не упускайте какие-либо функции и не делайте как попало. В реальном мире с клиентами и покупателями, вы не сможете работать как попало, или вы быстро потеряете работу.
Умные клиенты сразу же догадаются, что работа выполняется плохо, и найдут кого-то другого.
3. Публикация пакета NPM с открытым исходным кодом
Если вы пишите код на Javascript, скорее всего, вы используете менеджер пакетов. Менеджер пакетов позволяет повторно использовать существующий код, который написали и опубликовали другие люди.
Понимание полного цикла разработки пакета даст очень хороший опыт. Есть много вещей, которые вам нужно знать при публикации кода. Вам нужно подумать о безопасности, семантическом управлении версиями, масштабируемости, соглашениях об именах и обслуживании.
Пакет может быть любым. Если у вас нет идеи, создайте свой собственный Lodash и опубликуйте его.
Наличие чего-то, что вы сделали в Интернете, ставит вас на 10% выше других. Вот некоторые полезные ресурсы об открытых источниках и пакетах.
4. Учебный план freeCodeCamp
freeCodeCamp — это некоммерческая организация. Она состоит из интерактивной обучающей веб-платформы, онлайн-форума сообщества, чатов, публикаций Medium и местных организаций, которые намереваются сделать доступным для всех изучение веб-разработки.
Вы будете более чем квалифицированы для своей первой работы, если вам удастся завершить весь курс.
5. Создайте HTTP-сервер с нуля
Протокол HTTP является одним из основных протоколов, по которым контент попадает в Интернете. HTTP-серверы используются для обслуживания статического контента, такого как HTML, CSS и JS.
Возможность реализовать протокол HTTP с нуля расширит ваши знания о том, как все взаимодействует.
Например, если вы используете NodeJs, то вы знаете что Express предоставляет HTTP-сервер.
Для справки, посмотрите, сможете ли вы:
6. Десктопное приложение для заметок
Мы все делаем заметки, не так ли?
Давайте создадим приложение для заметок. Приложению необходимо сохранять заметки и синхронизировать их с базой данных. Создайте нативное приложение с помощью Electron, Swift или чего-то еще, что вам нравится, и что подходит для вашей системы.
Не стесняйтесь сочетать это с первым челленджом(текстовый редактор).
В качестве бонуса попробуйте синхронизировать десктопную версию с веб-версией.
7. Подкасты (клон Overcast)
Кто не слушает подкасты?
Создайте веб-приложение со следующими функциями:
8. Захват экрана
Привет! Я снимаю свой экран прямо сейчас!
18 open source проектов для практики программирования
Пакет программного обеспечения для работы с медицинскими изображениями. 3D Slicer доступен на нескольких платформах, в числе которых Windows, Linux и OS X.
Инструмент, который позволяет распределять обработку больших массивов данных по кластерам компьютеров с помощью простых моделей программирования.
Популярный пакет программного обеспечения для работы с текстом, создания электронных таблиц, презентаций, графики, баз данных и т.д. Полностью открытый процесс разработки означает, что кто угодно может сообщать об ошибках, запрашивать новые возможности или улучшать программное обеспечение. Он написан в международном open standard формате, поэтому воспринимает файлы из других открытых офисных программных пакетов.
Coder (для Raspberry Pi)
Платформа для управления контентом, на которой работают миллионы веб-сайтов и приложений.
Менеджер для работы с медиаданными, предназначенный для создания больших централизованных медиа-библиотек.
Свободная операционная система типа Unix.
Офисный пакет для совместной разработки с функционалом, как у Microsoft Office или OpenOffice.org.
Система для создания курсов. Бесплатное веб-приложение, которое преподаватели могут использовать для создания эффективных Интернет-сайтов для обучения. Moodle стала очень популярной среди педагогов по всему миру в качестве инструмента для создания динамических веб-сайтов для своих студентов.
ПО для создания и управления обучающим аудио и видео контентом.
Мультиплатформенная система управления корпоративным контентом написанная на Java. Работает с несколькими базами данных (в том числе MySQL, Oracle, PostgreSQL, SQLLite, и другие), а также поддерживает несколько методов аутентификации.
Софт для создания частных и общественных облаков.
Сервис позволяет создавать опросы и делиться с контактами на сайте. Удобный способ собирать данные для их последующего анализа.
DICOM-сервер для здравоохранения и медицинских исследований. Предназначен для облегчения управления данными медицинских изображений. Хороший инструмент для автоматизации медицинских задач визуализации, специфических для каждого медучреждения.
Проект создан силами Open Source сообщества и предназначен для обеспечения лучших решений для предприятий с помощью бизнес аналитики.
Основные области применения:
Java™ разработчики могут использовать компоненты проекта для быстрого создания собственных решений для бизнес аналитики.
Модульная open source система управления цифровыми данными.
Бесплатный софт для e-commerce.
Языки c open source
Язык программирования с открытым исходным кодом и среда разработки для людей, которые хотят создавать изображения и анимацию.
Где найти больше open source проектов?
Один из самых крупных веб-сервисов для совместной разработки IT-проектов. Абсолютно бесплатен для open source проектов. Девиз сервиса “Social coding” можно перевести, как “Кодим вместе”.
Предназначен популяризовать open source проекты. С помощью инструментов, которые там предоставлены, разработчики создали мощное программное обеспечение в более чем 430,000 проектах; на ресурсе более 3,7 млн зарегистрированных пользователей. Популярный каталог объединяет более 41,8 млн клиентов с проектами open source и обслуживает более 4800000 скачиваний в день.
Как узнать является ли ПО open source и каковы правила его использования?
Необходимо понимать, что не все open source проекты могут быть использованы в коммерческих целях или свободно модифицированы.Чтобы узнать, является ли ПО open source и каковы правила его использования, нужно посмотреть его лицензию. Обычно полный ее текст находится непосредственно в коде.
Тем, кто хочет стать программистом, рекомендуем профессию «Веб-разработчик».
Пакет программного обеспечения для работы с медицинскими изображениями. 3D Slicer доступен на нескольких платформах, в числе которых Windows, Linux и OS X.
Инструмент, который позволяет распределять обработку больших массивов данных по кластерам компьютеров с помощью простых моделей программирования.
Популярный пакет программного обеспечения для работы с текстом, создания электронных таблиц, презентаций, графики, баз данных и т.д. Полностью открытый процесс разработки означает, что кто угодно может сообщать об ошибках, запрашивать новые возможности или улучшать программное обеспечение. Он написан в международном open standard формате, поэтому воспринимает файлы из других открытых офисных программных пакетов.
Coder (для Raspberry Pi)
Платформа для управления контентом, на которой работают миллионы веб-сайтов и приложений.
Менеджер для работы с медиаданными, предназначенный для создания больших централизованных медиа-библиотек.
Свободная операционная система типа Unix.
Офисный пакет для совместной разработки с функционалом, как у Microsoft Office или OpenOffice.org.
Система для создания курсов. Бесплатное веб-приложение, которое преподаватели могут использовать для создания эффективных Интернет-сайтов для обучения. Moodle стала очень популярной среди педагогов по всему миру в качестве инструмента для создания динамических веб-сайтов для своих студентов.
ПО для создания и управления обучающим аудио и видео контентом.
Мультиплатформенная система управления корпоративным контентом написанная на Java. Работает с несколькими базами данных (в том числе MySQL, Oracle, PostgreSQL, SQLLite, и другие), а также поддерживает несколько методов аутентификации.
Софт для создания частных и общественных облаков.
Сервис позволяет создавать опросы и делиться с контактами на сайте. Удобный способ собирать данные для их последующего анализа.
DICOM-сервер для здравоохранения и медицинских исследований. Предназначен для облегчения управления данными медицинских изображений. Хороший инструмент для автоматизации медицинских задач визуализации, специфических для каждого медучреждения.
Проект создан силами Open Source сообщества и предназначен для обеспечения лучших решений для предприятий с помощью бизнес аналитики.
Основные области применения:
Java™ разработчики могут использовать компоненты проекта для быстрого создания собственных решений для бизнес аналитики.
Модульная open source система управления цифровыми данными.
Бесплатный софт для e-commerce.
Языки c open source
Язык программирования с открытым исходным кодом и среда разработки для людей, которые хотят создавать изображения и анимацию.
Где найти больше open source проектов?
Один из самых крупных веб-сервисов для совместной разработки IT-проектов. Абсолютно бесплатен для open source проектов. Девиз сервиса “Social coding” можно перевести, как “Кодим вместе”.
Предназначен популяризовать open source проекты. С помощью инструментов, которые там предоставлены, разработчики создали мощное программное обеспечение в более чем 430,000 проектах; на ресурсе более 3,7 млн зарегистрированных пользователей. Популярный каталог объединяет более 41,8 млн клиентов с проектами open source и обслуживает более 4800000 скачиваний в день.
Как узнать является ли ПО open source и каковы правила его использования?
Необходимо понимать, что не все open source проекты могут быть использованы в коммерческих целях или свободно модифицированы.Чтобы узнать, является ли ПО open source и каковы правила его использования, нужно посмотреть его лицензию. Обычно полный ее текст находится непосредственно в коде.
Тем, кто хочет стать программистом, рекомендуем профессию «Веб-разработчик».
27 сайтов с задачками для оттачивания навыков программирования
Решение задач — хороший способ развить навыки разработки.
Также вы можете пускорить освоение нового для вас языка программирования, решая головоломки на этом языке.
В этой статье 27 самых популярных сайтов с задачками по программированию.
1. Codewars
2. Leetcode
3. Programming Praxis
Programming Praxis — блог, включающий целый ряд интересных задач, решения которых можно проверить на нескольких языках программирования.
4. TopCoder
TopCoder — активное сообщество программистов, которые любят решать головоломки. Много активных соревнований, некоторые из них включают денежные призы.
5. Python Challenge
Python Challenge — сайт, где загадки требуют написания небольших программ на Python. При этом сложность увеличивается в геометрической прогрессии с каждой новой загадкой.
6. C Puzzles
C Puzzles предоставляет вам головоломки по программированию, характерные для языка Си (со всеми его причудами). Поскольку многие языки являются Си-подобными или напрямую выведенными из него, даже если вы не знаете язык Си как свой родной, велика вероятность, что вы поймете эти головоломки.
7. Al Zimmermann’s Programming Contests
В описании сайта сказано, что это «арена, где сумасшедшие программисты сражаются ради славы и клёвых призов». Участие в соревнованиях, проводимых каждые пол года — замечательный способ проявить себя в сообществе программистов.
8. Project Euler
Цитата с главной страницы: «Project Euler — ряд бросающих вызов математических/программистских задач, которые предполагают наличие математической интуиции для их решения». Ресурс включает в себя как относительно простенькие, так и по-настоящему сложные задачки.
9. Ruby Quiz
Ruby Quiz — собрание соревнований по программированию среди рубистов, обновляемое каждую неделю. Подточенные под Ruby, эти соревнования могут быть решены и на других языках программирования.
10. Prolog Problems
Prolog Problems заточен под язык программирования Prolog. Но в сообществе есть решения и на других языках программирования, таких как Python, Ruby, Haskell, Scala. Решение задач на этом ресурсе — отличный способ познакомиться с новым языком программирования.
11. Codeforces
Полноценный русскоязычный аналог уже упомянутого Topcoder.
12. Сборник задач от CppStudio
Задачки в основном на проверку знаний С++, однако реализуемы и на других языках программирования.
13. Codingame
Оттачиваем навыки программирования, решая задачки и проходя занимательный квест.
14. Timus Online Judge
Timus Online Judge — это крупнейший в России архив задач по программированию с автоматической проверяющей системой. Основной источник задач для архива — соревнования Уральского федерального университета, Чемпионаты Урала, Уральские четвертьфиналы ACM ICPC, Петрозаводские сборы по программированию.
15. Codecombat
Одна из самых популярных браузерных стратегий для программистов. Увлекательная и захватывающая, с возможностью выбора предпочтительного языка — JavaScript и Python.
16. CheckIO
Изучение и практика языка программирования Python. Возможность создавать свои уровни путем программирования условий.
17. Школа программиста
Данный проект создан для повышения у школьников Красноярского края уровня знаний в программировании и способностей, направленных на решение олимпиадных задач.
Сайт содержит архив задач по олимпиадному программированию со встроенной проверяющей системой. Для участия в системе достаточно зарегистрироваться и перейти в раздел “Архив задач”, где на текущий момент Вам будет предложено решить 700 задач различной сложности.
18. E-olymp
Интернет-портал организационно-методического обеспечения дистанционных олимпиад по программированию для одаренной молодежи учебных заведений Украины.
19. Empire of Code
Космическая стратегия, в которой программирование является необязательным, но дающим большое преимущество навыком. После вводного курса предлагают выбрать одну из сторон — Python или JavaScript.
20. Codechef
CodeChef — платформа для программистских соревнований, поддерживаемая индийским разработчиком ПО “Directi”.
Что такого выдающегося в этой платформе?
Во-первых, перед соревнованиями можно хорошенько потренироваться, выбрав один из шести уровней сложности.
Во-вторых, платформа предлагает выбор из почти 30 языков программирования, которыми можно пользоваться при решении задачек. В месяц проводится около 2-3 соревнований с ограничением по времени. Некоторые из них — командные, и перед регистрацией нужно присоединиться к одной из команд или создать свою, что не так уж и сложно, ведь в CodeChef 125 тысяч участников.
21. HackerRank
Здесь вы можете поучаствовать в соревнованиях. В свой профиль можете поместить резюме, и вся информация будет доступна таким работодателям, как Facebook, Quora, Yahoo и многим другим.
22. Sphere Online Judge (SPOJ)
Динамичная площадка для соревнований, количество участников в которой превысило 350 тысяч человек. Ресурс публикует новости об открытых соревнованиях программистов, краудсорсинговых программах. Количество задач приближается к шести тысячам, возле каждой их которых есть соответствующее обсуждение.
23. GoCode
Практика на языке программирования Go в игровой форме.
24. Exercism
Сайт позволяет скачать практические задачи и решить их на более чем 30 языках программирования, при этом есть задачи как для начинающих, так и для опытных программистов. Обратная связь, получаемая после отправки решений, позволит сориентировать вас в изучении тех или иных тем, что позволит значительно облегчить написание кода.
25. Programmr
Площадка для программистских соревнований и хакатонов: позволяет писать код приложений прямо в браузере, конкурировать с другими программистами и выигрывать офферы и денежные призы!
26. InterviewBit
Сайт позволяет подготовиться к собеседованию в лучшие IT-компании Кремниевой долины, такие как Google, Facebook и Amazon. На нем вы можете практиковаться в решении задач с собеседований в этих компаниях, получать помощь от менторов, а также получать рекомендации от сотрудников этих компаний.
27. Rosalind
Rosalind – платформа для изучения биоинформатики и программирования через решение задач. Есть отдельный раздел для абсолютных новичков в программировании. Сайт предлагает задачи, дающее некоторое представление в молекулярной биологии и вычислительной сложности, решение задач производится с использованием языка программирования Python. Проверка задач выполняется автоматически.
Идеи проектов, которые можно построить для прокачки навыков программирования
Иногда хочется написать что-то эдакое, а идей нет. Сайт proglib.io опубликовал перевод статьи с подборкой классных идей для веб-проектов на любой случай и вкус.
Данные приложения поспособствуют:
Список идей разделен на три базовых уровня сложности:
1. Блокнот
Уровень: beginner
Описание: создание и сохранение заметок.
Возможности:
Бонус:
Полезные ссылки:
2. Рождественские огни
Уровень: beginner
Описание: ваша задача нарисовать в ряд семь цветных окружностей и по таймеру изменять интенсивность свечения каждого из них. После прохода нескольких рядов «лампочек» последовательность подсвечивания меняется.
Возможности:
Бонус:
Следующий вариант из списка веб-проектов часто приходится реализовывать на практике.
3. Тестирование
Уровень: beginner
Описание: создайте приложение-опрос для тестирования навыков программирования разработчиков.
Возможности:
Бонус:
Полезные ссылки:
4. Конвертер римских чисел в десятичные
Уровень: beginner
Описание: римские цифры включают в себя семь символов, каждый с фиксированным целым значением:
Возможности:
Бонус:
Полезные ссылки:
5. Поиск книг
Уровень: intermediate
Описание: приложение для поиска книги по запросу (название, автор и т. д.). Список книг отображается со всей информацией о них.
Возможности:
Бонус:
Полезные ссылки:
6. Карточная игра
Уровень: intermediate
Описание: эта игра на время, в которой после клика по карточке, появляется изображение. Необходимо найти такую же картинку среди других карточек.
Возможности:
Бонус:
7. Markdown-генератор
Уровень: intermediate
Описание: данное приложение преобразует обычную таблицу с данными в форматированную Markdown-таблицу.
Возможности:
Бонус:
Полезные ссылки:
8. Линии
Данный кандидат из списка веб-проектов уже реализован много раз, но его необходимо выполнить для тренировки своих навыков.
Уровень: intermediate
Описание: приложение автоматически рисует разноцветные линии. Когда линия касается края окна, она меняет свое направление. Полосы постепенно исчезают. Библиотеки анимации не используются. Применяйте только Vanilla HTML/CSS/язык JavaScript.
Возможности:
Бонус:
Полезные ссылки:
9. Список дел
Уровень: intermediate
Описание: классическое приложение, где пользователь может записать все мысли, задачи и цели, чтобы не забыть.
Возможности:
Бонус:
Полезные ссылки:
See the Pen To Do List by Burak Kaya (@yesilfasulye) on CodePen.
10. Морской бой
Уровень: advanced
Описание: текстовый вариант графической версии игры. Игра состоит из движка (BGE) и консольной части.
Возможности:
Консольная часть
Полезные ссылки:
11. Чат
Это приложение самое интересное из подборки веб-проектов и самое популярное на данные момент.
Уровень: advanced
Описание: классический мессенджер.
Возможности:
Бонус:
Полезные ссылки:
Следующий в списке веб-проектов – классная полезность для Git-а. Зацените!
12. GitHub Timeline
Уровень: advanced
Описание: приложение должно показывать всю историю создания репозиториев, их имена и даты создания по конкретному юзеру. График можно расшарить. Используются только публичные репозитории.
Возможности:
Бонус:
Полезные ссылки:
See the Pen CSS Timeline by Nils Wittler (@NilsWe) on CodePen.
13. Spell-It
Уровень: advanced
Описание: приложение Spell-It помогает пользователям практиковать свое правописание, воспроизводя слова в аудиозаписи, которые пользователь затем должен написать. Применяется углубленное программирование JavaScript.
Возможности:
Бонус:
Полезные ссылки:
Вторую статью, со следующими 9 идеями проектов и детально прописанными user stories можно почитать здесь.





























