Начинающие и опытные разработчики

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

Как вы думаете в чем же разница?

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

Следующим шагом различий может быть время работы с технологией. Но, на мой взгляд, это самое глупое различие и самое несущественное. Так как время проведенное за программированием ни о чем не говорит. Вполне может быть что разработчик с 5-8-10 летним стажем все равно «начинающий». Это как с возрастом, одни становятся умнее, другие просто старше. Можно 5 лет программировать калькуляторы с элементарными действиями и это не будет означать переходы на новые уровни знаний. Программирование не служение в армии, когда каждые N лет дают следующее звание – это не работает в данной сфере. Либо ты берешь новые и все более сложные задачи, читаешь и пробуешь новые технологии, либо ты остаешься на своем уровне. Думаю, что это наименее спорный момент, нельзя стать опытным разработчиком только «отписав» 5-10 и более лет.

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

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

Видимо коллеги дошли до стадии перфекционизма и любая задача выполняется раза в 2-3 дольше чем следует.

 

Помните, что 70% фич в программе не используется. Пишите через TDD, чтобы интерфейсы были компактными. Не пишите тупой повторяющийся код. =)

 

 

Hard’n’Heavy!

2 комментарий на “Начинающие и опытные разработчики

  1. Спасибо за блог, Андрей. Странно, что как-то мало обратной связи, многое «в тишину», но я читаю. Полезно.

    • Спасибо! Очень рад, что блог помогает =)
      Тишина скорее всего потому, что затрагиваются только технические аспекты, а тут особенно не поспоришь. Если бы я вещал о какой-нито пипл-практике, то можно было бы писать тонны комментариев. Но письма пишут, и это хорошо!

Оставить комментарий