Лекция Тесты
Сразу хочу сказать, что здесь никакой воды про профессии для создания и обслуживания веб сайтов, и только нужная информация. Для того чтобы лучше понимать что такое профессии для создания и обслуживания веб сайтов, верстальщик, тестировщик, бекэнд, фронтэнд, фуллстек, программист, devops , настоятельно рекомендую прочитать все из категории Основы интернет и веб технологий. Кликните на вариант (или варианты ответов), если он правильный - то будет подсвечен зеленым цветом и вам будет зачислено пару монеток, а если неверный - то красным и будет снята монетка. Удачи в прохождении онлайн теста!
Что нужно знать и уметь современному программист у? чем профессиональный программист отличает от дилетанта? Узнать ответы на эти и многие другие вопросы можно прочитав эту статью. И так, начнем!

Информационная архитектура (англ. Information architecture, часто сокращается до «ИА») — сочетание схем организации, предметизации и навигации, реализованных в информационной системе.
Информационная архитектура занимается принципами систематизации информации и навигации по ней с целью помочь людям более успешно находить и обрабатывать нужные им данные
Louis Rosenfeld
Примеры
Веб-разработка — процесс создания веб-сайта или веб-приложения. Основными этапами процесса являются веб-дизайн, верстка страниц, программирование на стороне клиента и сервера, а также поддержка веб-сервера.
Веб-дизайн (от англ. Web design) — отрасль веб-разработки и разновидность дизайна, в задачи которой входит проектирование пользовательских веб-интерфейсовдля сайтов или веб-приложений. Веб-дизайнеры проектируют логическую структуру веб-страниц, продумывают наиболее удобные решения подачи информации, а также занимаются художественным оформлением веб-проекта. В результате пересечения двух отраслей человеческой деятельности грамотный веб-дизайнер должен быть знаком с последними веб-технологиями и обладать соответствующими художественными качествами. Большую часть специалистов, работающих в области дизайна, обычно концентрирует в себе такое творческое образование как студия дизайна.
Веб-дизайн — вид графического дизайна, направленный на разработку и оформление объектов информационной среды интернета, призванный обеспечить им высокие потребительские свойства и эстетические качества. Подобная трактовка отделяет веб-дизайн от веб-программирования, подчеркивает специфику предметной деятельности веб-дизайнера, позиционирует веб-дизайн как вид графического дизайна .
В настоящее время услуги веб-дизайна предоставляют как специальные компании, так и частные лица (веб-дизайнеры или веб-мастера, являющиеся фрилансерами).
Веб-дизайнер — сравнительно молодая профессия, и профессиональное образование в области веб-дизайна в России пока не распространено. В связи с увеличением спроса на представительство в Сети растет и спрос на дизайн сайтов, увеличивается количество веб-дизайнеров.
Веб-дизайн является одной из основных номинаций в конкурсной программе молодежных Дельфийских игр России.
В настоящее время под термином веб-дизайн понимают именно проектирование структуры веб-ресурса, обеспечение удобства пользования ресурсом для пользователей. Немаловажной частью проектирования ресурса в последнее время стало приведение ресурса в соответствие стандартам W3C, что обеспечивает доступность содержания для людей с ограниченными физическими возможностями и пользователей портативных устройств (см. юзабилити — «удобство использования»), а также кроссплатформенность (в данном случае — т. н. кросс-браузерность) верстки ресурса. Также непосредственно с дизайном сайтов смежнымаркетинг в Интернете (интернет-маркетинг), то есть, продвижение и реклама созданного ресурса, поисковая оптимизация.
Составлением технического задания для специалистов занимается менеджер проекта. Работа с заказчиком начинается с заполнения брифа, в котором заказчик излагает свои пожелания относительно визуального представления и структуры сайта, указывает на ошибки в старой версии сайта, приводит примеры сайтов конкурентов. Исходя из брифа, менеджер составляет техническое задание, учитывая возможности программных и дизайнерских средств. Этап заканчивается после утверждения технического задания заказчиком. Важно сразу отметить, что этапы проектирования веб-сайтов зависят от многих факторов, таких как объем сайта, функциональность, задачи, которые должен выполнять будущий ресурс и многое другое. Однако, есть несколько этапов, которые в обязательном порядке присутствуют в планировании любого проекта.
Начинается работа с создания дизайна, обычно в графическом редакторе. Дизайнер создает один или несколько вариантов дизайна, в соответствии с техническим заданием. При этом отдельно создается дизайн главной страницы, и дизайны типовых страниц (например: статьи, новости, каталог продукции). Собственно «дизайн страницы» представляет собой графический файл, слоеный рисунок, состоящий из наиболее мелких картинок-слоев элементов общего рисунка.
При этом дизайнер должен учитывать ограничения стандартов html (не создавать дизайн, который затем не сможет быть реализован стандартными средствами html). Исключение составляет Flash-дизайн.
Количество эскизов и порядок их предоставления оговаривается с проект-менеджером. Также менеджер проекта осуществляет контроль сроков. В больших веб-студиях в процессе участвует арт-директор, который контролирует качество графики. Этап также заканчивается утверждением эскиза заказчиком.
Утвержденный дизайн передается html- верстальщик у, который «нарезает» графическую картинку на отдельные рисунки, из которых впоследствии складывает html-страницу. В результате создается код, который можно просматривать с помощью браузера. А типовые страницы впоследствии будут использоваться как шаблоны.
Далее готовые HTML-файлы передают программисту. Программирование сайта может осуществляться как «с нуля», так и на основе CMS — системы управления сайтом. Веб-разработчики часто называют CMS «движком».
В случае с CMS надо сказать, что сама «CMS» в некотором смысле это готовый сайт, состоящий из заменяемых частей. «Программист» — в данном случае правильно будет назвать его просто специалистом по CMS — должен заменить стандартный шаблон, поставлявшийся с CMS, на оригинальный шаблон. Этот оригинальный шаблон он и должен создать на основе исходного «веб-дизайна».
При программировании сайта специалисту назначаются контрольные точки сроков.
Веб-дизайн сайта должен адекватно выглядеть в различных браузерах, особенно в браузерах Internet Explorer, Firefox, Safari, Chrome и Opera.
Internet Explorer (версии 6) по-своему трактовал HTML-стандарты (отголоски старой борьбы за лидерство с Netscape). Этот морально устаревший браузер создавал много проблем для веб-дизайнеров. Многие разработчики даже предлагали отказаться от верстки под IE 6, однако наличие этого браузера в стандартной поставке Windows XP, а значит и его присутствие на многих пользовательских компьютерах, вынуждало веб-дизайнеров тестировать свои проекты в нем. По состоянию на лето 2012 года IE 6 используется на 6 % пользователей, в основном за счет Китая, где его используют 21 % пользователей .
Процесс тестирования может включать в себя самые разнообразные проверки: вид страницы с увеличенными шрифтами, при разных размерах окна браузера, при отсутствии флэш-плеера и многие другие. Обнаруженные ошибки отправляются на исправление до тех пор, пока не будут устранены.
Сроки контролирует менеджер проекта. Также на этом этапе привлекают к работе дизайнера, чтобы он провел авторский надзор.
Файлы сайта размещают на сервере провайдера и производят нужные настройки. На этом этапе сайт пока закрыт для посетителей.
Сайт наполняют контентом — текстами, изображениями, файлами для скачивания и т. д. Иногда тексты составляются специалистом студии, иногда контентом занимается ответственное лицо со стороны заказчика. Это решается на этапе составления технического задания. В случае если контент составляется представителем студии, то это происходит и утверждается параллельно с другими этапами проекта.
Связана с некоторыми изменениями самого сайта. Начинается она с определения семантического ядра. Здесь определяются такие ключевые слова, которые привлекут наиболее заинтересованных посетителей, по которым выиграть конкуренцию проще. Затем эти слова вносятся на сайт. Тексты, ссылки, другие теги адаптируются так, чтобы поисковые системы могли их успешно находить по ключевым словам.
Сводится, как правило, к построению структуры входящих ссылок. Это собственно и есть раскрутка. К разработке сайта внешняя SEO-оптимизация не имеет отношения. Поскольку SEO-оптимизация это разновидность шаманизма — она как магия, классифицируется на «белую» и «черную» — такую, после которой сайт за две недели попадает в топ, а потом в бан. Настоящая белая SEO-оптимизация это трудоемкий и долгий процесс, стоимость которого может в несколько раз превышать расходы на создание сайта.
Заказчик или его доверенное лицо просматривают готовый проект и в случае, если все устраивает, то подписывают документы о сдаче проекта.
Так же на этом этапе производится обучение представителя заказчика навыкам работы в администраторской зоне сайта.
Уникальный дизайн стоит дороже, но и предполагает отрисовку с нуля, полностью уникальную разработку под конкретный заказ. В зависимости от профессионализма и/или политики компании веб-дизайнер либо разрабатывает идею и концепцию дизайна полностью самостоятельно, либо получает ряд требований (цвет, стиль и т. п.), ожиданий и идей от заказчика или креативного директора (арт-директора) и старается держаться этого направления при разработке макета. Большинство заказчиков ошибочно отождествляют веб-дизайнера и веб-мастера, поручая ему и публикацию сайта.
Иногда дизайнер может предложить дизайн-решение на основе шаблонов (своих или даже чужих), это ускоряет работу и обойдется заказчику дешевле. Некоторые дизайнеры даже специализируются на изготовлении дизайн-макетов для продажи в качестве готовых шаблонов, которые затем могут быть куплены и использоваться менее опытными дизайнерами или веб-мастерами для изготовления типовых сайтов (по сути, без уникального дизайна). Иной раз разработкой веб-дизайна называют небольшую перекомпоновку и адаптацию такого шаблона под конкретный заказ.
Конечным продуктом работы веб-дизайнера является дизайн-макет: картинка, представляющая предполагаемый будущий внешний вид страниц сайта, размером приблизительно 960х640 px (пикселей) — размер, соответствующий среднему стандарту, связанный с необходимостью дальнейшей привязки к разным разрешениямэкрана монитора. Картинка эта является многослойной, где, на усмотрение дизайнера, почти каждая деталь — отдельный слой, приложенный к другим слоям-картинкам, за счет чего может легко выполняться доработка, замена, перекомпоновка и другие задачи. В зависимости от идеи и целей макет может включать фотографии, сложные коллажи, иллюстрации, текстовые слои, уникальные иконки. Для главной страницы и внутренних иногда рисуются отдельные макеты с дополнениями или изменениями в соответствии с тематикой страницы.
Изображение первоначально может быть векторным или растровым, выполненным в Adobe Illustrator, Adobe Photoshop, GIMP или другом визуальном редакторе(например, Scribus или Inkscape), но для верстальщика изображение, как правило, переводится в растровый формат.
Для демонстрации клиенту изображение обычно переводится в простой однослойный и привычный формат изображений.

