[О блоге] [наверх] [пред] [2022-02-10 10:43:07+03:00] [cfecdc4be3592114888e23a726193500d32b099c]

Как понять, что перед вами плохой разработчик

https://habr.com/ru/company/hexlet/blog/650603/
Уже наверное с год я стал замечать как люди говорят. Видя всяких
блоггеров время от времени, видя интервью с молодняком и Брайанами
Керниганами (89c4d5373d535a0b04b499a583d6f69312f302ea), стал
отмечать насколько же отличается речь. И действительно заметна
корреляция между уровнем разработчика и тем, как он говорит. Это
замечаю и в жизни у коллег. Отличный список критериев в статье:

    * Насколько объёмный у него словарный запас;
    * Как часто он поправляет себя;
    * Как начинает и как заканчивает фразы;
    * Насколько целостны и непротиворечивы его мысли;
    * Насколько плавна его речь;
    * Много ли он использует слов-паразитов и заполняющего паузы "мычания";
    * Насколько обширный контекст он способен удерживать в диалоге;
    * Насколько лаконично и ёмко он способен донести информацию.

Злоупотребление жаргонизмами, buzzwords, новояз -- аналогично тоже
замечал что крутые профи ничем подобным не балуются никогда.

Перфекционизм и идеализм -- тоже замечал что у молодых и неопытных это
нередко проявляется. Сам такой. И понимаю что всё хорошо в меру.

Переусложнение или оверинженеринг -- самое первое что бросается в глаза
у не очень опытных разрабов! Но тут всё очевидно.

    * Желание учесть абсолютно все пограничные случаи работы приложения,
      независимо от их вероятности и степени рисков, которые они несут
    * Трата ресурсов и времени на разные аспекты задачи
      непропорционально их фактической значимости
    * Инновации ради инноваций
    * Преждевременная оптимизация

Самоуверенность, велосипедизм, эффект Даннинга-Крюгера -- ни с чем не
поспоришь, корреляция всего этого с уровнем разраба ещё какая.

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

    [оставить комментарий]
    комментарий 0:
    From: kmeaw
    Date: 2022-02-13 23:35:20Z
    
    Соглашусь, что умения понятно излагать свои мысли и решать задачи
    написанием понятного кода коррелируют. Но при чтении кода коллег мы
    обычно сталкиваемся с кодом, который был написан в несколько (хотя бы
    10-15 минутном) прошлом. Тогда как при живом общении мысли собеседника,
    которые он кодирует естественным языком, появляются гораздо
    интерактивнее и имеют куда более молодой возраст (в единицы или десятки
    секунд).
    
    Я последнее время стал заниматься странной вещью - вечерами
    транслировать в прямом эфире неопределённому кругу лиц процесс написания
    программы, по возможности комментируя его голосом. Качество как кода,
    так и моих комменатирев по ходу процесса сильно проигрывает тому, что я
    делаю, например, на работе, и этому я вижу следующие причины:
    
    1. Если у меня появляется какая-то идея, требующая совсем немного кода
    для проверки, и я сильно сомневаюсь в её применимости, то я быстро
    напишу низкокачественный код для её проверки. По мере написания этого
    кода я просто не успею подумать, как понятным для потенциального
    собеседника образом рассказать, а в чём же именно заключается моя
    текущая гипотеза, и каким именно способом я её проверяю - поэтому речь
    будет и слова-паразиты содержать, и в целом окажется достаточно
    скомканой.
    
    2. Если гипотеза из п.1 провалилась, то я этот код удалю. На работе его
    бы просто никто никогда не увидел, я даже коммитить его не стану. Если
    посмотреть на историю в VCS, то может показаться, что типичному
    разработчику очень везёт - все небольшие по форме идеи почему-то
    срабатывают. А если посмотреть на каждый символ, который он вводил в
    текстовый редактор, то окажется, что 80-90% кода выкидывается.
    
    3. Если я осознаю, что кто-то наблюдает за процессом написания кода, то
    я начну вести себя по-другому - больше переживать, что напишу
    какую-нибудь глупость, скажу какую-нибудь глупость. На это тратятся мои
    когнитивные ресурсы, из-за чего страдает качество кода, качество
    комменатриев, да и вообще я просто быстрее устаю - и меньше всего успею
    сделать.
    
    Возвращаясь к предыдущей теме - на мой взгляд, то, что человек
    использует скудный словарный запас, часто поправляет себя, проявления
    нецелостных и противоречивых мыслей - всё это является индикатором не
    то, что он будет писать плохой код, а то, что он будет писать плохой код
    в прямом эфире с первого раза. Володарским ему не быть, но и плохим
    разработчиком он может не являться.
    
    комментарий 1:
    From: Sergey Matveev
    Date: 2022-02-14 10:40:45Z
    
    В принципе согласен и солидарен со всем сказанным. По каждому пункту у
    меня аналогичный опыт. Но тут речь скорее про то, что у "профи" просто
    не возникнет совсем уж глупая идея, он никогда не перепутает
    "аутентификацию" с "авторизацией" (ну... если это его область, конечно
    же) в беглой речи.
    
    Согласен что 90% кода выкидывается, тьма вообще никому не видна кроме
    автора, коммитится окончательный результат его мыслей. Во время
    "разговора" или подглядывания за тем что и как он делает: будет видно
    направление куда он движется или что он пробовал. Для меня это из серии
    сравнения человека без высшего образования и с высшим: точно так же
    имеется корреляция. Бывают программисты/инженеры и без высшего
    образования, но редкость, скорее исключение из правил, и не потому что
    бумажка нужна, а потому что или они отсеиваются в институте и понимают
    что не могут быть инженером, либо институт учит пользоваться головой,
    иметь системный подход. И с опытом аналогично.
    
    Я в 9-ом классе подрабатывал в ЦУПе и уже тогда видел огромнейшую
    разницу между теми, кто заканчивал Бауманку, МАИ и Лестех (я на полном
    серьёзе думал и обсуждал с родителями что лучше пойти в армию, чем туда
    -- но в нём куча людей из Королёва училась и учится потому что он рядом
    и не сложно поступить). Я пускай и далеко не всё понимал, но видно как
    Лестеховцы еле-еле излагают свои мысли, а выходцы из МГТУ/МАИ чётко,
    ясно, кратко и быстро. Просто корреляция :-)
    
    >Володарским ему не быть, но и плохим разработчиком он может не являться.
    
    Безусловно. Но корреляция имеется :-). Как и с корреляция с высшим
    образованием (оно тоже ничего не гарантирует или его отсутствие не
    ставит крест).