Найти в Дзене

Что отличает хорошего программиста от посредственного

Оглавление

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

Программист-кодер

Зачастую под хорошим программистом подразумевается человек, который умеет писать хороший код. Осталось разобраться, что такое хороший код :) Лично мне больше всего нравится определение Роберта Мартина в его книге «Чистый код». Он предлагает измерять качество кода в «Чё за нах… в минуту». Соответственно, чем реже это слышится во время чтения кода, тем лучше код. Поэтому, хороший код – это код, написанный для людей, он легко читается, максимально логичен и хорошо структурирован. Такой код легко поддается изменению и повторному использованию. И если человек пишет такой код – он хороший программист.

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

Программист-архитектор

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

Хочешь быть хорошим программистом — умей решать проблемы заказчика
Хочешь быть хорошим программистом — умей решать проблемы заказчика

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

Программист trouble-shooter

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

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

Большое спасибо за прочтение! Пожалуйста, поставьте лайк и подпишитесь на канал, чтобы не пропустить свежие статьи. Этим Вы очень поможете в развитии блога!
Также рекомендую прочитать статью 5 причин, почему тебя не возьмут даже джуном