Подавайте личный пример: некоторые навыки программирования могут расширить сферу вашей ответственности и расширить вашу квалификацию менеджера.

С тех пор, как я впервые познакомился с академическими областями дизайна взаимодействия и UX-дизайна, меня подтолкнули к изучению программирования больше, чем это было изначально в моих карьерных планах. Я записался на бакалавриат в области дизайна IT-продуктов. Несколько наивно я думал, что смогу остаться изолированным в более сфокусированных на дизайне частях обучения.

Будучи студентом-дизайнером на факультете информатики, я познакомился с UX и цифровым дизайном в среде, где программирование было самой высокой компетенцией. На факультете компьютерных наук никто не думает, что можно получить работу, а тем более карьеру, не зная хотя бы одного языка программирования.
К моему ужасу, я обнаружил, что не смогу избежать изучения хотя бы некоторого программирования. Позже в моей карьере мои знания программирования станут одним из самых ценных качеств в моем наборе навыков.

Когда вы начинаете заниматься дизайном и пользовательским интерфейсом с большим количеством программистов, ваши ожидания относительно ваших собственных навыков программирования высоки. Намного выше, чем в любой школе или агентстве дизайна. По сути, нет ничего плохого в незнании программирования, трехуровневых архитектур и всех тонкостей новейших JS-фреймворков. Во многих ситуациях отслеживания ваших тестов и знания того, как создать привлекательный пользовательский интерфейс, будет достаточно, чтобы держать вас в курсе процесса UX.

Однако знание программирования для UX'ера очень полезно.

Почему дизайнерам сложно научиться программировать

Во всех художественных начинаниях обычно присутствует перформанс. Мастерство заключается в способности исполнителей создавать что-то в реальном времени. Художник мгновенно видит / чувствует / слышит результат.

Как дизайнер, ваши навыки представляют собой смесь творчества, отслеживания тенденций и отработки инструментов (Adobe Suite, эскиза и т. Д.).
Как художник или музыкант, вы мгновенно видите / ощущаете влияние своего выбора и вы можете настроить вывод в реальном времени. Музыкант может быть более привязан к темпоральности, но изменение размера и окраска ваших элементов дизайна - это довольно немедленные эффекты. Вы чувствуете, как дизайн становится все лучше и лучше.

У вас как у дизайнера есть некоторые ограничения. Больше ограничений, чем у художника. Вы также должны обладать некоторыми техническими знаниями: «Как мне перемещаться по своим инструментам в PS?» или «Как мне воссоздать именно тот эффект, который я искал?»

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

Сравните это с программистом. Программист может быстро работать с клавиатурой, но в наши дни большинство людей работают с клавиатурой очень эффективно. Особой производительности с точки зрения мышечной памяти нет.

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

Значит, программирование - это в основном сохранение большого количества технических знаний?
Вот где это становится странным. Вы можете прочитать много книг о программировании и все равно не сможете написать простое приложение с полным стеком.
Хотя другие науки могут дать вам действительно хорошую основу прямо из учебников, программирование остается творческой деятельностью. Чтение об этом не обязательно заставляет его прижиться и не остается в вашей памяти.

Дизайн

  • творческий
  • Ограничения в пользовательском интерфейсе
  • Немедленный. Вы видите, что делаете.

Программирование

  • творческий
  • Ограничения есть в языке программирования и синтаксисе
  • Немедленное. Вы что-то создаете, а затем тестируете / запускаете.

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

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

В некоторой степени это очень похоже на изучение языка.
Только отличия:

  1. Вы не можете практиковать это, говоря с человеком.
  2. Вы можете практиковать это, только написав для машины.
  3. Неправильная запятая может сделать всю 10-страничную страницу бесполезной.

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

Уровни абстракции в компьютере

По сути, компьютерное программное обеспечение - это слоеный пирог, который преобразует действия пользователей в удобоваримые для процессора биты.
В нем много слоев, и как UX'еру вы должны взаимодействовать только с самым верхним. С архитектурной точки зрения нет разницы между UX'ером, работающим над дизайном, и конечным пользователем, использующим готовый продукт.
Изучение основ внешнего программирования - это первый шаг к управлению функциональностью приложений.
Переход от пользовательского интерфейса, адаптированного к дизайну, к пространству языков программирования, является трудным.

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

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

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

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

Зачем вкладывать все усилия в его изучение?

Без знаний программирования вы все равно можете быть хорошим кандидатом на руководство процессом проектирования. Однако управление фактическим процессом разработки - важная часть любого проекта разработки программного обеспечения.
Многое может измениться с точки зрения функций пользовательского интерфейса от прототипа до реализации. Это подводит меня к моему первому основному пункту:

Знание программирования даст вам гораздо больше контроля над окончательным дизайном

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

Знание программирования дает вам возможность прогнозировать и влиять на то, какие функции будут реализованы. Вы также сможете решить, какие функции должны быть перенесены в более позднюю версию. Более того, если вы опережаете свои знания в области программирования, возможно, вы даже сможете реализовать функции некоторых плагинов в своем собственном прототипе пользовательского интерфейса.
Как дизайнеры, мы склонны обманывать себя, полагая, что все решения принимаем мы. Бьюсь об заклад, большинство разработчиков могут перечислить множество примеров, когда им приходилось принимать дизайнерские решения за дизайнеров.

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

Лучший способ узнать об этом - самостоятельно протестировать и оценить некоторые из этих новых технологий.
Визуальный дизайн - это весело, но разве не здорово контролировать и точное ощущение взаимодействия?

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

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

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

Это может быть только мое мнение, и я ни в коем случае не могу обещать, что это коллективное мнение всей отрасли. Однако с моей точки зрения опытный UX’er находится в идеальном положении, чтобы владеть процессом разработки продукта. От первоначального выяснения потребностей до реализованного продукта.

Как UX'er вы стоите с маляркой, у вас есть отзывы клиентов о ваших тестах, и последняя часть, которая вам нужна, - это управлять фазой реализации.
Я не предлагаю, чтобы UX'еры тоже стали основными разработчиками . Но обладая необходимыми техническими знаниями, они могут хорошо подготовиться к управлению процессом разработки.

Я вижу все больше и больше сообщений о вакансиях, которые объединяют в себе UX-навыки и роли product owner или scrum-мастера в одно целое.
Если у вас уже есть навыки для принятия проектных решений и метод проверки потребностей пользователей, почему бы вам также не управлять внедрением продукта?

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

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

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

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