закрыть

“Деградация” программиста: от “хорошего” к “плохому”

Я уже встречал эту тему в нескольких источниках и поражался тому, что многие люди проходят один и тот же профессиональный путь и приходят к одним и тем же выводам. В данной статье я коротко рассказываю свою версию этой истории.

“Хороший” программист

Когда я начинал работать программистом, то считал, что я хороший программист и делаю мало багов. Вот как это выглядело:

Открывая утром багтрекер и видя в нем 10 новых багов назначенных на меня, я начинал их сортировать следующим образом:

  1. OutOfMemory Exception. “Это не мой баг. Это виновата Java” — говорил я.
  2. NullPointerException. “Null пришел в параметре из внешней библиотеки, там где его быть не должно. Не мой баг. Я не виноват”
  3. Запрос дает неверные результаты. Повникав немного в проблему, я радостно находил, что “Запрос формируется в Hibernate. В нем баг. Вина не моя” и т.д.

В итоге я находил пару небольших багов, которые точно сделал я, правил их и бежал к руководителю проектов рассказывать, что у меня все в порядке. Понятно, что руководитель проектов был не в восторге от того, что я оказался такой “хороший”. Баги, которые были “не моими”, от этого никуда не исчезали, и что-то делать с ними все-таки приходилось. Оставлять в таком виде систему было нельзя.

“Плохой” программист

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

  1. OutOfMemory Exception. “Java здесь ни при чем. До запуска моей программы здесь не было никакого OOM. Я где-то создаю ненужные объекты или не освобождаю ресурсы или делаю что-то лишнее. Нужно разобраться” — говорил я.
  2. NullPointerException. “Null пришел в параметре из внешней библиотеки. Почему я не поставил проверку? Ведь я уже знаю, что доверять никому нельзя. Тем более внешним библиотекам”.
  3. Запрос дает неверные результаты. “Запрос формируется в Hibernate. В нем баг – это факт. Но я должен был вычитать про него до того как использовать эту функциональность, наверняка где-то было что-нибудь написано про обходные пути. Нужно искать” и т.д.

И приходил к выводу, что все баги в системе – мои! Это я их все породил и мне их исправлять. Их нельзя списать ни на внешние библиотеки, ни на других программистов. Если что-то плохо работает в моей программе, то никто кроме меня не виноват в этом.

Так я осознал, что стал “плохим” программистом. Но стало ли хуже от этого проектам, в которых я работал? Нет. Они стали выигрывать от того, что в них работает “плохой”, недоверчивый, программист, который не любит писать код и прежде чем написать пару строк кода читает много документации.

Более того в ходе этой трансформации я выработал для себя несколько правил “плохого” программиста, которые стали уберегать меня от многих багов.

О них я расскажу в следующей статье.

Хотите тоже заказать у нас разработку ПО?

Краткое описание проекта:
1. Интересующий функционал
2. Ограничения по бюджету
3. Пожелания по срокам
Бесплатно оценить проект