Инженер Мохамед Абоелес составил и опубликовал в блоге список отличительных знаков, которые, по его мнению, выдают плохого программиста. Главный тезис его сугубо субъективного мнения — программировать стоит, только если вам это нравится. Автор считает, что никто не идеален, но если вы узнали себя в трех и больше пунктах, пора задуматься.
Итак, по мнению Мохамеда Абоелеса вы плохой разработчик если:
- Вам не нравится программировать;
- Вас не волнует читабельность и возможность поддержания вашего кода в будущем;
- Вы не понимаете свой собственный код спустя год;
- Прежде чем толком разобраться в проблеме, вы предпочитаете сначала написать код возможного решения;
- Вы не привыкли тестировать. Например, не добавляете в свои функции юнит-тесты;
- У вас возникают проблемы при именовании переменных и функций;
- Вас не волнует количество зависимостей в ваших проектах;
- Вы боитесь допустить ошибку или спросить решение проблемы у других разработчиков;
- Вы не читаете референсы, описания к библиотекам и документацию;
- Вы не относитесь критически к себе, своим программам и инструментам, которые находятся в вашем распоряжении;
- Вы верите всему, что вам говорят, не думаете самостоятельно и не ищете собственных решений;
- Вы никогда не спросите: «Это правильно?». Не подходите к решению вопроса с научной точки зрения;
- Вы никогда не проверяете свои программы на наличие ошибок;
- Вы никогда не уточните, сделал ли уже кто-то то, что вы планируете сделать;
- Вы используете фреймворки, даже если вам нужна лишь крошечная часть их функциональности;
- Вы поддаетесь влиянию моды и чьей-либо идеологии;
- Вы доверяете чужому коду, не тестируя его;
- Вы без необходимости расходуете ресурсы, такие как CPU и время вычислений;
- Вы не ищете алгоритмы решения проблем;
- Вы игнорируете аппаратное обеспечение своей системы и связанные с этим ограничения;
- Вы не имеете представления об архитектуре компьютера, на котором работаете;
- Вы используете модную идеологию вместо того, чтобы сосредоточиться на решении проблем;
- Для вас форма важнее функции;
- Вы задираете нос при слове «оптимизация»;
- Вы свысока смотрите на ассемблер;
- Вы не умеете пользоваться отладчиком;
- Вы никогда не делали реверс-инжиниринг, и вам это в принципе не интересно;
- Вы используете те или иные вещи просто потому, что они в настоящее время являются стандартом (Cobol в 1990-x, Java в 2000-х), при этом никогда об этом не задумываетесь;
- Вы предпочитаете идти по первому, на ваш взгляд, лучшему пути решения проблемы, потому что думаете, что так быстрее;
- Вы работаете небрежно;
- Вы ведете себя высокомерно с джунами и обслуживающим персоналом вместо того, чтобы помогать им;
- Вы шифруете свои наработки, скрываете источник и не даете работодателю заменить вас на более подходящего для проекта сотрудника или подменить вас, если вы заболели;
- Вы врете о своей работе и не признаете своих слабостей;
- Вы позволяете неквалифицированным людям говорить вам, куда идти и что делать, вместо того, чтобы думать самостоятельно. Как программист и инженер вы несете огромную ответственность и должны отвечать за свои действия;
- Вы не признаете допущенные ошибки, а маскируете и скрываете их;
- Вы не занимаетесь самообразованием, не готовы учиться и пробовать новое. Не проявляете инициативы, никогда не пробуете идти нестандартным путем;
- Вы плохо решаете проблемы с помощью алгоритмов и логики;
- Вы можете скопировать и вставить сторонний код без его понимания, не говоря уже о том, чтобы сначала протестировать его;
- Вы не соблюдаете стандарты написания и организации кода;
- Вам комфортно, когда вы пишете код по-своему и не принимаете критику и предложения;
- Вы не документируете свой код;
- Вы думаете, что ваш код не изменится, например, через год;
- Вы разворачиваете свой код в производственной среде без предварительного тестирования.
Автор считает, что миру нужно как можно больше хороших разработчиков, потому что программирование — основной фактор прогресса и процветания. Мохамед Абоелес не преследует целью обидеть кого-либо своей статьей, а, напротив, считает, что каждый программист — герой, заслуживающий уважения.
Согласны с мнением автора? Какие пункты относятся лично к вам? Пишите об этом в комментариях.
Ранее мы писали о привычках хорошего разработчика.