12 признаков плохого программиста – выявляем непрофессионала

Алексей Рузин
Алексей Рузин

Ведущий разработчик Kokoc.com

Расскажите друзьям
Виктория Кравченко

Rusbase и Kokoc Group продолжают разоблачать дилетантов в digital. На этот раз «под раздачу» попали программисты и разработчики, которые занимаются сайтом компании и его интеграцией со сторонними системами.

О том, как определить, что программист – непрофессионал, рассказывает Алексей Рузин, ведущий разработчик Kokoc.com (Kokoc Group).

Речь о программисте-универсале

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

Мы будем говорить о требованиях к единственному программисту, отвечающему за небольшой интернет-магазин (30-3000 карточек товаров, 1-10 заказов в сутки). Этот специалист должен быть универсалом, то есть одинаково знаком и с бэкендом – разработка на стороне сервера, и с фронтендом – разработка на стороне браузера пользователя).

1. Минимальные требования

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

Если компания собирается разрабатывать сайта с «нуля», то программист должен знать:

  • один из распространенных языков: PHP/Python/Ruby/C#;
  • одну из СУБД: MySQL/PostrgreSQL/MSSQL/Oracle/MongoDB;
  • одну из распространенных систем управления сайтами (CMS): Bitrix, UMI, Drupal, ShoppingCart, WordPress;
  • обладать навыками администрирования Linux и web-серверов, например, одного из Nginx/Apache/IIS или иметь опыт размещения веб-серверов в Cloud-платформах AWS, Google Cloud, Asure.

Отсутствие этих навыков не говорит о том, что он дилетант. Он вам просто не подходит.

2. Заочное знакомство

Признаки слабого программиста можно выявить еще до собеседования по резюме, изучив портфолио. Если программист указал свои работы (сайты), то стоит открыть их в Google Chrome, зайти в раздел меню браузера «Дополнительные инструменты», выбрать пункт «Инструменты разработчика» и открыть вкладку «Console».

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

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

3. Плавали, не знаем


Естественно, большое значение имеет практический опыт работы. Если на собеседовании в ответ на вопросы о прошлых разработках, кандидат «плавает» и не может объяснить собственные действия, стоит насторожиться.

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

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

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

4. Птичий язык


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

Как проверить: попросите рассказать о какой-то ошибке, за которую ему «влетело» от руководства. Например, на сайте 2 недели не работала форма «обратной связи». Представьте, что это ваш сайт.

Уточните в чем была суть ошибки, как он о ней узнал, как нашел причину и устранил ошибку. Если соискатель будет рассказывать «заумными терминами» - попросите разъяснить. Если вы все еще не удовлетворены объяснением, сработаться с ним будет сложно.

5. «ОпенСорс»


Многие специалисты публикуют собственные разработки на сайте GitHub (или BitBucket). Если у программиста несколько публичных проектов и тем более их отметили или скопировали (fork) другие пользователи – это существенный плюс. Большое количество копирований говорит о высоком уровне профессионализма.

Программист уровня Dan Abramov будет искать крупную компанию, уровня Facebook (он сейчас там работает), однако если ваш кандидат имеет проекты с ненулевыми отметками и «зеленая область» тоже заполнена – отлично! Смело зовите его на собеседование.

Как проверить: попросить соискателя прислать ссылку на аккаунт в GitHub (BitBucket) и перечислить проекты, которыми он гордится. Обратить внимание на «возраст аккаунта», количество проектов и число копирований кода другими пользователями.

6. Старый багаж


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

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

Как проверить: спросить, какие инструменты или технологии кандидат узнал за последние год-два и как они помогли ему в работе.

7. Цены с потолка


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

На простые задачи типа «замена цвета кнопки» или «создание карты сайта» стоит ожидать быстрые ответы – «дело 5 минут» или «справлюсь за 2 часа» соответственно.

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

Как проверить: спросить у кандидата, сколько времени ему понадобится, чтобы заменить цвет кнопки «Купить» в интернет-магазине и сделать карту сайта (site map).

8. Ручная работа


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

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

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

9. Лишние близнецы


Дубли кода – верный признак неопытного программиста.

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

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

Как проверить: спросить кандидата, дублирует ли он код. Не дилетант скажет «да, бывает», но объяснит это нерациональными расходами времени на избавление от дублей. Если ответ «нет», то программист врет, мало писал или перфекционист - любое из этих объяснений - плохой вариант.

10. Резать по живому


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

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

Как проверить: спросить кандидата, как он обновлял сайт на предыдущем месте работы.

