Найти тему
GeekBrains

25 полезных для разработчика привычек

Оглавление

Правильная привычка — шаг к профессионализму.

Специалиста можно вычислить по незамысловатым признакам. Какие привычки присущи хорошему разработчику? Рассказывают опытные программисты

Антон Захаров, технический директор .masterhost:

Думать десять раз, прежде чем начать что-либо делать
Как правило, всегда есть более правильный или простой способ что-либо сделать, нужно помнить о принципе KISS (keep it simple).

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

Уточнять все требования к задаче
Нужно разговаривать с заказчиками до тех пор, пока они не выдадут всю информацию по задаче.

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

Развивать у себя эмоциональный интеллект
Даже если человек, казалось бы, несет полную ерунду, нужно разбираться в том, чего он хочет и что у него не так. Скорее всего, за неадекватной речью скрывается адекватная проблема. Нужно думать не только как программист, но и как заказчик (может потребоваться симуляция мышления пятилетнего ребенка).

Помнить о здоровье
Качество работы сильно зависит от физического и ментального состояния.

Работать вдумчиво
Искать красивые архитектурные способы решения проблем, избегать быстрых «хаков».

DRY (don't repeat yourself) 
Думать не только о том, что делает твой код, но и о том, чтобы его можно было использовать повторно где-то еще.

Мамикон Вартапетян, руководитель группы разработки БД компании «Лестэр ИТ»:

Сначала алгоритм
Как бы качественно ни было составлено ТЗ, перед началом написания кода нужно проработать алгоритм. Ведь часто при прочтении ТЗ никаких вопросов по постановке задачи не возникает, а вот при написании кода их появляется вагонетка. Изменить алгоритм проще, чем переписывать код. Также созданный алгоритм помогает быстро вернуться к задаче, если пришлось прервать процесс разработки, и позволяет максимально точно оценить срок реализации.

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

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

Поспешать медленно
Профессия программиста предполагает обработку огромного количества информации. Качество кода напрямую зависит от потраченного на него времени. Поспешно написанный код хорошим быть не может.

Роман Бойцун, технический директор ООО «СИАМ консалтинг»:

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

Александр Алексеев, технический директор Restoclub.ru:

Исследовать чужой код
Если задача типовая, то проще будет найти готовое решение, оценить его и использовать, если оно подходит. Тем более, что такие решения обычно являются более продуманными и проработанными, чем те, что вы собираете на «коленке» за пару часов. А как говорил мой преподаватель по математическому анализу — «специалист не тот, кто все знает, специалист это кто знает, где искать».

Относиться к коллегам по «цеху» лояльно и без агрессии
Иногда есть проблемы при работе в команде, что даже из-за названия переменной могут начаться «горячие» споры. Но прежде чем переходить на личности, я стараюсь понять собеседника и рассказать ему свою точку зрения, чтобы попробовать найти решение, которое устраивает всех. Программирование — это очень личное, но работа в команде должна начинаться с диалога. 

Александр Горник, исполнительный директор Mindbox:

Читать
Программист — особенная профессия, тебе постоянно нужно изучать новые технологии и способы их применения, чтобы оставаться востребованным на рынке. Лучшего способа, чем чтение книг еще не придумали. Хотя некоторые пытаются его заменить прохождением онлайн тренингов и курсов. Но, на мой взгляд, это менее эффективно. 
Кстати, рекомендую отличную подписку от Мартина Фаулера из австралийской компании Thoughtwork. Это лучший ежеквартальный обзор различных техник и технологий в разработке и рекомендаций по их использованию.  

Гуглить
Любой программист сталкивается с непонятными ситуациями. Их всегда можно решить, обратившись к коллегам или специализированным сайтам. Но наиболее качественное и быстрое решение всегда на английском языке и находится через Google. Нужно освоить это и пользоваться. 

Программирование пришло с Запада, и 90% информации именно там. Нужно только научиться «гуглить».

Тестировать за собой
Классический процесс разработки в компании выглядит следующим образом: программист пишет код, передает его тестировщику, тот в свою очередь проводит тесты. И это неплохо работает. Но хороший программист всегда самостоятельно проводит базовый тест кода, убеждается, что все работает правильно. В этом разница между разработчиком и кодером.

Думать про бизнес смысл кода
Всегда нужно задавать себе вопрос: «Не фигню ли я делаю?». 
Многие разработчики получают задачи в виде «разработать таблицу», «написать функцию» или «создать класс». Но таблица, функция и класс нужны для чего-то, они имеют бизнес-смысл и должны приносить какую-то пользу людям. Если разработчик пишет код, не понимая, какую конкретно пользу он приносит (кого он делает счастливее), то, скорее всего, он делает фигню. 
В момент, когда поступают задачи, в которых не описан бизнес-смысл, нужно всегда попытаться найти его. 

Правильно всё называть и говорить с менеджерами на одном языке
Это один из важнейших принципов корпоративной разработки — проектирование в предметной области заказчика. Язык, на котором общаются менеджеры, должен совпадать с тем, как программисты общаются между собой, и как ставятся задачи. Если менеджер оперирует понятием «покупатель», а таблица в коде называется «пользователь», то создается эффект испорченного телефона. Менеджеры говорят об одном, а разработчики в процессе перевода на свой язык в коде понимают их иначе. Возникают хаос. Хороший разработчик должен писать код в тех терминах, которые используют специалисты предметной области — те, кто ставит задачи.

Артем Молоков, разработчик ПО в Parallels:

Никогда не сдаваться
Мне недавно подарили книгу по психологии, так что я пытаюсь экстраполировать её на свою деятельность. Из того, что я на данный момент для себя вынес, могу сформулировать один совет: никогда не опускать руки и не сдаваться, сталкиваясь со сложными задачами, а важнее всего — с критикой.

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

Относиться к чужому коду с уважением
Если бы ваши коллеги были идеальными программистами, зачем бы им тогда было бы работать с вами плечом к плечу в одной команде?

Евгений Батогов, зам. директора по разработке программного обеспечения по технологическому развитию компании CTI:

Учить английский язык
Это позволит развиваться и расти, читая актуальную литературу, поскольку книги на русском языке отстают на 3-5 лет.

Не поддаваться хайпу
Распознавать тенденции и не верить в воздушные пузыри. Нужно не просто читать все подряд, нужно читать серьезную литературу и анализировать ее. 

Сергей Стрелков, руководитель направления собственных разработок КРОК:

Руководствоваться здравым смыслом
Не думаю, что привычки сами по себе могут сделать из кого-то хорошего специалиста, особенно, если речь идет о программистах. Привычка скорее означает неосознанное повторение, в то время как мы ожидаем от разработчика продуманного подхода к решению каждой задачи. Несколько поспешных строк кода способны внезапно остановить систему с сотнями тысяч пользователей и потребовать десятки человеко-дней на лечение проблемы. Так, например, программная ошибка в софте Боинг 787 «Дримлайнер» может привести к остановке всех генераторов на борту из-за переполнения целочисленного счетчика через 248 дней. Страшно представить, чем такая поспешность может обернуться для жизни сотен людей.

Привычкой хорошего программиста должно стать постоянное профессиональное развитие, стремление повышать свой уровень, участвовать в специализированных мероприятиях. Все это, кстати, в современных реалиях требует также повышения уровня владения английским языком. И, конечно, стоит помнить, что разработка программного обеспечения — это, в первую очередь, командная работа, обязывающая к целому ряду практик, которые и должны стать хорошей привычкой: писать код набело, задавать правильные вопросы, не уходить с работы сломав билд и т.п.

Если понравилась статья, ставьте лайк и подписывайтесь на канал.

Почитайте похожие материалы:

Лендинг: идеальный первый экран

Видео - Какой язык программирования выбрать в 2018?

Как фрилансеру рассказать о себе

Книги не по программированию, которые будут вам полезны

Как организовать рабочее место в однокомнатной квартире

Если вы хотите почитать статьи и материалы в нашем блоге, переходите на наш сайт.