# ПК・Программирование и кодирование

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

## ◼︎ Уровни квалификации

|   | Значение                                                                                                                                                                     | Пример деятельности                                                                                                                                                                                                                                                                                          |
| - | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| 1 | Специалист способен создавать минимально-интерактивные прототипы, пользуясь средствами программирования/кодирования, включая средства визуального программирования.          | Собрать небольшой прототип с пользовательским вводом, интерфейс которого реагирует на внешние условия: работает по-разному на разных устройствах, содержит развилки в зависимости от пользовательского ввода.                                                                                                |
| 2 | Специалист способен создавать сложные прототипы, отрабатывающие сразу наборы внешних условий, пользуясь средствами программирования/кодирования.                             | Сверстать интерфейс целиком в соответствии с прототипом и/или визуальным стилем, включая реалистичные формы ввода. Реализовать в нём логику переходов и обработки ошибок ввода, подключая библиотеки, используя фреймворки и применяя те или иные методы автоматизации работы (например, CSS-препроцессоры). |
| 3 | Специалист владеет двумя или больше средствами алгоритмического прототипирования и/или разработки. Способен создавать прототипы, подключающиеся к внешним источникам данных. | Спроектировать интерфейс, используя инструменты визуального проектирования в составе IDE, на его основе разработать библиотеку интерфейсных элементов, отвечающую принципам объектно-ориентированного программирования.                                                                                      |

## Работы

* [◼︎ ПК1 Комплексное прототипирование](https://vladgolovach.gitbook.io/ui-ux_competencies/professionalnye-specializacii/programming_and_coding/pc01)
* [◼︎ ПК2 Автоматизация проектной деятельности](https://vladgolovach.gitbook.io/ui-ux_competencies/professionalnye-specializacii/programming_and_coding/pc02)
* [◼︎ ПК3 Оценка реализуемости интерфейсных решений](https://vladgolovach.gitbook.io/ui-ux_competencies/professionalnye-specializacii/programming_and_coding/pc03)
* [◼︎ ПК4 Создание интерфейсных шаблонов, библиотек блоков-элементов, единых со средой разработки](https://vladgolovach.gitbook.io/ui-ux_competencies/professionalnye-specializacii/programming_and_coding/pc04)

## ◼︎ Навыки и умения

* [◼︎ Создавать и использовать макросы](https://vladgolovach.gitbook.io/ui-ux_competencies/znaniya-umeniya-i-navyki/zun/s_macros)
* ◼︎ HTML вёрстка и кодирование
* ◼︎ Заимствовать чужой код и алгоритмы
* ◼︎ Программировать
* ◼︎ Использовать инфраструктурные инструменты
* ◼︎ Хранить данные в базе данных и обращаться к ним из прототипа
* ◼︎ Проектировать и формулировать алгоритмы
* ◼︎ Выявлять и документировать технологические требования

## ◼︎ Знания

* [◼︎ Среды разработки ПО](https://vladgolovach.gitbook.io/ui-ux_competencies/znaniya-umeniya-i-navyki/zun-1/k_ide)
* ◼︎ Фреймворки и стандарты обмена данными
* ◼︎ Объектно-ориентированное программирование
* ◼︎ Актуальное состояние окна проектных решений
* ◼︎ Технологии алгоритмической визуализации данных
