🐛 ТОП-7 признаков неопытного программиста

Зная эти признаки, вы сможете избежать распространенных среди неопытных программистов ошибок и будете эффективнее строить карьеру разработчика.

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

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

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

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

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

Итак, неопытные разработчики…

1. Создают большие пул-реквесты

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

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

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

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

Что делать?

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

2. Пишут спагетти-код

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

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

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

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

Что делать?

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

3. Пытаются решить несколько задач одновременно

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

Едва получив таск, они сразу переходят к кодированию, не разобравшись в нем до конца (см. предыдущий пункт) и не уточнив, правильно ли все поняли.

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

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

Что делать?

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

4. Высокомерны

Высокомерие – верный признак неопытных разработчиков.

Они настолько заняты собой, что не могут разделить личность и работу, не понимают, если делают что-то неправильно. Любое замечание по коду или презентации они будут воспринимать как личное оскорбление и сомнение в их способностях.

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

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

Что делать?

  • Никто не любит высокомерных людей, особенно беспричинно высокомерных. Поэтому будьте скромны и вежливы.
  • Относитесь с уважением ко всем коллегам, учитесь отличать профессиональную критику от личных оскорблений.

5. Не учатся на своих ошибках

Механизм обратной связи – это один из самых эффективных инструментов для развития разработчика ПО. Зачастую только другой человек может заметить недостатки вашего кода и предложить пути улучшения, о которых вы даже не думали. Умный программист знает, как использовать подобные фидбэки для повышения своей производительности.

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

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

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

Что делать?

  • Относитесь позитивно к каждому фидбэку. Помните, что в нем могут быть разумные мысли и советы. Но также помните, что рецензент может ошибаться. В любом случае оцените его беспристрастно, прежде чем реагировать.
  • Учитесь на своих ошибках, не верьте в собственную непогрешимость. Запоминайте их, анализируйте и не повторяйте впредь.

6. Занимаются своими делами в рабочее время

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

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

Что делать?

  • Ограничьте свои личные дела в рабочее время. Если какая-то проблема требует вашего обязательного участия, лучше договоритесь с начальством и возьмите отгул или отпуск. Смешивая разные занятия, вы не преуспеете ни в одном.
  • Никто не запретит вам использовать перерывы, чтобы просмотреть социальные сети или купить пару акций.

7. Бегут за хайповыми технологиями

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

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

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

Что делать?

  • Не изучайте новые технологии только ради изучения. Если вы не будете использовать их, то очень скоро все забудете. Лучше уделите время вещам, которые могут принести вам реальную практическую пользу – на работе или в пет-проектах.
  • Изучая учебники и руководства, не ограничивайтесь теорией, не пропускайте практические упражнения. Делая что-то самостоятельно, вы лучше усвоите материал.
***

Неопытные программисты имеют неправильный подход к работе. Они не видят возможностей развития и снижают эффективность всей команды.

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

Больше полезной информации вы найдете на наших телеграм-каналах «Библиотека программиста» и «Книги для программистов».

Источники

ЛУЧШИЕ СТАТЬИ ПО ТЕМЕ

admin
29 января 2017

Изучаем алгоритмы: полезные книги, веб-сайты, онлайн-курсы и видеоматериалы

В этой подборке представлен список книг, веб-сайтов и онлайн-курсов, дающих...