11. Доверяет, но не проверяет


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

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

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

Как проверить: если есть сомнения в программисте, протестировать сайт самостоятельно. Допустим, после интеграции сайта с платежными системами, попробовать оплатить заказ, например, через «Яндекс.Деньги». Все должно пройти гладко.

12. Улыбаемся и машем


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

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

Как проверить: попросить программиста рассказать, как он узнавал об ошибках на предыдущих проектах.


Материалы по теме:

8 признаков плохого digital-преподавателя, который не стоит вашего времени и денег

Как узнать секреты бизнес-партнера — 9 правовых способов

7 признаков того, что ваш веб-аналитик – непрофессионал

Как купить трафик у SEO-агентства и не быть обманутым

Как мошенники обманывают стартапы. Личная история



Самые актуальные новости - в Telegram-канале Rusbase

Нашли опечатку? Выделите текст и нажмите Ctrl + Enter


Комментарии

  • Сергей Мезенцев
    Сергей Мезенцев 14:46, 22.12.2017
    1
    • Матвей Панов Матвей Панов
    Первый пункт - полный бред. Почему программист должен знать PHP или C#? Javascript перестал подходить? Почему он должен знать какую-либо CMS? Может у него уже есть своя, которая в 10 раз лучше? Не позорились бы такое писать - ведь кто-то поверит
  • Матвей Панов
    Матвей Панов 15:39, 24.12.2017
    1
    • Олег Фролов Олег Фролов
    Есть моменты, с которыми согласен, есть с чем отчасти согласен, но большинство - личное мнение автора статьи. Как подсказывает сайт - автор разработчик на сайте kokoc.com Это SEO студия, и, судя по отзывам - работают "очень хорошо"... Из чего я заключаю, что эта статья своеобразная реклама этой Веб-студии, а если они подбирают в свою команду разработчиков, руководствуясь логикой, изложенной в статье - не удивительно, что столько нелестных отзывов..
  • Олег Фролов
    Олег Фролов 10:29, 30.12.2017
    1
    • Матвей Панов Матвей Панов
    Для рекламы студии сойдет, но не более.
  • Egor Oldenburger
    Egor Oldenburger 14:00, 4.01.2018
    0
    Мое личное мнение 1. Языков перечислили мало, зато указали много баз данных... Знание CMS вообще не должно быть обязательным. Есть фреймворки, например, знаю много приличных самописов... 4. Спорно.. Опытный программист может уже и сам разговаривает в повседневной жизни терминами... Зависит от одержимости своим занятием. Это из темы "Как же тяжело разговаривать с системным администратором"... 8. Не совсем согласен по использованию чужого кода. Это не показатель. Использовать можно только проверенный и поддерживаемый код... Мне кажется, нужно было не свое мнение высказать, а на его основе провести небольшое исследование... Тогда была бы приличная статья...
  • Ruslan V.
    Ruslan V. 11:52, 6.01.2018
    0
    Открываем сайт Kokoc.com в Google Chrome - Дополнительные инструменты - Инструменты разработчика - Консоль. Ая-я-яй, сколько ошибок то! И это все, что вам нужно было знать про данного специалиста
  • Сергей Мезенцев
    Ruslan V. Сергей Мезенцев 18:33, 6.01.2018
    0
    Может у меня Google Chrome какой-то не такой, но на сайте kokoc.com я не увидел ни одной ошибки в консоли разработчика.
  • Матвей Панов
    Сергей Мезенцев Матвей Панов 18:51, 6.01.2018
    0
    Если Adblock не выключать, то их там около 28... И правильно - счетчики блокируются. Без него я насчитал около 8шт - просто что то не подключили...
  • Матвей Панов
    Матвей Панов Матвей Панов 18:53, 6.01.2018
    0
    Вернее не настроили до конца переход http ->https
  • Олег Фролов
    Матвей Панов Олег Фролов 09:36, 7.01.2018
    0
    Верно. Там и css/js корявые, нет адаптации, нет оптимизации, а СЕО - отдельная история.
  • Сергей Мезенцев
    Олег Фролов Сергей Мезенцев 15:09, 7.01.2018
    0
    JS корявые, но неизвестно в какое время этот сайт писался.. Когда-то такой JS был верхом профессионализма
  • Сергей Мезенцев
    Ruslan V. Сергей Мезенцев 15:07, 7.01.2018
    0
    Я что-то делаю не так? https://gyazo.com/00ed8479929d87ef98c6ac0c75ee2f01
Комментарии могут оставлять только авторизованные пользователи.


Telegram канал @rusbase