Я никогда не устану повторять, что практика – это один из самых важных и эффективных способов изучения чего-либо, а в частности и программирования. Подробнее об этом ты можешь почитать в моей предыдущей статье. Однако, перед новоиспеченным разработчиком встает резонный вопрос, а что же, собственно, мне разрабатывать? Какой проект выбрать для реализации на самом деле не так важно. Главное начать делать хоть что-нибудь. Огромное число людей сдаются, даже не начав что-то по-настоящему делать.
В первую очередь тебе следует задуматься, а что еще кроме программирования тебе интересно в жизни. Практически у каждого человека есть хобби или просто область знаний, которая ему может быть интересна. Например, музыка, кино, сериалы, игры, спорт, литература – все что угодно. Или еще лучше, если у тебя есть какие-либо рутинные действия, которые ты можешь автоматизировать с помощью компьютера: отправка уведомлений, сортировка файлов или сложные вычисления. Подумай, как это можно автоматизировать. Если не хватает воображения – тоже не беда. Найди готовое приложение, которое может выполнять нужные тебе действия и постарайся сделать свою собственную копию. В этом нет ничего плохого, вряд ли тебе с первого раза удастся создать конкурентный продукт, но опыт ты получишь очень даже хороший.
Но на тот случай, если совсем ничего не приходит в голову, я могу тебе порекомендовать пять типов приложений, которые позволят тебе развить свои навыки в различных областях программирования. В идеальном случае тебе нужно будет сделать их все, но начать вполне можно с любого. Я расположил их в наиболее выгодном порядке для реализации с моей точки зрения.
Веб-каталог. Начни с одного из самых простых типов приложений – справочника. В той же самой Visual Studio ты можешь создать MVC Web Application и написав буквально несколько строчек кода создать полноценное веб-приложение, куда можно будет добавлять данные, изменять и удалять их. Большую часть кода (CRUD) за тебя сгенерирует система. Тебе достаточно будет просто описать модель выбранной тобой предметной области. Можешь посмотреть об этом мое самое первое видео, которое я записывал для своего YouTube-канала
Список дел (To-do List). Уже чуть более продвинутая, но при этом считающаяся классической задача. Список дел позволит тебе реализовать отслеживание состояния объекта, а если сильно заморочишься, сможешь сделать полноценный менеджер задач, похожий на Trello.
Анализатор погоды (или любых других публичных данных). Очень важно научиться работать с публичным API существующих веб-служб. Например, ты можешь собирать данные от различных метеорологических сайтов и вычислять средние значения. Очень полезный навык, который тебе сто процентов пригодится в будущем.
Собственный мессенджер. Знакомство с веб-сокетами станет полезным умением для тебя. Ты изучишь не только, как работает сеть, но и сможешь поэкспериментировать с различными протоколами передачи данных, алгоритмами сжатия и шифрования.
Аркадная игра. Этот пункт не обязателен, если ты не планируешь в будущем работать в gamedev, однако, никто не знает, как может повернуться жизнь, и возможно именно это будет для тебя плюсом. Разработай простую игру с нуля или если хочешь что-то крутое, то на игровом движке. Это может быть классическая змейка, платформер типо дудл джам или Марио.
Главное не замахивайся на грандиозный продукт с самого начала. Развивай его постепенно, маленькими итерациями, добавляя все новые и новые функциональные возможности. И обязательно доводи проект до логического конца. Никогда не начинай новую разработку, пока предыдущая еще не завершена. Это один из главных врагов результативности. Лучше доведи проект до конечного, пусть и далеко не идеального результата, который можно кому-либо показать, чем бесконечно начинать новые более хорошие реализации. Только когда все сделано и проект официально завершен, только тогда можешь начинать думать над новым.
И главное, регулярность важнее единоразовой нагрузки. Выделяй каждый день по несколько часов на практике, и тогда ты обязательно добьешься результата.
Большое спасибо за прочтение! Пожалуйста, поставь лайк и подпишись на канал, чтобы не пропустить свежие статьи. Этим ты очень поможешь развитию блога!
Также рекомендую прочитать статью Вредные советы при работе с заказчиком