Удобство использования, Юзабилити (англ. usability — дословно «возможность использования», «способность быть использованным», «полезность») — понятие в микроэргономике, эргономическая характеристика степени удобности предмета для применения пользователями при достижении определенных целей в некотором контексте . Термин имеет связь с понятием «эргономичность», но в отличие от последнего меньше ассоциируется с технической эстетикой, с внешним видом и более привязан к утилитарности используемого объекта .
Юзабилити — это научно-прикладная дисциплина, занимающаяся повышением эффективности, продуктивности и удобства пользования инструментами деятельности. От эргономики юзабилити отличает заинтересованность в эффективности работы пользователя (потребителя), а не человеко-машинной системы в целом .
Международный стандарт ISO 9241-11 определяет юзабилити как
степень, с которой продукт может быть использован определенными пользователями при определенном контексте использования для достижения определенных целей с должной эффективностью, продуктивностью и удовлетворенностью
При этом относительная важность всех трех аспектов определяется этим самым контекстом.
Как и многие иностранные термины, которые в новейшее время вошли в обиход на «постсоветском пространстве», слово «юзабилити» нередко используется без учета его значения в исходном английском и вне связи с международными стандартами инженерной терминологии. Как правило это происходит из-за того, что игнорируется ключевой для контекста момент «определенности». Поэтому часто происходит так, что «интуитивная понятность» для разработчиков не является таковой для конечных пользователей
При разработке пользовательских интерфейсов словом юзабилити обозначают общую концепцию их удобства при использовании программного обеспечения, логичность и простоту в расположении элементов управления. Однако при этом нередко происходит подмена понятий — утилитарных эстетическими. Тогда четко не определенная в целях и не обоснованная в деталях полезность конкретного решения для пользователя, считается сама собой разумеющейся, вытекающей из оригинальности внешнего вида.
Термин «юзабилити» можно рассматривать как синоним слова «эргономичность» с той разницей, что последняя определяет минимальность конкретных физических усилий при пользовании вещью, а первая — конечную суммарную степень удобства, меру интеллектуального усилия, необходимого для получения полезных качеств этой вещи, и скорость достижения положительного результата при управлении ею. Поэтому применительно к таким продуктам, какбытовая электроника или средства связи, чаще используют понятие «эргономичность» относительно формы, компоновки узлов и веса, к примеру, а «юзабилити» — применительно к понятности элементов управления и режимов работы, к количеству и необходимости функций.
В более широком значении термин «юзабельность» употребляется как удобство пользования (например, для механических приспособлений и инструментов (таких как дверная ручка или молоток) эргономичность формы будет повышать юзабельность вещи (то есть «удобство применения», «дружественность и простоту при пользовании», «практичность» и вообще «применимость»).
Юзабилити имеет серьезное значение для показателей конверсии в электронной коммерции. Однако юзабилити означает не только улучшенное визуальное руководство или улучшенную иерархию сайта. Это также означает и больший контакт с потенциальным покупателем посредством профессионально сделанного серьезного дизайна, преподнесения верной информации тогда, когда она нужна.
Верстка веб-страниц — процесс формирования (верстка) веб-страниц в текстовом либо WYSIWYG-редакторе, следующий этап после веб-дизайна; а также результат этого процесса, то есть собственно веб-страницы.

Табличная верстка
Табличная верстка ранее была основным методом верстки, но и сейчас широко применяются в самых разных случаях. С помощью таблиц делают рамки, задают модульные сетки, создают цветной фон, выравнивают элементы и т. д.
Слои использовались в браузере Netscape (тег layer ), и представляли собой структурные элементы, которые можно размещать на веб-странице путем наложения их друг на друга с точностью до пикселя . Скрипты при этом позволяли изменять параметры слоя динамически.
Блочная верстка
Верстка при помощи блоков (тег div ) и описывающих их таблиц стилей (CSS). Реализует концепцию семантичной верстки.
Фреймовая верстка
До недавнего времени в качестве основных инструментов верстки выступали таблицы и фреймы (фреймы, ввиду их некоторых проблем , уходят в прошлое: например, стандарт HTML 5 более не включает в себя поддержку фреймов ). В настоящее время блочная используется гораздо шире. Однако табличная верстка в исполнении гораздо проще блочной верстки.
По принципам использования средств разметки HTML различают логическую разметку и презентационную (физическую).
Например, курсивный текст можно получить как с помощью тега , так и с помощью тега .
В первом случае курсив задается явным образом, а во втором на текст производится логическое ударение, которое обычно отображается курсивом.
Иными словами, при первом подходе ориентируются на внешний вид, а во втором — на логическое предназначение.
Преимуществом второго подхода является независимость верстки от используемого типа устройств и дизайна веб-страниц.
Если придерживаться логической разметки, то можно использовать один и тот же вариант верстки для экрана, печати и мобильных устройств, регулируя внешний вид с помощью отдельных файлов стилей.
Все сайты, по макету верстки, можно разделить на три принципиальные группы:
Фиксированный тип макета — дизайн (табличный либо блочный), в котором ширина столбца/рисунка заданы в пикселях, то есть оговорены точно.
Резиновый тип макета — дизайн, в котором ширина столбца/рисунка задана в процентах от текущего разрешения экрана.
Адаптивная верстка/тип макета — дизайн, который подстраивается (адаптируется) под размер экрана, в том числе может происходить перестройка блоков с одного места на другое, или их замена блоками отображаемыми только при определенном разрешении. Адаптивная верстка пришла на смену идеи создания специальных мобильных версий сайта, "живущих" на отдельных поддоменах (например, m.wikipedia.org).
Фиксированный дизайн
Преимущества:
Недостатки:
Резиновый дизайн
Преимущества:
Недостатки:
Адаптивная верстка
Преимущества:
Недостатки:
То есть у каждого вида дизайна есть свои минусы и плюсы и выбор зависит от решаемой задачи. При этом может использоваться и смешанный дизайн — некоторые столбцы табличного дизайна задать в процентах а другие в пикселях.
Браузеры преднамеренно расценивают таблицу как один объект, из-за чего содержимое таблицы не отображается до тех пор, пока оно целиком не будет загружено на локальный компьютер. При использовании таблицы в качестве каркаса для размещения элементов веб-страницы, ее исходное преимущество обращается в недостаток, поскольку приводит к задержке вывода содержимого. Следует учитывать также и растущий объем веб-страниц при активном использовании таблиц, особенно в случае их вложенности друг в друга. Все это приводит к тому, что табличная верстка вызывает ненужные задержки вывода информации в браузере.
Проблема возникает при множественной вложенности таблиц, что характерно для достижения определенных эффектов на веб-странице. Рост количества таблиц повышает шанс возникновения ошибок при верстке, увеличивает размер документов и снижает скорость загрузки файлов. Применение визуальных редакторов, вродеAdobe Dreamweaver или Microsoft FrontPage, для создания и правки документов облегчает работу с таблицами, но из-за обилия их параметров и в этом случае разработчики не застрахованы от появления ошибок и лишней работы, связанной с индивидуальным редактированием каждой таблицы.
Кроме того, использование таблиц для целей оформления не соответствует концепции семантичной верстки, подразумевающей использование элементов (тегов) в соответствии с их смыслом, семантическим значением. Элемент и сопутствующие (,
, и др.) предназначены для разметки табличной информации (т. е. такой, в которой имеется смысловая связь между элементами, принадлежащими одному столбцу или одной строке). W3C, как разработчик языка HTML, призывает использовать HTML для логической разметки информации, а оформление (в т. ч. позиционирование различных блоков) описывать отдельно от (X)HTML-разметки (с помощью CSS, например).
«Распорки»
При использовании таблиц широко известным приемом стало применение распорок — прозрачных изображений высотой в один пиксель. Само изображение не отображается на веб-странице, но его можно масштабировать в любых пределах. Получается невидимая палочка определенной ширины или высоты, которая не дает ячейкам таблицы сблизиться меньше, чем на заданное расстояние. Распорки особенно были актуальны для браузера Netscape, который не показывал фон ячейки, если в ней ничего не размещалось. Чтобы избавиться от указанной особенности, и помещали в ячейку маленький прозрачный рисунок в формате GIF.
Подобные техники не только усложняют разработку универсальных веб-страниц, но и ведут к снижению скорости загрузки документа. Браузеру в этом случае приходится загружать элементы, которые не видны пользователю и, по сути, ему не нужны, но они входят в общий трафик сайта.
Слои представляют собой структурные элементы, которые можно размещать на веб-странице путем наложения их друг на друга с точностью до пикселя. В HTML 4 иXHTML слой — это элемент веб-страницы, созданный с помощью тега div , к которому применяется стилевое оформление.
При этом придерживаются следующих принципов.
Слои можно размещать в окне браузера с точностью до пикселя. Положение слоя задается двумя координатами относительно любого угла окна браузера, родительского элемента или документа.
Скрипты позволяют изменять параметры слоя динамически. Это дает возможность создавать на странице разные эффекты, такие как выпадающие меню, игры, разворачивающиеся баннеры, плавающие окна и прочее.
Свойства слоя удобно задавать и настраивать через стили. Возможности CSS расширяют спектр оформительских изысков. Использование стилевых таблиц позволяет несложными методами получить компактный и эффективный код.
Более современные версии браузеров стали строже придерживаться стандартов и содержать средства по работе со слоями.
Слой можно перемещать, прятать и показывать без перезагрузки всей страницы. С помощью всего нескольких инструкций можно создавать разные эффекты, вроде выпадающих меню, всплывающих подсказок, движущихся элементов и другое. Добавление подобных трюков хотя и увеличивает объем кода, но не требует повторной загрузки и обновления документа и происходит без лишних задержек со стороны браузера. Кроме того, выразительность и привлекательность сайта во многом повышается благодаря использованию подобных приемов со слоями.
Слои можно накладывать друг на друга, что упрощает размещение элементов на веб-странице и предоставляет больше возможностей при верстке.
Слои по сравнению с таблицами отображаются быстрее. Более высокая скорость достигается за счет компактного кода и того, что отображение содержимого слоя происходит по мере его загрузки. Правда это может привести к «скачкам» элементов страницы по мере их подгрузки.
Не следует считать, что использование слоев это панацея от всех бед. К сожалению, стандарты работы со слоями еще не до конца устоялись и браузеры по-разному реализуют определенные возможности. Из-за этого основная сложность верстки слоями — создать универсальный код, который бы одинаково и без ошибок работал в разных браузерах («кросс-браузерность») и при разных разрешениях экрана. Приходится вникать в тонкости поведения браузеров при использовании различных элементов стилей.
Нередко веб-специалисты совмещают в себе сразу несколько специальностей.
Также веб разрабочиков услов разделяют на бекэнд фронтэнд и фулстек.
- Frontend – это абсолютно все, что пользователь наблюдает на экране своего ПК. Сюда входят и дизайн ресурса, и формы, и кнопки, и личный кабинет пользователя на сайте, и т.д. Версткой, а также программированием данных элементов и занимаются frontend-программисты.
- Backend – так называется все, что, так или иначе, связано с сервером, с вычислениями на сервере, а также с хранением информации на нем. К примеру, если вы в поисковике ищете информацию, результаты выдачи формируются именно сервером. Все это задачи backend-разработчиков.
Во frontend и backend есть собственные технологии и собственные языки программирования, и для работы с ними необходимо владеть этими языками. И если программист прекрасно разбирается в обоих направлениях, если он легко выполняет задачи, связанные и с frontend, и с backend – тогда этого программиста и называют фулстек-разработчиком.
Так что fullstack программист – специалист-универсал, способный и сверстать дизайн сайта, и настраивать функционирование форм и кнопок, и писать серверную часть, плюс и собственно сервер настроить сможет. Такой программист в одиночку создает веб-сервис, заменяя собой 3-4 более узких специалистов.
Само собой, фулстек разработчику было бы достаточно тяжело владеть всеми необходимыми технологиями столь же глубоко, сколь ими владеют узкие специалисты. Однако сегодня можно найти довольно много проектов, которым необходимы разработчики-универсалы, обладающие хорошим знанием большого количества технологий. Так что профессия фулл стек программиста сегодня крайне востребована.
Верстальщики бывают двух типов — одни работают в web-индустрии и создают сайты и web-контент, другие работают в рекламной и типографской области и готовят полиграфическую продукцию к печати.
Версткой веб-страниц занимаются верстальщики. В общем случае в задачу верстальщика входят:
Верстальщик использует следующее ПО:
А также иногда прибегает к помощи:
Использование WYSIWYG редакторов и программ автоматической верстки часто осуждается из-за низкого качества получаемого кода. Тем не менее, зачастую для пользователей их использование удобнее ручного кодирования, а также не требуют глубокого знания HTML, и поэтому широко используются.
Должностные обязанности html-верстальщика включают в себя:
Валидность HTML-верстки — это ее соответствие стандартам организации The World Wide Web Consortium (W3C). Отсутствие ошибок в верстке документа — один из основных показателей качества верстки. Автоматическая проверка верстки на ошибки может быть проведена как с помощью онлайн сервиса W3C, так и различными программами «валидаторами». Разные версии спецификации HTML предполагают различный синтаксис, поэтому тест верстки на валидность должен обязательно учитывать ее Document Type.
Программист — это специалист, занимающийся написанием и корректировкой программ для компьютеров (любых вычислительных устройств), то есть программированием.
Программирование как род занятий может являться основной профессиональной деятельностью специалиста, либо использоваться в качестве вспомогательной деятельности для решения иных профессиональных задач, либо же использоваться в непрофессиональной сфере (как инструмент решения задач или ради получения удовольствия от процесса программирования). Термин «программист» не обязательно подразумевает профессиональное образование или профессиональную деятельность.
Как основная профессиональная деятельность программирование используется в технической и в научной областях. В технике выделяются средняя техническая квалификация техник-программист (ранее «программист-лаборант») и высшая техническая квалификация инженер-программист. Предметом деятельности специалистов с соответствующей квалификацией (техников и инженеров) является проектирование, разработка и производство программного обеспечения, как промышленной продукции, удовлетворяющей заданным функциональным, конструктивным и технологическим требованиям (результатом деятельности является программное обеспечение). В России подготовка инженеров-программистов ведется по профилю подготовки «Программное обеспечение вычислительной техники и автоматизированных систем» направления «Информатика и вычислительная техника» .
Существует подготовка математиков-программистов по направлению «Математическое обеспечение и администрирование информационных систем» .
В конце 2000-х в России появилось новое направление подготовки программистов «Программная инженерия» . Областью профессиональной деятельности выпускников по этому направлению является индустриальное производство программного обеспечения. Данное направление подготовки отличается от подготовки инженеров-программистов по профилю «Программное обеспечение вычислительной техники и автоматизированных систем» тем, что общеинженерные дисциплины заменены дисциплинами из новой области знания инженерия программного обеспечения. Об этом говорит сайт https://intellect.icu . Объектами профессиональной деятельности инженеров по производству программного обеспечения являются не программы и программные комплексы, а методы и инструменты разработки программного продукта, а также процессы жизненного цикла программного продукта.
Предметом деятельности программистов в науке является решение задач с применением методов прикладной математики и реализацией на ЭВМ (результатом деятельности является полученное при помощи программы решение задачи).
В России подготовка специалистов в этой области ведется по следующим направлениям:
В Украине следующие кода специальностей в ВУЗах
Направление 12 Информационные технологии
специальность 12.121 Инженерия программного обеспечения
специальность 12.122 Компьютерные науки и информационные технологии
специальность 12.123 Компьютерная инженерия
специальность 12.124 Системный анализ
специальность 12.125 Кибербезопасность
Как вспомогательная деятельность программирование в настоящее время используется в широчайшем круге профессий.
В связи со значительным распространением в современном обществе вычислительной техники и, соответственно, программирования как рода деятельности в настоящее время потребность в профессиональных программистах в развитых странах и странах третьего мира значительно превосходит возможности высшего образования по подготовке на соответствующих специальностях, при этом предъявляемые квалификационные требования в бизнесе в большинстве случаев значительно у́же, чем подготовка по специальности в вузе (см. напр. ). В связи с этим, очень широко распространено самообразование программистов и профессиональная деятельность в области программирования без получения формального образования по соответствующей специальности, а специалистам, получившим программистские специальности, необходимо постоянно совершенствовать свои знания и умения и оперативно осваивать новые технологии.
Как указано выше, с точки зрения корректной терминологии человек может иметь (например) род занятий «программист», квалификацию «инженер-программист»,специальность «программное обеспечение вычислительной техники и автоматизированных систем» и должность «ведущий специалист». В разговорной речи, однако, слово «программист» нередко употребляется применительно ко всем этим понятиям.
По ошибке программистами порой называют системных администраторов и других специалистов ИТ.
В настоящее время, как и ранее широко применяется классификация программистов на прикладных и системных. Прикладным называется программист, программы которого предназначены для решения прикладной задачи, удовлетворяющей потребности конечного пользователя и, по замыслу классификации, лежащей вне компьютерной сферы. Системным называется программист, программы которого предназначены для обеспечения работы компьютера и используются другими компьютерными специалистами.
Возникновение программирования как рода занятий и, особенно, как профессиональной деятельности трудно датировать однозначно.
Часто первым программируемым устройством принято считать жаккардовый ткацкий станок, построенный в 1804 году Жозефом Мари Жаккаром, который произвел революцию в ткацкой промышленности, предоставив возможность программировать узоры на тканях при помощи перфокарт.
Первое программируемое вычислительное устройство, Аналитическую машину, разработал Чарльз Бэббидж (но не смог ее построить). 19 июля 1843 года графиняАда Августа Лавлейс, дочка великого английского поэта Джорджа Байрона, как принято считать, написала первую в истории человечества программу для Аналитической машины. Эта программа решала уравнение Бернулли, выражающее закон сохранения энергии движущейся жидкости.
В своей первой и единственной научной работе Ада Лавлейс рассмотрела большое число вопросов. Ряд высказанных ею общих положений (принцип экономии рабочих ячеек памяти, связь рекуррентных формул с циклическими процессами вычислений) сохранили свое принципиальное значение и для современного программирования. В материалах Бэббиджа и комментариях Лавлейс намечены такие понятия, как подпрограмма и библиотека подпрограмм, модификация команд ииндексный регистр, которые стали употребляться только в 1950-х годах.
Однако ни одна из программ, написанных Адой Лавлейс, никогда так и не была запущена.
Аду Августу, графиню Лавлейс, принято считать почетным первым программистом (хотя, конечно, написание одной программы по современным меркам не может считаться родом занятий или профессиональной деятельностью). История сохранила ее имя в названии универсального языка программирования «Ада».
Первый работающий программируемый компьютер (1941 год), первые программы для него, а также (с определенными оговорками) первый язык программирования высокого уровня Планкалкюль создал немецкий инженер Конрад Цузе.
Имена людей, впервые начавших профессионально выполнять работу собственно по программированию (в отрыве от наладки аппаратуры компьютера), история не сохранила, так как поначалу программирование рассматривалось как второстепенная наладочная операция.
В 2009 году в России официально утвержден день программиста, который ежегодно празднуется 13 сентября (в високосный год — 12 сентября) — то есть празднование Дня Программиста приходится на 256 день года. Это число не случайно: оно получается от возведения двойки в восьмую степень. Именно такое количество чисел можно выразить с помощью одного восьмиразрядного байта.
Тестировщик — специалист, занимающийся тестированием программного обеспечения (ПО). В его обязанность входит поиск вероятных ошибок и сбоев в функционировании программы. Тестировщик моделирует различные ситуации, которые могут возникнуть в процессе использования программы, чтобы разработчики смогли исправить обнаруженные ошибки.
Тестировщик также создает и использует разнообразные входные данные, предусмотренные и не предусмотренные авторами программы. Его деятельность обычно подразумевает как минимум три модели поведения:
Схематически отношения между QA, QC и тестированием можно представить так:

QA (англ. Quality Assurance) — обеспечение качества продукта — это, собственно, весь комплекс процессов, обеспечивающих качество, наиболее обширное понятие. QA интегрировано во все этапы разработки: от описания проекта до тестирования, релиза и даже пост-релизного обслуживания.
Специалисты QA создают и реализуют различные тактики для повышения качества на всех стадиях производства: подготовка и установка стандартов, анализ качества, выбор инструментов, предотвращение ошибок и постоянное усовершенствование процесса.
QC (англ. Quality Control) — контроль качества продукта — это часть комплекса QA, которая отвечает за анализ результатов тестирования, поиск ошибок и их устранение. QC ориентирован на проверку конкретного продукта, в него входят различные процессы, такие как анализ кода, технические обзоры, анализ дизайна, тестирование и прочее.
Тестирование — это уже непосредственно процесс проверки результатов работы на соответствие установленным требованиям. А тестировщик — это специалист, который занимается такой проверкой. Он тестирует компоненты продукта или весь продукт целиком на предмет ошибок или неточностей разработки. Тестирование — один из ключевых процессов в системе обеспечения качества.
Специализацию тестировщиков можно разделить по направлениям: тестирование безопасности, производительности, юзабилити; а также по методам написания тестов: ручное и автоматизированное тестирование.
В случае создания программ с различными уровнями защиты и прав доступа для пользователя количество возможных моделей поведения («начальник», «подчиненный») существенно увеличивается.
Альфа-тестер — пользователь программы, находящейся на стадии разработки («Альфа-версия», как правило не полнофункциональная), взявший на себя в какой-либо форме обязательства по полному или частичному тестированию программы, а также, возможно, об особых условиях ее копирования и использования.
Бета-тестер — пользователь программы, взявший на себя обязательства по тестированию программы («Бета-версия»), в том числе опубликованных официально версий и так называемых «релиз-кандидатов» программы.
В разных случаях отношения альфа- и бета-тестеров с разработчиками могут оформляться или не оформляться. Ряд пользователей добровольно участвует в бета-тестировании программного обеспечения.
Некоторые утверждают , что специфика профессии заключается в видимом однообразии и монотонности трудового процесса; по мнению других , тестирование является творческой исследовательской работой (в противовес стандартизированной разработке). Одной из особенностей профессии является возможность удаленной работы, причем расстояние часто не имеет значения (тестировщик может находиться в другом городе или стране по отношению к разработчику и заказчику). Это позволяет рассматривать данную профессию как одну из возможных ступеней для получения опыта и накопления знаний в удаленной разработке ПО с целью дальнейшей работы программистом.
Необходимыми качествами являются логическое мышление, хорошая память, умение учиться и адаптироваться к существующим задачам, быстро переключаться с одного типа задач на другой. Не менее важны терпение, усидчивость и умение работать в команде (при XP-тестировании).
Кроме того, тестировщик выступает одновременно и как пользователь, и как эксперт, а потому должен иметь определенный склад мышления: уметь воспроизводить поведение пользователя продукта и анализировать поведение системы, входящие параметры и полученные результаты с точки зрения инженера.
Основными требованиями к соискателю, как правило, являются:
При этом требования к уровню необходимых навыков и специализации варьируются в зависимости от тестируемого программного обеспечения.
Не следует путать с CEO.
Поиско́вая оптимиза́ция (англ. search engine optimization, SEO) — комплекс мер для поднятия позиций сайта в результатах выдачи поисковых систем по определенным запросам пользователей с целью продвижения сайта. Обычно чем выше позиция сайта в результатах поиска, тем больше заинтересованных посетителей переходит на него с поисковых систем. При анализе эффективности поисковой оптимизации оценивается стоимость целевого посетителя с учетом времени вывода сайта на указанные позиции и конверсии сайта.
По оценке РАЭК рынок поисковой оптимизации в 2012 году равнялся 10,24 млрд. руб. Прогноз на 2013 - рост рынка на 19% .
Поисковые системы учитывают множество параметров сайта при вычислении его релевантности (степени соответствия введенному запросу):
Все факторы, влияющие на положение сайта в выдаче поисковой системы, можно разбить на внешние и внутренние. К внутренней оптимизации (касающейся исключительно внутренней системы сайта) — относится работа, направленная на общее повышение качества сайта, пользы, которую он приносит посетителю. Сюда можно отнести работу над структурой проекта, над облегчением восприятия контента и непосредственно над качеством этого контента. Значение общего количества таких факторов в большинстве источников колеблется в районе 200. Функциональный подход к поисковой оптимизации, направленный на подгонку определенных факторов к их целевым значениям, отошел в прошлое в связи с усложнением алгоритмов поисковых систем — стоимость "балансирования" десятков факторов многократно превышает стоимость создания изначально качественного ресурса.
Внешние факторы делятся на статические и динамические:
Методы внешней поисковой оптимизации:
Лицо, проводящее работу по оптимизации веб-сайтов, называется оптимизатор.
Существуют различные SEO-сервисы, позволяющие облегчить труд оптимизаторов и дать владельцам сайтов возможность продвигать их самостоятельно.
К факторам, понижающим рейтинг сайта, относятся:
Вместе с появлением и развитием поисковых систем в середине 1990-х появилась поисковая оптимизация. В то время поисковые системы придавали большое значение тексту на странице, ключевым словам в мета-тегах и прочим внутренним факторам, которыми владельцы сайтов могли легко манипулировать. Это привело к тому, что в выдаче многих поисковых систем первые несколько страниц заняли сайты, которые были полностью посвящены рекламе, что резко снизило качество работы поисковиков. С появлением технологии PageRank больше веса стало придаваться внешним факторам, что помогло Google выйти в лидеры поиска в мировом масштабе, затруднив оптимизацию при помощи одного лишь текста на сайте.
Однако оптимизация развивается вместе с поисковыми системами, и в современных результатах поиска можно видеть все больше и больше коммерческих сайтов с искусственно раздутой популярностью, особенно по коммерчески привлекательным запросам (транзакционные запросы).
Методы оптимизации можно разделить на три класса в соответствие с их цветом (белый, серый и черный), однако последние события в мире поисковых систем дают понять, что это разделение весьма условно — любая манипуляция определенными параметрами сайта может быть расценена поисковиком как крайне нежелательное влияние на его результаты. Так, любая попытка манипулирования поисковыми результатами прямо запрещена в лицензии на использование поисковой системы «Яндекс». «Белые» оптимизаторы и маркетологи пользуются рекомендациями Яндекса по созданию «хороших» сайтов . Таким образом, продвигают сайт, не нарушая правил поисковых систем.
Белая оптимизация — оптимизаторская работа над ресурсом без применения официально запрещенных каждой поисковой системой методов раскрутки ресурса — без влияния на поисковые алгоритмы сайтов. Это включает в себя работу над самим сайтом, а именно над внутренней навигацией и содержимым, и работу с внешней средой сайта, то есть продвижением оптимизируемого сайта путем обзоров, пресс-релизов, регистрации в социальных закладках, партнерских программ и т. п. с указанием ссылок на сайт. Следует отметить, что «Яндекс» предупреждает о том, что если какой-либо метод оптимизации не является официально запрещенным, это не значит, что его можно применять.
К серой поисковой оптимизации можно отнести добавление большого количества ключевых слов в текст страницы, зачастую в ущерб читабельности для человека, например: «Масло масляное, потому что в нем есть маслопроизводные масляные жиры». При этом оптимизация заключается сначала в подборе ключевых запросов для конкретной веб-страницы, определении размера целевого «SEO-текста» и необходимой частоты ключевых слов в нем, а затем в формулировании предложений и фраз, содержащих в себе ключевые запросы определенное количество фраз в разных падежах, единственном и множественном числе, при разных формах глаголов. Эти параметры могут потом корректироваться по результатам выдачи поисковых систем. При этом задача SEO-копирайтера — написать оригинальный текст таким образом, чтобы подобная оптимизация была как можно менее заметна «живому» читателю (и в частности асессору поисковой системы). Широко применяется также включение ключевого запроса в HTML-теги title, h1, alt, атрибут meta keywords.
Другой пример серой оптимизации — дорвей без редиректа, когда при попадании на дорвей не происходит автоматического перенаправления на продвигаемый сайт.
Серая оптимизация отличается от черной тем, что она официально не запрещена, но ее использование все равно может быть расценено как неестественное завышение популярности сайта. Некоторые поисковые системы, например, Google, могут временно или постоянно заблокировать такой сайт. То есть, конечное решение о том, являются ли методы продвижения законными или нет, принимает специалист — модератор поисковой системы, а не программа.
К черной оптимизации относятся все методы, которые противоречат правилам поисковых систем. Среди них можно выделить следующие: использование дорвеев(страниц и ресурсов, созданных специально для роботов поисковых систем, зачастую с большим количеством ключевых слов на странице), прием под названиемклоакинг (пользователю отдается одна страница, легко читаемая, а поисковому роботу — другая, оптимизированная под какие-либо запросы), использование скрытого текста на страницах сайта, использование «однопиксельных ссылок».
Не следует путать с копирайтом — правом на копирование, авторским правом.
Копира́йтинг (англ. copywriting от copy — рукопись, текстовый материал + write — писать) — профессиональная деятельность по написанию рекламных и презентационных текстов. Таковыми можно считать все тексты, которые прямым или косвенным образом рекламируют или популяризируют товар, компанию, услугу, человека или идею.
Специалистов, которые занимаются копирайтингом, называют копирайтерами. .
В английском языке слово «копирайтинг» является неологизмом и в словарях не представлено. «Копирайтер» (copywriter) трактуется как «писатель рекламных и пропагандистских текстов» (a writer of advertising or publicity copy).
В Рунете под копирайтингом иногда понимают создание текстов для нужд SEO или написание статей нерекламного характера .
Копирайтинг не имеет никакого отношения к термину «копирайт» (англ. copyright), также пришедшему из английского языка, у которого совершенно другое смысловое значение.
Деятельность, называемая копирайтингом, существует очень давно. Она возникла вместе с торговлей, поскольку реплики продавца — уже результат копирайтинга.
Тексты, придуманные копирайтерами советской эпохи, были и остаются весьма популярными, многие из них превратились в крылатые выражения («Курить — здоровью вредить», «Болтун — находка для шпиона», «Строить прочно — сдавать досрочно» и т. п.). Многие рекламные слоганы также известны до сих пор: «Трехгорное пиво выгонит вон ханжу и самогон», «Лучших сосок не было и нет. Готов сосать до старых лет», «Нигде кроме, как в Моссельпроме», «Храните деньги в сберегательной кассе» и пр.
Востребован в прямой рекламе — той, которая призывает здесь и сейчас сделать нужное действие: заказ, звонок, клик. Подобные тексты побуждают пользователя незамедлительно купить товар или воспользоваться услугой.
В рамках рекламного агентства копирайтер работает в паре с арт-директором. Такой симбиоз называют креативной парой.
Одним из пионеров копирайтинга в директ-маркетинге считается Джон Кейплз (1900–1990). Его книга «Проверенные методы рекламы» («Tested Advertising Methods») впервые вышла в США в 1932 году и претерпела многочисленные переиздания благодаря своей непроходящей актуальности. Недавно она вышла и на русском языке.
Джозеф Шугерман, другой знаменитый рекламный специалист в области директ-маркетинга конца ХХ века, признан одним из самых эффективных и плодовитых копирайтеров Америки. Его книга «Искусство создания рекламных посланий. «Справочник выдающегося американского копирайтера» («The Adweek Copywriting Handbook: The Ultimate Guide to Writing Powerful Advertising and Marketing Copy from One of America's Top Copywriters») также не раз переиздавалась в России.
Как элемент брендинга работает на отсроченную продажу — закрепление образа торговой марки в сознании потребителя или просто создание нужного имиджа товара, услуги, компании, человека, идеи.
Иногда под копирайтингом понимают любое написание текстов для веб-сайтов или даже любое написание текстов на заказ. Тем не менее, такое употребление слова не отражено в словарях , и считается неточным. В последнее время в сфере написания текстов на заказ набирают обороты интернет-магазины и биржи готовыхтекстов.
Как разновидность web-копирайтинга — SEO-копирайтинг.
Иногда в веб-разработке под «копирайтингом» подразумевают степень уникализации, противоположную рерайтингу . Точнее называть степень уникализации авторским текстом[прояснить].
Копирайтером работает главный герой постмодернистского романа Виктора Пелевина «Generation «П» Вавилен
Контент-менеджер — редактор сайтов, в обязанности которого входит их полноценное наполнение текстовой, графической и другими видами информации (контентом). Работа контент-менеджера заключается не только в обработке огромного объема данных, но и в управлении множеством фрилансеров.
Не стоит путать профессии постера и контент-менеджера. Постер только лишь размещает информацию на сайте. Контент-менеджер составляет технические заданиядля сотрудников, контролирует выполнение работы и проверяет ее результаты.
Фактически, контент-менеджер — это управляющий интернет-проектами, человек, который берет на себя ответственность за развитие веб-ресурса.
Плюсы профессии:
Минусы профессии:
Для успешного развития веб-разработчика ожидает масса инструментов. Эта статья поможет быть в курсе современных тенденций.

В этой части рассматривается сборная солянка из двух направлений: верстка и чистый фронтенд. Зачастую на данные направления нанимают разных работников, т. к. это две разные вакансии. Но чтобы полноценно развиваться, веб-разработчику необходимо знать весь "набор". Не упускайте из виду базовый скилл по CSS и HTML, ведь очень нелепо выглядит "мидл", не знающий, как сделать маркированный многоуровневый список.

Этот путь сложный и более трудоемкий, чем предыдущий, но есть и плюсы – больший оклад и интереснее задачи. Существует огромное множество бекенд-языков, так что специалисту будет не сложно развиваться в направлении серверной части приложения. По традиции все начинают изучать бекенд с PHP, но вы можете изменить установленные правила – Java, популярнейший Python, Ruby или Node.js помогут создать "правильный" бекенд.

Путь DevOps самый длинный и сложный. Чтобы его покорить, придется хорошенько потрудиться. Он требует знания нескольких крупных ключевых навыков: администрирования, сети и программирования. Если DevOps инженер – профессия вашей мечты, но вы не имеете всех необходимых знаний – не отчаивайтесь. Нужно немного усердия и терпения.
По админству вам нужно будет разобраться в ОС Windows, Linux и FreeBSD – это самые распространенные системы, используемые для различных целей. Из сетей достаточно будет пройти первый базовый курс Cisco-академии и потренироваться на эмуляторе GNS. А по программированию строго обязательно знание ООП, алгоритмы паттерны и типизация – остальное постигнете в процессе.

Известно, что скорость и качество работы программистов различного уровня может отличаться на порядок. Многие из нас сталкивались с тем, что программисты срывали сроки, а также с классическим примером того, как качество разработки влияет на проект. Наверняка почти все, кто имеет дело с разработкой, слышали, как программист, только что увидевший чужой код в незнакомом проекте, говорит: «Нужно все переписать!». Чаще всего это происходит при сочетании двух факторов: один программист написал код плохо, а другой не в состоянии его понять. Отсюда берет начало требование «умение читать чужой код», которое часто встречается в описаниях вакансий для программистов.
С течением времени некачественно написанные проекты становится почти невозможно поддерживать. Известно, что если команда разработчиков пишет «плохой» код и не придерживается единой архитектуры, ее производительность может со временем снизиться вплоть до нуля. Ситуация становится тупиковой: внесение мелких изменений занимает слишком много времени, а на глубокий рефакторинг руководство соглашается с большим трудом, и дело разрешается в лучшем случае выделением дополнительного бюджета, а в худшем — увольнением команды или даже закрытием проекта.
По статистике, из 20 человек, называющих себя программистами, только один действительно им является. Сначала мы рассчитывали статистику по количеству человек, которые в состоянии на очном собеседовании на листе бумаги написать код по задаче, аналогичной FizzBuzz. Потом мы поняли, что такой проверки недостаточно, и валидировали эту статистику другим способом.
FizzBuzz -это набор вопросов, которые позволили бы мне быстро идентифицировать таких «недопрограммистов». Вопросам такого рода я дал название «FizzBuzz questions», в честь игры, в которую играют британские школьники. Типичный FizzBuzz question выглядит следующим образом:
Напишите программу, которая выводит на экран числа от 1 до 100. При этом вместо чисел, кратных трем, программа должна выводить слово «Fizz», а вместо чисел, кратных пяти — слово «Buzz». Если число кратно и 3, и 5, то программа должна выводить слово «FizzBuzz»
Нормальный программист должен написать такую программу на бумажке за пару минут. Но вот что интересно: многие люди с профильным образованием вообще не могут справится с этой задачей. Были даже случаи, когда кандидаты, подававшие резюме на вакансию «Senior developer» тратили на эту программу больше 15 минут.»
Варианты решения задачи FizzBuzz



Основное допущение, которое мы сделали, состоит в том, что действительно профессиональный разработчик в состоянии не только адекватно писать и читать код, но и грамотно производить его рефакторинг. В задачах по рефакторингу сочетаются навыки написания и понимания кода, а для их выполнения совсем недостаточно прочитать книгу или пройти обычный институтский курс по программированию. По таким задачам относительно легко понять, готов ли человек к работе в команде. Ниже представлены три примера таких задач. Задание всегда выглядело одинаково: «Взгляните на следующий код. Есть ли в нем какие-то проблемы? Если да, перепишите его».
Пример кода на JavaScript (проверка опыта работы с jQuery)
Пример кода на PHP (проверка знания основ объектно-ориентированного программирования)
Пример кода на Java (проверка базового знания паттернов проектирования)
Часто проблема заключается не только в некачественном коде, который пишут разработчики, и не только в уровне профессионализма тех, кто называет себя профессионалами. Если человек адекватно себя оценивает и честно говорит, что он джуниор, — это очень хорошо и проблемы в этом нет. Проблемой это становится тогда, когда у человека шикарное резюме, он хочет устроиться к вам на работу ведущим frontend-разработчиком за очень высокую зарплату, пишет, что отлично знает нативный JavaScript, а сам при этом вообще не понимает, как работают контексты, как устроено прототипное наследование или как работать с событиями в DOM-модели.
Здесь имеет место либо абсолютно искренняя неадекватная оценка себя, либо попытка обмануть работодателя. Часто оба этих фактора сливаются, и кандидат начинает верить в то, каким он себя показывает. На наш взгляд, это связано с отсутствием у таких людей желания развиваться в области, в которой они уже чего-то достигли. Им проще сказать, что они знают ту или иную технологию, чем реально ее изучить. Эта проблема присутствует не только в программировании и в ИТ-сфере, но и во всех других областях человеческой деятельности. А ведь желание развиваться в том, что ты делаешь, — важнейший компонент профессионализма.
Чем, на ваш взгляд, профессиональный разработчик отличается от любителя? Мы и раньше задавали этот вопрос тимлидам на собеседованиях, но сейчас решили внимательно проанализировать ответы и собрать статистику. Уникальных ответов получилось около пятидесяти. Мы сгруппировали часть ответов, которые посчитали похожими, и получилась очень интересная картина:
***Результат опроса 500 ведущих разработчиков и тимлидов — 10 самых часто встречающихся ответов.
Обратите внимание: почти 40% опрошенных назвали в качестве основного фактора профессионализма постоянное саморазвитие. При этом высокое качество работы, к которому мы отнесли «чистоту» программного кода, стоит на втором месте.
Стив Макконнелл, автор бестселлера «Совершенный код», приводит несколько таких факторов и не выделяет среди них основного:
Джоэл Спольски (автор «Руководства по подбору программистов и управлению ими»), который давно занимается наймом профессиональных разработчиков, считает, что основных составляющих профессионализма всего четыре:
Автор книг «Чистый код» и «Как стать профессионалом разработки ПО» Роберт Мартин утверждает, что основным фактором профессионализма разработчика является его способность писать «чистый» поддерживаемый код, но приводит также несколько сопутствующих факторов:
Мы составили свой перечень таких критериев и назвали его «Матрица профессионализма программиста». Это всего четыре параметра — по два для программиста и разрабатываемого им программного обеспечения:
***
Рассмотрим каждый из четырех факторов.
1. Программное обеспечение должно выполнять задачу. Это очевидное утверждение. Если нужно написать программу, которая что-то делает, то хорошей программой будет считаться та, которая действительно это делает. Сюда мы включаем все, что касается требований к разрабатываемому программному обеспечению, в том числе скорость его работы, безопасность, устойчивость к заявленным в требованиях нагрузкам и общая отказоустойчивость.
2. Программное обеспечение должно быть поддерживаемым. Тоже очевидное утверждение. Сюда относится не только качественно написанный код, но и грамотно продуманная, легкая в понимании архитектура, а также, в ряде случаев, корректно составленная документация — начиная от комментариев в программном коде и заканчивая набором UML-диаграмм, в зависимости от необходимости и масштабов проекта.
3. Программист должен быть работоспособным и выполнять задачи. Этот критерий можно усложнять, но на самом деле он очень прост: программисту поставили задачу — если он эту задачу выполнил в указанный или разумный с точки зрения его руководства срок, значит, все хорошо. Если заказчик доволен результатом и разработанный продукт или новая функциональность выполняют поставленные перед ним задачи — можно считать, что программист свою задачу тоже выполнил.
4. Программист должен быть «поддерживаемым». Этот фактор включает в себя прежде всего умение работать в команде. Но на самом деле он несколько шире: это может быть и самостоятельность, и нормальное взаимодействие с руководством или другими отделами, и адекватность при передаче проекта другому разработчику, если возникла такая необходимость.
Большинство перечисленных выше факторов можно объединить в эту матрицу, причем все параметры, имеющиеся в матрице, тесно связаны и взаимозависимы. Тем не менее есть кое-что, что в эту матрицу не укладывается. Мы пришли к выводу, что у профессионализма есть какая-то основа, движущая сила. И есть люди, которые еще не соответствуют всем критериям профессионализма, но уже адекватно себя оценивают, очень быстро растут и вполне могут быть наняты на работу как перспективные сотрудники.
Этими людьми движет сила, которая заставляет их не только развиваться как профессионалов, но и выполнять задачи, которые перед ними стоят: и выполнять самим, и делать так, чтобы результаты их работы тоже функционировали и выполняли какие-то свои задачи. Более того, эта сила объединяет все четыре фактора «Матрицы профессионализма» и выступает их причиной. Имя этой силы — интерес.
| Теоретическая подготовка | ||||
|---|---|---|---|---|
| 2n (Уровень 0) | n2 (Уровень 1) | n (Уровень 2) | log(n) (Уровень 3) | |
|
Структуры данных |
Не может объяснить разницы между Array (массивом) и LinkedList (связным списком) | Способен объяснить принцип работы массивов, списков, словарей и использовать их для решения практических задач | Осознает, какие компромиссы между объемом занимаемой памяти и быстродействием имеют место в базовых структурах данных, какие операции и почему легче выполнять для массивов, а какие — для списков. Может привести и объяснить способы реализации хеш-таблиц и разрешений коллизий в них. Приоритетные очереди и способы их реализации. |
Знает и понимает продвинутые структуры данных: B-деревья, биномиальные и фибоначчи-кучи, красно-черных деревья, «выворачивающиеся» (Splay) деревья, слоеные списки (skip lists), префиксные и суффиксные деревья и т.п. |
|
Алгоритмы |
Не способен найти среднее значение чисел в массиве (сложно поверить, но случаются и такие кандидаты) | Знает основные алгоритмы сортировки, поиска, обхода и выборки даннных. | Деревья и Графы. Простые «жадные » алгоритмы и алгоритмы вида «разделяй-и-властвуй» (вроде QuickSort). Способен понять смысл обозначения уровней в этой матрице. |
Способен распознать и программно решить задачи динамического программирования, хорошо знает алгоритмы работы с графами, вычислительные алгоритмы. Способен распознать класс сложности задачи и т.п. |
|
Системное программирование |
Не знает, что такое компилятор, сборщик или интерпретатор. | Базовое понимание компиляторов, сборщиков и интерпретаторов. Понимает, что такое машинный код, и как все работает на аппаратном уровне. Некоторые знания в сфере виртуальной памяти. |
Понимает отличия пользовательского режима от режима ядра, многопоточность, примитивы синхронизации и то, как они реализованы. Способен читать машинный код. Понимает работу сетей, сетевые протоколы и программирование уровня сокетов. |
Понимает весь программный стек, детали аппаратной реализации (ЦПУ + Память + Кэш + Прерывания + Микрокоманды), сборки, статическое и динамическое связывание, компиляция, интерпретация, компиляция времени выполнения, сбор мусора, стек, куча, адресация в памяти… |
| Инфраструктура разработки | ||||
| 2n (Уровень 0) | n2 (Уровень 1) | n (Уровень 2) | log(n) (Уровень 3) | |
|
Системы контроля версий |
Архивные папки по датам | VSS и начинающий пользователь CVS/SVN | Имеет опыт в использовании возможностей CVS или SVN, умеет создавать ветки и сливать, настраивать свойства репозитория и т.п. | Знаком с распределенными системами контроля версий. Пробовал Bzr/Mercurial/Darcs/Git |
|
Автоматизация сборки |
Умеет собирать из ИСР (Интегрированная среда разработки — IDE) | Умеет собирать из командной строки | Может настроить скрипт для сборки системы | Может настроить скрипт для сборки системы, а также генерации документации, установочных пакетов, заметок о выпуске и для установки соответствующих меток в системе контроля версий. |
|
Знание средств разработки |
Ограничено «родной» ИСР (IDE) (VS.Net, Eclipse и т.п.) | Знает о некоторых альтернативных средствах, представляет возможности других ИСР. | Хорошее знание редакторов, отладчиков, ИСР, свободных альтернатив и т.п. Приветствуется знание, например, программ из из списка Скотта Хансельмана | Сам автор утилит и скриптов, желательно опубликованных. |
|
Работа со средой |
Использует ИСР для правки текстов. | Детальнее знаком с интерфейсом, способен эффективно пользоваться средой посредством меню. | Знаком с горячими клавишами для часто используемых операций. | Создает собственные макросы и расширения. |
|
Написание |
Не приходилось писать сценариев | Командные скрипты ОС, JS for scripting | Perl/Python/Ruby/VBScript/Powershell | Создал и опубликовал повторно используемые сценарии. |
| Программирование | ||||
| 2n (Уровень 0) | n2 (Уровень 1) | n (Уровень 2) | log(n) (Уровень 3) | |
|
Декомпозиция задачи |
«Линейное» кодирование; повторное использование путем копирования-вставки. | Способен разбить задачу на несколько функций | Способен создать повторно используемые функции/объекты, которые решают общую задачу | Используя соответствующие структуры данных и алгоритмы получает обобщенный/объектно-ориентированный код, в котором инкапсулированы и нужным образом выделены те аспекты задачи, которые могут измениться. |
|
Декомпозиция системы |
Не мыслит шире уровня отдельного класса/файла | Способен декомпозировать задачу и спроектировать решение, но оставаясь в рамках той же технологии/платформы. | Способен проектировать системы, простирающиеся на несколько технологий/платформ. | Способен представлять и проектировать сложные системы из множества продуктов с интеграцией с внешними системами. |
|
Организация кода |
Никаких признаков организации кода | Методы сгруппированы логически или по уровням видимости | Код оформлен в регионы и достаточно прокомментирован | Файл четко структурирован, документирован, все пробелы и новые строки расставлены в соответствии со стандартом кодирования. Файл выглядит идеальным. |
|
Организация кода |
Не принимает во внимание организацию файлов в папки. | Связанные файлы сгруппированы в папки. | Каждый файл имеет четкую единственную цель, например, определение одного класса, реализация одной возможности и т.п. | Организация кода на физическом уровне соответствует дизайну. Просмотр имен файлов и папок дает представление об архитектуре данного фрагмента системы. |
|
Организация проектов в решении |
Разделение на проекты практически отсутствует (например, и слой UI, и логика, и данные — в одном проекте) | Базовое разделение проектов по уровням. | Бинарные внешние сборки, документация, внешний код, результаты сборки — все логично организовано в соответствующие папки. Контролирует зависимости между проектами. | Физическое расположение исходников в дереве соответствуюет логической структуре и организации системы. Просмотр имен файлов и папок дает представление об архитектуре системы. |
|
Читаемость кода |
Однобуквенные имена | Смысловые имена для файлов, переменных, методов, классов и т.п. | Нет длинных функций; необычный код, исправления ошибок, предположения — прокомментированы | Допущения верифицируются с помощью Assert или контрактов кода. Поток выполнения выглядит естественно, нет слишком глубокой вложенности условий или вызовов. |
|
Навыки общения |
Не может донести мысли/идеи коллегам. Орфографические и грамматические ошибки. | Может донести мысли/идеи коллегам. Грамотная речь и письмо. | Способен эффективно обсуждать архитектурные и прочие детали с коллегами. | Способен понимать и сообщать мысли/архитектурные идеи/спецификации в непротиворечивой форме и в общении ориентируется на контекст (на понимание собеседниками друг друга). Может обучать других. |
|
Автоматизированное |
Считает, что все тестирование — работа тестировщика | Пишет автоматические тесты, приходит к созданию хороших тестов для уже написанного кода | Пишет код в манере РЧТ (разработка через тестирование, TDD) | Способен настроить автоматизированные функциональные, нагрузочные и тесты интерфейса. |
|
Защитное |
Не понимает, что это такое | Проверяет все переданные параметры, декларативно проверяет допущения в коде. | Проверяет возвращаемые значения и проверяет на исключения код, который может их выбросить. | Имеет собственную библиотеку для защитного кодирования; пишет модульные тесты для проверки работы в случае некорректных условий. |
|
Обработка ошибок |
Кодирует в расчете на отсутствие ошибок. | Базовая обработка кода, который может выбросить исключение/сгенерировать ошибку. | Убеждается, что ошибки/исключения оставляют программу в корректном состоянии, освобождаются все ресурсы, требующие освобождения: память, подключения и др. | Старается не допустить возникновения исключений путем упреждающих проверок, поддерживает общую стратегию обработки исключений во всех слоях приложения. Предлагает набор общий правил для обработки исключений во всей системе. |
|
Отношение |
Берет требования и реализует их формально | Ставит вопросы по упущеным ньюансам в требованиях | Понимает общую картину и указывает на целые сферы, которые нужно уточнить/доописать | Способен предложить лучшие альтернативы предлагаемым решениям исходя из личного опыта |
|
Базы данных |
Считает базой данных Excel | Знаком с основными концепциями, нормализаций, ACID, транзакциями, и способен писать простые запросы. | Способен проектировать хорошие нормализованные схемы, учитывая при этом типичные запросы, которые будут производится. Профессионально использует отображения (View), хранимые процедуры, триггеры и типы, определяемые пользователем. Понимает отличие кластерных индексов от некластерных. Профессионально использует средства объектно-реляционного отображения. |
Способен осуществлять базовое администрирование БД, настройку производительности и оптимизацию индексов. Создавать сложные запросы, заменять использование курсоров на выражения SQL. Представляет, как данные и индексы физически организованы. Понимает, как база может быть зеркалирована, реплицируема. Понимает, как работает двухфазная фиксация (commit). |
| Опыт | ||||
| 2n (Уровень 0) | n2 (Уровень 1) | n (Уровень 2) | log(n) (Уровень 3) | |
|
Профессионально используемые языки |
Императивные или объектно-ориентированные | Императивные, объектно-ориентированные и декларативные (SQL). Понимает отличия статической и динамической, сильной и слабой типизации. Статический вывод типов. |
Функциональные. Ленивые вычисления, каррирование, продолжения (континуации, continuations) | Параллельные (Erlang, Oz) и логические (Prolog) |
| Самообразование и развитие |
||||
| 2n (Уровень 0) | n2 (Уровень 1) | n (Уровень 2) | log(n) (Уровень 3) | |
|
Изучаемые языки/сфера интересов |
Императивные или объектно-ориентированные | Императивные, объектно-ориентированные и декларативные (SQL). Понимает отличия статической и динамической, сильной и слабой типизации. Статический вывод типов. | Функциональные. Ленивые вычисления, каррирование, продолжения (континуации, continuations) | Параллельные (Erlang, Oz) и логические (Prolog) |
|
Знакомство с технологиями |
Не следит за новыми выпусками платформ, сред разработки и т.п. | Ознакамливается с планами выпусков, представляет, о каких продуктах идет речь | Загружает предварительные версии продуктов, читает статьи, руководства. | Экспериментирует с предварительными версиями, создает пробные решения. Опубликовывает интересные результаты для сообщетва. |

Интерес — это эмоция, которая заставляет индивида в течение продолжительного времени заниматься определенным видом деятельности. Интерес играет ключевую роль для приобретения навыков и развития интеллекта. Это единственная эмоция, которая позволяет выполнять повседневную работу должным образом.
Известно, что есть несколько видов мотивации — как положительной, так и отрицательной. Интерес можно считать наиболее естественным и глубоким из них. Достигая успехов, пусть даже совсем небольших, человек чувствует наиболее полное удовлетворение, если основной его движущей силой была эмоция интереса, а не какой-то другой фактор.
Я убежден, что единственной вещью, которая помогла мне продолжать работу, было то, что я любил свое дело. Вам надо найти то, что вы любите.
Стив Джобс
Интерес обладает колоссальной мотивирующей силой и не только помогает начать какую-то работу, но и дает энергию для ее завершения. Чтобы специалист мог приобрести навыки или справиться с какой-то серьезной задачей, его интерес должен быть сильным, глубоким и устойчивым. Это не должно быть просто поверхностное любопытство.
Я выделяю три взаимозависимых составляющих так называемого профессионального интереса, по которым можно проверить, достаточен ли интерес для плодотворной и эффективной работы или это простое любопытство:
Состояние, при котором человек испытывает интерес, давно известно человечеству. Разные люди называют его по-разному: кто-то говорит, что это интеллектуальный транс. Действительно, увлеченность своим делом очень похоже на состояние транса. Но наиболее частое название этого состояния — поток. У психолога Михая Чихсентмихайи есть книга «Поток: психология оптимального переживания», в которой изложена вся исчерпывающая информация по этой теме. Хотелось бы отметить лишь то, что способность испытывать состояние потока может отличаться у разных людей в зависимости от психологических особенностей и контекста.
Очень часто находятся «в потоке» дети. Это видно, когда ребенок чем-то занят: у него приоткрыт рот и широко открыты глаза. Это типичные проявления эмоции интереса. При этом дети очень злятся, если их «вырываешь» из потока, поскольку в этом состоянии личность растет и развивается. У некоторых людей способность входить в состояние потока и удерживаться в нем хорошо сохраняется на протяжении всей жизни.
Главное — не прекращать задавать вопросы. Никогда не теряйте священной любознательности!
Альберт Эйнштейн
Активный интерес мотивирует человека к спонтанной деятельности и к экспериментам. Мой отец, купив мне первый компьютер, сказал: «Делай с ним, что захочешь, нажимай любые кнопки, но только чтобы из него не пошел дым». Помню, как первое время к нам приходил сосед, чтобы переустановить мне на компьютере Windows 95. Потом, методом проб и ошибок, постоянно интересуясь у соседа, как решать разные проблемы и устанавливать драйвера, я научился переустанавливать Windows самостоятельно. На первом курсе университета я стал зарабатывать установкой Windows и дополнительного ПО на компьютеры однокурсников и преподавателей.
Мне кажется, эта история хорошо показывает, как интерес и эксперименты помогают развивать навыки и умения. Но есть и обратный пример. Наверняка многие из вас сталкивались с людьми старшего возраста, которые боятся подходить к компьютеру, боятся «нажать что-то не то». Этот страх ошибки и, следовательно, страх эксперимента — одно из самых распространенных препятствий к обретению опыта и развитию личности.
Если человек не испытывает эмоции интереса или мешает его реализации, его интеллектуальные способности угасают. Если же ему интересно, он будет молодо себя чувствовать и молодо выглядеть, даже если ему уже за 80 лет.
Отличный пример — мой учитель, директор НИИ физико-химической биологии А.Н. Белозерского, академик РАН Владимир Петрович Скулачев. Он уже много десятилетий занимается изучением митохондрий, а последние 20 лет — разработкой средства, которое «выключает» один из механизмов старения. Ему уже больше 80 лет, он прекрасно себя чувствует, руководит большим институтом и является самым цитируемым биологом России.
Я проработал с ним много лет и видел, что ему по-настоящему интересно заниматься тем, чем он занимается. Он может позвонить коллеге в ночь с воскресенья на понедельник, чтобы проконсультироваться, или часами выяснять суть какой-то научной проблемы. Это настоящий, истинный профессионализм.
Михай Чихсентмихайи выделяет ряд психологических особенностей личности и социальных препятствий, которые могут мешать достижению состояния потока, то есть проявлению эмоции интереса. «Внутренние» препятствия он объединяет в две категории:
Социальные препятствия, мешающие достижению состояния потока и проявлению эмоции интереса, также представлены двумя видами: аномией и отчуждением. Аномия в обществе — это дезориентированность, неясность целей и правил, при которой личность не понимает, что ей нужно делать, как ей жить, самореализовываться и добиваться успехов. В противоположной ситуации — при отчуждении — личность испытывает отвращение к обществу, поскольку в целях выживания вынуждена заниматься тем, что ей не только неинтересно, но и бесполезно.
Все эти препятствия создают дисбаланс и мешают человеку управлять своим вниманием. Они не позволяют человеку заниматься тем, что ему по-настоящему интересно, не позволяют интересу проявляться в полной мере, а, следовательно, приобретать знания, умения и навыки в той области, в которой человек мог бы стать профессионалом высочайшего уровня.
Как уже было сказано, активный, глубокий и постоянный интерес самым естественным образом приводит к развитию умений и навыков, то есть к приобретению опыта. Из семени интереса, если не мешать и не создавать препятствий, вырастает большое и пышное дерево опытной и взрослой личности с крепкими корнями — здоровой уверенностью в том, что делаешь, в своих силах и возможностях. Мы измеряем профессионализм по двум шкалам:

Первая шкала — это шкала профессионального интереса. По ней мы можем определить наличие профессионализма. Для простоты мы используем бинарную шкалу: профессионал или непрофессионал. Если мы измеряем профессионала только по этой шкале, мы должны понимать, что профессионал может быть не только очень опытным мастером своего дела, но и начинающим или даже потенциальным.
Для наглядности приведу пример: вы приходите в гости к знакомым и видите, как их семилетний сын виртуозно играет на скрипке. Можно ли его считать полноценным профессионалом экстра-класса и мастером своего дела? Скорее всего, таким его считать еще рано. Мы не знаем, укрепится ли его профессионализм, станет ли он музыкантом, обычным или великим. Но в данный момент по бинарной шкале он, конечно же, профессионал. Да, еще совсем неопытный, начинающий — но уже профессионал.
Вторая шкала — это уже, собственно, шкала уровня профессионализма, уровня развития личности, ее умений и навыков. Сюда мы включаем не только так называемые hard skills — конкретные компетенции в конкретной профессиональной сфере, — но и личностные особенности человека. Мы глубоко убеждены: если личность развивается гармонично и беспрепятственно, то она вырастает здоровой и полноценной. Если развитие шло от интереса, то личностные качества дополняют узкие компетенции, которые особенно нужны в работе.
Хотелось бы чуть глубже рассмотреть некоторые важные личностные характеристики, которыми в той или иной степени должен обладать настоящий профессионал. Если мы говорим о программистах, то эти характеристики относятся к «поддерживаемости» самого программиста как личности — к его способности работать в команде и выполнять задачи, которые перед ним ставит бизнес.
Привычка к постоянному саморазвитию. Настоящие профессионалы точно знают, что им интересно. И если им что-то интересно, они нисколько не сдерживают себя в том, чтобы это изучить или сделать. Они находятся в постоянной гармонии со своим интересом. В отличие от маленьких детей, чье внимание легко переключить или вообще отбить у них всякое желание чем-то заниматься, настоящего профессионала очень сложно или даже невозможно заставить отказаться от того, что ему интересно. Даже тяжелая болезнь или тюрьма здесь не поможет. Думаю, примеры здесь приводить не обязательно.
Эта привычка позволяет не только заниматься какой-то интересной деятельностью, но и быть в курсе достижений других людей. Активный интерес открывает человеку глаза на окружающий мир с позиции того, что ему интересно. Человек ловит малейшую информацию об объекте своего интереса из всех возможных источников. Он ищет, спрашивает и обсуждает.
Уверенность и ответственность. Настоящий профессионал всегда трезво оценивает свои возможности. Он точно знает, что он умеет, а что нет. Он абсолютно уверен в своих силах и несет ответственность за то, что делает, — не потому, что эту ответственность возложило на него вышестоящее начальство, а самым естественным образом. Под ответственностью здесь понимается прежде всего качество работы и результата, а не готовность в случае ошибки лечь на плаху.
Профессионалу интересно нести ответственность, и он не склонен перекладывать ее на других. Он всегда конструктивно подходит к задачам и проблемам, которые перед ним стоят. Он не сможет заснуть, если вдруг узнает, что разработанная им программа дала сбой. Он тут же побежит ее исправлять, и еще до рассвета ошибка будет устранена. Его не нужно специально «пинать» или наказывать.
Развитый эмоциональный интеллект. Гармоничная личность имеет гораздо больше шансов установить нормальные отношения с обществом — близким окружением и малознакомыми людьми. Все мы знаем немало странноватых и нелюдимых профессионалов. Но, как правило, у настоящего профессионала, чья личность развивалась гармонично и без препятствий, с общением и окружением все в порядке. Очевидно, что если мешать человеку реализовывать свои потребности в профессиональной сфере, интересоваться и экспериментировать, — у него начнутся психологические проблемы вплоть до тяжелых психических и психосоматических заболеваний.
Баланс между процессом и результатом. Я часто встречаю споры о том, что же важнее: процесс или результат. Кто-то говорит, что результат: неважно, что ты испытываешь в процессе, ты можешь ненавидеть свою работу — но, если есть результат, то все хорошо. Очевидно, что это принцип «сегодняшнего дня». При таком подходе сегодня все будет хорошо, но через год-два начнутся серьезные проблемы: человек может просто сломаться, а бизнес найдет себе нового исполнителя.
Есть противоположный подход: важно, чтобы человеку нравилось делать то, что он делает, чтобы он получал удовольствие от работы, а о результате должны заботиться его руководители и бизнес. Подход интересный и, казалось бы, ориентированный на личность. Человек при этом живет хорошо, бизнес тоже вроде бы развивается — а потом человек меняет работу, а в бизнесе становится понятно, что сроки сорваны, а результата нет.
Бывают и другие сценарии, но не думать о результате и концентрироваться только на процессе тоже неправильно — должен быть баланс. Такой баланс соответствует привычке доводить дела до конца, и это компонент настоящего профессионализма.
У каждой личности есть свои особенности и способности. Каждый человек индивидуален, и развитие разных людей также очень индивидуально. И если мы оцениваем человека, нужно делать это очень осторожно. Альберт Эйнштейн как-то сказал: «Каждый человек гениален. Но если вы будете судить рыбу по ее способности лазать по деревьям, она проживет всю жизнь, считая себя дурой».

Хотелось бы отметить, что наличие опыта — даже очень глубокого и обширного — далеко не всегда говорит о профессионализме. Человек может все знать о какой-то сфере, но она может быть ему совершенно неинтересна. К чему это приведет? К различным проблемам.
Во-первых, такой специалист не будет чувствовать удовлетворения от процесса работы, что, как было сказано выше, чревато профессиональным и личностным выгоранием. Негативные эмоции будут разрушать человека изнутри и рано или поздно это скажется на результатах его труда. Как правило, это происходит очень неожиданно для бизнеса, на который специалист работает.
Во-вторых, специалист, которому не очень интересна или совсем неинтересна его работа, не будет развиваться. Хорошо известно, что в сфере программирования, если два года не интересоваться новшествами, найти работу будет уже сложно. И если ты много лет работаешь на одну компанию и не развиваешься, то продукт, который ты разрабатываешь в этой компании, тоже не развивается.
Когда есть опыт, но нет глубинного интереса, то он оказывается бесполезен — пусть не всегда в ближайшей, но почти всегда в отдаленной перспективе. Такой опыт мог быть приобретен не вследствие интереса, а из зависти, жизненной необходимости, самообмана или в результате настойчивости родителей.
Всем известно, что в России очень большая доля специалистов (по данным разных опросов, от 60% до 90%) работает не по специальности. Это происходит по разным причинам, но довольно часто потому, что одна деятельность оказывается интересной, а вторая только кажется таковой, а по сути оказывается бесполезной или даже вредной.
Когда нет достаточного опыта, но есть интерес — есть и потенциал. Если человеку интересно, он может освоить новые знания, умения и навыки гораздо быстрее, чем если ему они неинтересны. Это его внутренняя мотивация. Ему не нужны для этого деньги.
Важным фактом также является то, что в узкопрофессиональном опыте, к которому мы относим знания, умения и навыки, наибольшее значение имеют умения и навыки, но не знания. Очень точно этот момент подметил один из моих школьных преподавателей. Он сказал: «У студентов — помесь знаний с мозгом».
Есть и более известная цитата, которую приписывают американскому психологу Берресу Фредерику Скиннеру: «Образование — это то, что остается, когда все выученное забыто». А что, собственно, остается? Остаются ментальные модели (способы мышления), умения и навыки. Остается умение искать нужную информацию и экспериментировать. И если есть интерес, то профессионализм неизбежно растет.
Таких примеров в моей практике уже более двух десятков: специалисты приходили на базовые должности с очень низкой зарплатой и вырастали в цене в десять и более раз за очень короткие промежутки времени — от полугода до трех-четырех лет. Во всех этих людях меня привлекал истинный, глубокий, активный и устойчивый интерес к делу, которым они занимались.
Счастье заключается в том, чтобы «хочу», «могу» и «должен» имели одно то же содержание.
Психотерапевт Михаил Литвак
Разберем эту цитату. Что такое «хочу»? Это интерес в чистом виде. «Могу» — это опыт и прежде всего умения и навыки. А «должен» — это потребности общества: в широком смысле — спрос на то, что человек умеет делать, а в узком — конкретная задача, поступившая от заказчика.
Обнаружить в человеке глубинный интерес, отличить его от любопытства и понять, что перед вами профессионал, — не такая простая задача, как может показаться на первый взгляд. Подчас даже сам человек не может разобраться в себе и прибегает к помощи психоаналитиков, тренеров и специалистов в области профессиональной ориентации. Просто спросить, интересно ли ему программирование и чем интересно, может быть явно недостаточно. И все же, как оказалось, это вполне решаемая задача. Но это тема для отдельной статьи.
Надеемся, данный обзор поможет вам определиться с направлением собственного развития, как разработчика. Выбирайте путь "по душе" и действуйте. Проявите упорство, силу воли и трудолюбие, а результат не заставит себя долго ждать. Когда поставленная цель будет у вас в кармане, двигайтесь дальше к новым вершинам.
1. Какая профессия отвечает за разработку пользовательского интерфейса веб-сайта?
2. Кто из специалистов занимается программированием логики сайта и его функциональности?
3. Какой специалист отвечает за создание и редактирование контента на сайте?
4. Какую роль выполняет SEO-специалист?
5. Кто отвечает за поддержку и обслуживание серверов, на которых размещены веб-сайты?
6. Какую профессию выполняет специалист, работающий с базами данных веб-сайтов?
7. Какую специальность имеет человек, который создает графику и визуальные элементы для сайтов?
8. Кто занимается маркетингом и продвижением веб-сайтов в интернете?
9. Какую роль играет фронтенд-разработчик в процессе создания сайта?
10. Какую профессию имеет специалист, работающий с пользовательским опытом (UX)?
11. Какую задачу решает DevOps-инженер?
12. Какую специальность имеет специалист, занимающийся анализом и тестированием веб-сайтов?
13. Какую роль выполняет мобильный разработчик?
14. Кто отвечает за безопасность веб-сайта?
15. Какую профессию имеет человек, создающий видеоконтент для веб-сайтов?
16. Какую задачу решает специалист по аналитике веб-сайтов?
17. Какой из специалистов отвечает за интеграцию сторонних сервисов и API?
18. Какую роль играет системный администратор в работе веб-сайта?
19. Какую задачу решает маркетолог в контексте веб-сайта?
20. Какой из специалистов отвечает за создание интерактивных элементов на сайте?
А как ты думаешь, при улучшении профессии для создания и обслуживания веб сайтов, будет лучше нам? Надеюсь, что теперь ты понял что такое профессии для создания и обслуживания веб сайтов, верстальщик, тестировщик, бекэнд, фронтэнд, фуллстек, программист, devops и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Основы интернет и веб технологий
Ответы на вопросы для самопроверки пишите в комментариях, мы проверим, или же задавайте свой вопрос по данной теме.
Комментарии
Оставить комментарий
Основы интернет и веб технологий
Термины: Основы интернет и веб технологий