Какой важный навык в программировании обычно недооценивают и не считают важным? На этот вопрос ответили пользователи сайта Quora.
Пол Александер, разработчик ПО
Навык коммуникации, необходимые для анализа требований. И этот компонент относится даже не столько к чисто программированию, сколько, в большей степени, к целой сфере разработки программного обеспечения (хоть в нашей сфере работы границы между данными понятиями могут быть несколько размыты).
Дядя Боб (Роберт Сесил Мартин) как-то уточнил: статистические данные показывают, что в наши дни большинство программистов\разработчиков\инженеров обладают относительно малым опытом исходя из всевозрастающего спроса на данных специалистов. Поэтому, учитывая явный недостаток работников в данной сфере, на сегодняшний день более половины разработчиков обладают опытом работы менее 5 лет.
Учитывая то, что насколько важной и необходимой является сфера разработки, нашу профессию можно сравнить с профессией инженера-электрика в прошлом столетии. Та область, в которой мы сейчас работаем, до сих крайне быстро развивается, поэтому вполне понятным является желание многих занять место в поезде, который привезет их к успеху и процветанию. При этом 50% из упомянутых выше молодых специалистов выдвигают на первый план процесс создания кода, оставляя другие навыки без особого внимания.
И только спустя время приходит столь необходимое понимание, что именно бизнес и торговля управляют разработкой программного обеспечения. А значит, ключевым навыком является умение четко доносить свои идеи и стремление понять других участников.
Неумело построенный процесс коммуникации уже на самых ранних этапах может привести к крайне плачевным последствиям: от простейших недоработок в дизайне и вплоть до дорогостоящих ошибок.
Поэтому, подводя итог, можно сказать, что именно коммуникация является одним из крайне необходимых навыков, которому, однако, уделяется намного меньше внимания, нежели необходимо.
Энтони Мо
Эмпатия, то есть, умение понимать других людей и взаимодействовать с ними.
Предположим, что вы создали самую великолепную программу в мире. Но если вы не можете взаимодействовать с пользователями вашей разработки, то она просто теряет всякий смысл. Если вы не можете общаться с вашими коллегами и вместе с ними вносить необходимые правки, то ваша программа неудобна в эксплуатации.
Работа программиста заключается в том, чтобы улучшить жизнь остальных людей. А это сделать намного проще в том случае, если программист понимает, что ощущают и как думают эти люди.
Элис Истер, специалист по работе с веб-сайтом
Умение создавать нечто большее, чем просто программу. Это может прозвучать как крайне очевидный факт, однако в действительности большинство программистов не обращают на это особого внимания. Обычно у нас так много задач и дел, которые необходимо выполнить, что просто не хватает времени на то, чтобы удостовериться, что программа не просто работает, но и является удобной и приятной в использовании. А ведь это именно то, на что в первую очередь обращает внимание клиент.
Когда я только начинал работать на своем нынешнем месте, я знал, как писать код. И теперь, оглядываясь назад, я могу с уверенностью сказать, что если бы мне тогда дали достаточно времени и необходимых мне ресурсов, то я бы намного лучше справлялся с теми задачами, с которыми мне приходилось сталкиваться. В действительности же, хоть мой код и работал, однако он был неэффективен. Кроме того, я был единственным штатным программистом, а другие сотрудники не обладали достаточными знаниями, поэтому мне постоянно приходилось делать все то, с чем они не могли разобраться сами.
Чтобы как-то решить этот вопрос, я начал проектировать системы, в которых люди могли бы разобраться и продолжить работу самостоятельно. Однако, несмотря на мои старания, все равно возникало множество вопросов и проблем, так как сотрудники не всегда могли полностью и достоверно понять, как пользоваться тем или иным инструментом. Даже с помощью написанных мною инструкций у людей возникали вопросы касательно того, как пользоваться той или иной системой. Мне понадобилось некоторое время, чтобы понять, почему так происходит и почему людям так сложно во всем этом разобраться. В итоге я понял, что при проектировании приложений я не учитывал пользовательский опыт, или UX.
С того момента я начал заново учиться и пытаться понять, как сделать программы более легкими к пониманию и использованию. Это оказалось совсем непростой задачей, и мне пришлось узнать многое о дизайне и удобстве использования. И сейчас, оглядываясь назад, я могу сказать, что именно этот навык позволил мне чувствовать себя намного более уверенно в профессиональной сфере. Мои приложения стали выглядеть лучше, использовать их стало проще, код стал чище. И хоть все это не является обязательным для программиста, однако, на мой взгляд, подобные навыки имеют крайне важное значение.
Мэтью Мур, 40 лет работает разработчиком программного обеспечения
Отвечая на этот вопрос, многие называет навыки коммуникации – устной или письменной. Однако я не согласен: как правило, если человек работает в команде, то эти навыки так или иначе ценятся.
Что действительно обычно упускают из внимания, так это процесс отладки. Отладка – это совсем не то же самое, что и написание программного обеспечения. Она скорее подразумевает поиск в ПО проблемных моментов, которые проявят себя только через какое-то время или которые появляются только тогда, когда какие-то части ПО будут заменены. Поэтому разработчику надо грамотно среагировать на не особо четкую жалобу пользователя и произвести анализ огромного массива данных. При этом, при обнаружении ошибки надо исправить код таким образом, чтобы этим действием не доставить никому дополнительных проблем.
Устранение неисправностей – это то, чем занимаются многие программисты значительную часть своего времени. А так как разработка ПО часто включает в себя работу с существующими кодовыми базами, то там всегда есть что исправлять.
Именно на отладку тратится огромное количество энергии, поэтому разработчики программного обеспечения чаще всего жалуются на процесс поиска и устранения ошибок. И менеджеры это просто ненавидят.
Станьте профи в устранении неполадок, постарайтесь слишком уж не жаловаться на этот процесс, и у вас никогда не будет проблем с работой.
Комментарии
Ахаха! А программисты читают "Вести"? Сомневаюсь. :)
Имхо больше всего недооценивают отсутствие боязни показывать сырой код/продукт коллегам. Здоровая критика, как правило, здорово помогает в эволюции кода и самой разработки в целом. Правда, остаются опасения, что сопрут. Поэтому нельзя недооценивать важность регистрации авторских прав на интерфейс с пользователем.
Как отношусь к переводам из "Кворы"? Как к отчаянным попыткам заработать копейку.
"Какой навык в программировании недооценивают?" – Недооценивают (в упор не видят), что для создания достойного ПО недостаточно одних только навыков программирования ...