Программисты часто шутят, что наша работа в основном заключается в копировании и вставке материалов из Stack Overflow.
Если бы это было правдой, мы не были бы одной из самых высокооплачиваемых профессий. И рынок найма не был бы таким безумным, как сейчас.
Чаще всего ответа там нет. Навыки разработчика подвергаются испытанию, когда ему нужно реализовать что-то, о чем никто не писал или что плохо документировано.
Моей первой работой после окончания колледжа была компания, производившая сетевые устройства. Мы напрямую конкурировали с такими компаниями, как Cisco. Одна из тактик продаж заключалась в том, что у нас было программное обеспечение, которое упрощало управление сетями не только с нашим оборудованием, но и со всем оборудованием наших конкурентов.
Эти конкуренты не особо сотрудничали с документацией или поддержкой, помогая нам заставить программное обеспечение работать с их устройствами.
Чтобы заставить наше программное обеспечение работать, нужно было попытаться сшить воедино общедоступную документацию, пробуя всевозможные случайные вещи в попытке найти что-то, что работает. Никто не собирался приходить к нам, чтобы спасти положение с решениями. Пришлось потерпеть и разобраться.
На одной работе моей команде часто приходилось работать с различными сторонними технологиями с минимальной поддержкой. Не то, чтобы мы не платили поддержку, заметьте. Так случается, когда технология, которую вы используете, является нишевой, компании, которые предоставляют эту технологию, как правило, не предоставляют большой поддержки.
Пример: когда мы связались с одним поставщиком, его службе поддержки пришлось ждать, пока независимый консультант поможет им ответить на вопрос. Внутренняя команда компании так плохо разбиралась в собственном продукте, что им пришлось нанять консультанта для помощи.
У нас не было ни времени, ни финансовых ресурсов, чтобы заменить кого-либо из этих поставщиков. Тем не менее, моя команда выстояла и добилась своего.
Также бывает много ситуаций, когда есть материал о том, что вы хотите сделать, но это не то, что вам нужно. SEO вообще — постоянная проблема для разработчиков. Многие поддельные веб-сайты создают поток низкокачественного программного контента, который сообщает вам некоторую базовую информацию, которую вы уже знали, но не помогает ни в малейшей степени.
Однако нам не платят за то, чтобы мы сдались. Задача не в том, чтобы копировать и вставлять решения, которые мы находим в Интернете. Работа состоит в том, чтобы создавать программное обеспечение, которое полезно для кого-то.
Эти ситуации, когда нет решений, могут быть деморализующими. Отчасти именно поэтому оценки в разработке программного обеспечения заведомо неточны. Если вам нужно реализовать что-то, на что ни у кого нет ответа, как вы можете вычислить, сколько времени это займет?
Что еще более важно, потратив дни или недели на решение проблемы, вы устанете от нее. Вы просто хотите, чтобы это было сделано и покончено с этим. Или хотя бы для того, чтобы кто-то забрал у вас кучу какашек.
Однако многие разработчики находят способ заставить что-то работать. Решение может быть не очень красивым. У него может быть не лучший UX. Это может быть неэффективно. У него могут быть всевозможные другие компромиссы. Но это будет решение, представляющее ценность для пользователей. Получение этих решений редко бывает легким. Часто требуется огромное количество настойчивости и творчества. У великих разработчиков есть упорство, необходимое для выполнения работы.
Первоначально опубликовано на https://blog.professorbeekums.com.