Что нужно сделать, чтобы стать хорошим программистом
Нельзя стать хорошим разработчиком, если не создавать проекты. Но никто не должен решать за вас, какие проекты вам подходят.
vlada_maestro / shutterstock
Чтобы стать хорошим разработчиком, нужно пройти определённый путь и написать несколько проектов. В этой статье мы поразмышляем о том, какой путь правильный, какие проекты точно нужно выполнить и как не стать жертвой чужого влияния.
Инструкция, которая подойдёт каждому
Часто можно наткнуться на публикации, в которых новичкам предлагают выполнить конкретные проекты: TODO-листы, блоги, методы сортировки и их визуализаторы и прочее. Выполнишь — станешь профессионалом.
Я считаю, что программист никому ничего не должен (разве что заказчику, который уже внёс предоплату). Каждый разработчик, даже новичок, должен сам определить, что он будет делать и какой путь пройдёт.
Давайте я объясню, почему нельзя делать проекты под копирку.
Это неинтересно
Многим разработчикам действительно комфортно делать такие приложения, потому что это уже протоптанная дорожка и можно найти кучу материалов по этой теме.
Но они сразу их бросят, когда поймут, что выросли достаточно, чтобы начать что-то более серьёзное. Зачем цепляться за проект, который вы начали только потому, что он простой?
Я считаю, что браться за что-то стоит только в том случае, если вы искренне заинтересованы в этом и горите идеей. Тогда у вас будет эмоциональная связь с проектом.
Конечно, ненавидеть своё детище будете в любом случае — с каждым днём будете всё яснее понимать, что делали фигню. Что вообще всё тут надо сжечь и переписать.
Если нет эмоциональной связи, то вы теряете интерес и бросаете проект, чтобы начать что-то другое и на этот раз сделать всё правильно. А потом делаете то же самое с новым проектом. И с ещё одним / двумя / пятью / десятью / пятьюдесятью. Разумеется, вы получите опыт, но вместе с ним — и груз в виде брошенных проектов.
Поэтому смелее делайте то, что вам больше нравится. Пишите игровые движки, создавайте интернет-магазины уровня Amazon, попытайтесь запилить второй VK (или Facebook* — я никого не осуждаю). Делайте то, для чего вы на самом деле пришли в программирование.
Это несложно
В каждом проекте должен быть вызов. Всем кажется, что создать TODO-лист просто. Поэтому если бросить его, то потом всю жизнь придётся корить себя за то, что не справился с таким пустяком.
Если же изначально брать что-то очень сложное, то в любом случае вы останетесь победителем. Справились — отлично, теперь вы знаете, что можете работать над сложными проектами. Не получилось — тоже хорошо, такой опыт не на каждой задаче получишь.
Это неэффективно
Какой толк от 100500 одинаковых приложений? Нужно учить программистов не делать что-то под копирку, а создавать новое. Или хотя бы решать проблемы.
Это поможет стать более ценным специалистом. Потому что вы будете понимать, что нужно бизнесу, и всегда сможете запрограммировать как надо или предложить альтернативу.
Например, заказчику нужно на сайте изменить какую-то надпись. Допустим, поменять сообщение, которое уведомляет об использовании cookies, или заменить на сервере файл политики конфиденциальности.
Обе задачи на 5 минут: 3 минуты, чтобы запустить редактор кода и FTP-клиент, по одной минуте на каждую задачу.
Но если подумать, то можно найти решение лучше. Например, можно предложить заказчику добавить новые настройки в панель администратора, чтобы он мог выполнять такие мелочи самостоятельно.
Тогда вы сможете тратить своё время на что-то более полезное, а не отвлекаться 10 раз, потому что в надписи, которую вы добавили, была опечатка.
Не создавайте программы — создавайте решения!
Это нереально
Часто подборки проектов для новичков никак не связаны с реальной жизнью. Да, вы получите навыки выполнения каких-то общих вещей. Но не будете знать, как это устроено в определённой сфере.
Можно выполнить 500 абстрактных проектов, но какой в этом толк, если вы так и не узнаете, что от таких проектов требуют заказчики?
Раз проекты неинтересны, а их создание не приносит пользу, то они должны хотя бы отражать реальность. Да, новичку может быть сложно взять такой проект у реального заказчика. Но именно это и нужно попытаться сделать.
Вам придётся работать в жёстких условиях, чтобы довести проект до конца, но зато этот опыт будет самым ценным и реальным. Ну и, разумеется, вы научитесь общаться с клиентами.
Напоследок
Главное, что я хочу донести, — не нужно думать, что вы должны пройти строго определённый кем-то путь, чтобы стать профессионалом. Вам действительно нужно изучить конкретные подходы и инструменты, но как это сделать, решаете вы сами.
Главное, чтобы путь был интересен вам, а не кому-то из интернета. Беритесь за то, что интересно, даже если это кажется очень сложным или невыполнимым. Главное — довести до конца хотя бы один-два проекта.