Лучшие проекты для развития разработчика

0
1434
views

Нет никакого секретного способа стать лучшим разработчиком. И работу над собой нельзя ничем заменить. Вам в любом случае придётся учиться и во всё вникать.

Но иногда этот процесс можно ускорить, например, создавая интересные проекты. А какие проекты можно назвать интересными?

Давайте разбираться.

Какой проект считается удачным?

Все проекты хороши. Но некоторые получше других. Как понять, каким проектом стоит заняться?

Перед тем, как я начну перечислять свои критерии, хочу уточнить, что все они субъективны. В конечном счёте решать всё равно вам: если идея вам нравится, её определённо стоит реализовать.

Итак, что я считаю важным в любом случае:

  • Стек технологий – проект можно оценивать по технологиям, которые в нём используются. И здесь всё зависит от вас: если хотите изучать Java, пишите проекты на Java. Я не настаиваю на применении новинок, но экспериментировать тоже полезно: пробуйте различные стеки, чтобы понять, что подходит именно вам.
  • Размер – чем больше проект, тем лучше? В большинстве случаев это так: работая над крупным проектом, вы задумываетесь над его архитектурой, структурой файлов и кучей других вещей, которые обычно не замечаете. С другой стороны, маленькие проекты полезны, когда вам важно сосредоточиться на чём-то одном. Например, чтобы изучить веб-сокеты, можно написать простенький мессенджер с небольшим функционалом.
  • Сложность. Простая задача – это скучно, так ничего нового не изучишь. Вот почему важно всегда немножко выходить из зоны комфорта. Только сперва убедитесь, что вы забежали не слишком далеко от неё, иначе запросто перегрузите себя. (См. «Растяжимые цели» в статье «Как побыстрее научиться программировать», — прим. ред. Techrocks).
  • Интерес. По-моему, любой увлекательный проект обречён на успех: он сам будет мотивировать вас писать код.

Теперь, когда мы обсудили все критерии, ответим на один вопрос, которым часто задаются новички.

Должны ли мои проекты соответствовать будущей работе?

Простой ответ – нет.

Большинство работодателей вообще не смотрят на это, если только вы не являетесь автором популярной open-source программы или чего-то в этом духе.

Я лишь пытаюсь сказать, что проекты стоит создавать только по двум причинам: либо для изучения новой технологии, либо просто для забавы.

Идеи

Итак, с теорией покончено, перейдем к практическим советам! Вот проекты, которые каждый программист должен хотя бы попробовать.

Клоны (Netflix, Google, Amazon и другие…)

Вообще нет идей? Почему бы просто не сделать клон приложения? Например, Netflix, Google, Amazon и т.д.

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

Визуализация

В последнее время эта тема всё более популярна. В основном это связано с тем, что так можно изучить основы Computer Science. А ещё такой проект украсит ваше портфолио.

Визуализировать можно многое: алгоритмы сортировки, обход графа и т.д. Дополнительной задачей будет красивое оформление вашего приложения.

От редакции Techrocks. Советуем обратить внимание на статьи:

Видеочат или мессенджер

Я бы не хотел приводить конкретные проекты, но я не мог пропустить этот. Мне он нравится: он научит вас актуальным темам, таким как веб-сокеты и WebRTC.

CMS

Классическая задача. CMS могут быть простыми и не очень. Если вдруг ваша CRM-система окажется полезной, можно будет превратить ее в полноценную SaaS (Software as a Service), что принесет вам дополнительный доход.

Проект с облачными вычислениями

Многие компании обращаются к облачным провайдерам для обеспечения себя необходимой инфраструктурой. А что может быть лучше для изучения облачных технологий, чем создание проекта на них?

Вы можете написать небольшой проект, использующий какой-то облачный сервис:

  • Хранилище: AWS S3
  • База данных: AWS RDS
  • Функции: AWS Lambda

P.S.: Вам не обязательно использовать AWS, просто на данный момент он самый популярный. Вы можете проверить и других облачных провайдеров, таких как Google Cloud и Microsoft Azure.

Игры

Если вам нравится играть, то почему бы не сделать игру самому?

Но сперва убедитесь, что не взялись за что-то слишком сложное: Ведьмака вы сами не сделаете.

Можно реализовать 3D игру, чтобы научиться физике, либо многопользовательскую, чтобы познакомиться с сетями. Начните с изучения Unity, либо моего любимого Godot.

Photo by Nakul on Unsplash

Распределённая система

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

Можно создать простые микросервисы, которые будут общаться друг с другом с помощью HTTP или gRPC.

Можно добавить обратный прокси-сервер, возможно, даже балансировку нагрузки, и разместить проект в облаке с помощью какого-нибудь облачного провайдера.

Онлайн-редактор кода

Ещё один крутой, но сложный проект. Лично я никогда не делал подобного, но предположу, что эта задачка не из простых.

Придётся иметь дело с файлами, подсветкой синтаксиса. А ведь код нужно ещё и исполнять, поэтому придётся как следует проработать всё, что будет под капотом у компилятора.

От редакции Techrocks. Примеры онлайн-редакторов можно посмотреть в статье «12 лучших онлайн-редакторов кода для веб-разработчиков».

Инструмент для работы с регулярными выражениями

Если вас бесят регулярные выражения, то эта идея, вероятно, вас не воодушевит. Тем не менее, такой эксперимент будет полезен, ведь вы (наконец-то!!) поймёте эту тему.

Вы можете дополнить свой проект примерами или возможностью сохранять выражения.

От редакции Techrocks. Примеры можно посмотреть в статье «Инструменты для изучения и тестирования регулярных выражений».

Файловый менеджер

Вот ещё один отличный проект в ваше портфолио. С ним можно изучить принципы работы файловых систем.

Также вам понадобится знание основных структур данных для реализации некоторых функций.

Приложение с машинным обучением

Машинное обучение – это круто.

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

Как вариант, можно создать детектор масок или приложение по распознаванию почерка.

От редакции Techrocks. Обратите внимание на статью «Идеи проектов машинного обучения для начинающих».

Photo by Jason Leung on Unsplash

Собственный фреймворк

Этот проект замечателен тем, что он заставит вас ценить фреймворки, которыми вы пользуетесь.

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

Заключение

Я очень надеюсь, что, глядя на этот список, вы уже придумали, каким будет ваш следующий проект.

Спасибо за внимание!

Перевод статьи Project Ideas to Make You a Better Developer.

От редакции Techrocks: ещё больше смелых идей – в статьях «12 идей проектов на Python для вашего портфолио» и «Лучшие проекты на Node.js для начинающих».

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

Please enter your comment!
Please enter your name here