9 видов разработчиков для ИТ-рекрутера
Здравствуйте, в этой статье мы постараемся ответить на вопрос: «9 видов разработчиков для ИТ-рекрутера». Если у Вас нет времени на чтение или статья не полностью решает Вашу проблему, можете получить онлайн консультацию квалифицированного юриста в форме ниже.
Специалисты по работе с различными конфигурациями программного обеспечения 1С. В профессиональной среде к этой категории отношение двоякое. Многие разработчики язык 1С вообще не считают языком программирования, а специалистов по 1С – программистами. Но, тем не менее, именно так называют эту специальность. И в России она широко востребована.
Практически всем видам программирования можно научиться на курсах или самостоятельно. Исключение – инженер-программист. Эта профессия помимо изучения языков программирования, предполагает глубокие знания в области математики, физики, других сопутствующих дисциплин.
Инженер-программист хорошо знает математическую логику и дискретную математику, умеет применять всю эту математику на практике. Кроме того, уровень подготовки позволяет изучить различные промышленные и технологические процессы.
А потому инженеры-программисты чаще всего заняты в сфере разработок программного обеспечения для автоматизации производства: станков с ЧПУ, конвейерных линий. Они же обычно программируют бытовую технику – хлебопечки, роботы-пылесосы и т.д. В компаниях, специализирующихся на создании программных систем, часто именно инженеры-программисты становятся разработчиками, так как в отличие от «кодеров»-самоучек, эти специалисты получили глубокие знания алгоритмизации.
Основные технологии:
- Языки программирования C/C++, C#, Delphi и другие;
- Знание низкоуровневого программирования (Assembler);
- Значительный багаж технических знаний (в первую очередь, связанных с отраслью, в которой программист работает).
Категории сами по себе — очень простые конструкции. Категория — это набор объектов и морфизмов между ними. Морфизмы можно рассматривать как однонаправленные стрелки, соединяющие объекты. В общем случае про сущность самих объектов ничего не известно. Теория категорий работает не с объектами, а с морфизмами, точнее — с их композицией.
Используется следующая нотация:
- ObC — объекты категории C;
- HomC(A, B) — морфизмы из A в B;
- g ∘ f — композиция морфизмов f и g.
В определении категории на морфизмы накладываются дополнительные ограничения:
- Для пары морфизмов f и g, если f — морфизм из A в B (f ∈ Hom(A, B)), g — морфизм из B в C (g ∈ Hom(B, C)), то существует их композиция g ∘ f — морфизм из A в C (g ∘ f ∈ Hom(A, C)).
- Для каждого объекта задан тождественный морфизм idA ∈ Hom(A, A).
Существуют два важных свойства, которым должна удовлетворять любая категория (аксиомы теории категорий):
- Ассоциативность композиции: h ∘ (g ∘ f) = (h ∘ g) ∘ f;
- Композиция с тождественным морфизмом: если f ∈ Hom(A, B), то f ∘ idA = idB ∘ f = f.
Категории очень легко и естественно визуализируются как ориентированные графы. В принципе, любой ориентированный граф можно достроить до категории, добавив композиции морфизмов и тождественные морфизмы, если необходимо.
Специалист по созданию и разработке компьютерных игр
Разработка компьютерных игр – одна из самых быстроразвивающихся сфер ИТ-технологий. По данным аналитического агентства NewZoo объем рынка видеоигр с каждым годом увеличивается на 9%. Если в 2016 году он составил почти 100 миллиардов долларов, то к 2018 году эта сумма увеличится до 112.5 миллиардов. Поэтому «инженер видеоигр» – это перспективная и высокооплачиваемая должность.
Инженер, или Game-разработчик – общее название категории специалистов, задействованных в процессе создания игры. Главная задача – превратить идею в программный код и заставить все элементы взаимодействовать. 90% рабочего времени программисты пишут и отлаживают алгоритмы на языке C++, Visual Basic, Java и MEL.
Романтики в профессии мало. В основном, это рутинный и многочасовой труд за компьютером. График обычно ненормированный. Если дизайнеру приходит гениальная идея срочно что-то переделать, всю ночь корпит над кодом именно программист.
Rock star (Software Scientist)
Концентрированный исследователь. Такие больше похоже на классических ученых, но только от IT. Им интересны алгоритмы, теоретические исследования, концептуально новые направления в индустрии, но прежде всего — им интересно экспериментировать. Ради этих экспериментов их и нанимают, собственно. Они готовы часами копаться в сложных штуках и решать задачи, постановка которых другим людям даже не понятна. Они — эксперты в сложных вопросах. Они точно знают в каких случаях q-sort стоит заменить на heap sort и чем они отличаются, или может быть какие алгоритмы кластеризации подойдут для анализа потока биржевых котировок, а иные знают какие оптимизации используются внутри g++ и как они помогают жить. Костяк таких людей, например, способен разработать новый язык программирования и компилятор к нему. Или значительно улучшить какую-бы то ни было существующую систему. Еще они часто предрасположены к функциональному программированию. Ни на что не намекаю — просто статистическая закономерность. Кстати, говнокодить rock stars могут (особливо на стадии прототипирования идей), но в массе своей не допускают плохой код до финальных версий разрабатываемых ими вещей, стараются сделать все красиво, с комментариями и удобными программными интерфейсами.
Но.
Как всегда есть «но», которое все портит. Важно понимать что ни при каких условях эти люди не будут решать ваши задачи. То есть да — rock stars будут решать те задачи, которые интересны им. За ваши деньги. И при том — за большие деньги. И при том — не факт что будет какой-то результат. То, что ваши задачи совпали с задачами, которые интересны rock star — очень и очень большая удача и счастливое стечение обстоятельств, не более. Но если завтра rock star-у взбредет в голову контрибьютить в GHC вместо улучшения вашей сборки MySQL — то у вас будет ограниченное количество времени чтобы быстро и решительно его уволить. При попытке заставить оного вернуться к своим задачам — получите, в зависимости от темперамента и ваших soft skills, или конфликты или тихий провал сроков. Ну хорошо хорошо, чтобы людей так капитально разворачивало — это бывает редко и происходит постепенно, да. А вот обратная ситуация — если пересадить rock star с улучшения вашей сборки MySQL на улучшение GHC против его желания — бывает достаточно часто. И, как нетрудно заметить, приводит к аналогичным последствиям. И именно это обстоятельство делает rock star категорически неприемлемым для аутсорса.
Именно поэтому rock stars лучше всего чувствуют себя в продуктовых компаниях (например JetBrains), где им дают полную свободу в рамках одного продукта и полностью исключают внезапную смену скоупа задач (разве что только через увольнение). Люди получают возможность заниматься теми задачами, которые им интересны, самореализовываться, раскрываться и их при этом особо никто не дергает. Получается хорошая штука — окей, идет в релиз. Нет? Ну и черт с ним. В таких условиях rock stars пускают корни, живут весьма долго (до десятка лет) и им хорошо.
Со стороны менеджмента здесь требуется легкий и ненавязчивый контроль — так, чтобы rock star не разбредались и их не «заносило» в бесперспективные эксперименты. Ну и так же мягко доносить, что та или иная интересная ему разработка нерелевантна.
Есть другой замечательный пример работы с rock stars — это Google, в котором rock star-у дают возможность заниматься тем, что он хочет. Google их кормит, поит, одевает и защищает от внешних угроз. Взамен — все, что rock star наизобретает — будет принадлежать и продвигаться Google, превращаясь в его продукты. Fair enough. Эдакие посевные инвестиции в отдельно взятой компании.
Бэкграунд: лицей или другая хорошая школа, высшее образование в хорошем ВУЗе по IT-специальности или же математике. Круглый (хотя бы овальный) отличник. Вероятно, участие в серьезной научно-исследовательской деятельности (научные публикации как плюс) и/или олимпиадное программирование прямо со школы.
Ценит: покой (пока решает задачу), свободный ненормированный график с возможностью удаленной работы, адекватность менеджмента, возможность поработать с другими rock stars, сложные, интересные и нестандартные задачи, стабильное финансирование. Офисные плюшки или воспринимает как должное или игнорирует напрочь, но в целом не испытывает к ним особого пиетета.
Сильные стороны: сложные задачи, исследовательская деятельность, нередко проектирование.
Слабые стороны: зачастую наличествуют проблемы в коммуникации, отсутствует стрессоустойчивость, нестабильность в компании или проекте легко спугивает rock stars, жестко поставленные сроки превращаются в стресс, невозможность переключаться по предметным областям — только разве что по своему желанию. Не смотря на всю творческость, несамостоятелен за пределами своих задач.
Собеседование: алгоритмы и структуры данных, оценки сложности, олимпиадные задачи — ваши надежные друзья. Можно заставить разворачивать дерево на доске (но зачем?) — но гораздо лучше дать несложную математическую задачу. Главное не спешите и не торопите: дайте человеку подумать столько, сколько ему нужно. Творческие задачи, задачи на соображалку (ну только не про люки же!) и задачи на проектирование в формате «давайте порассуждаем» и «предложите решение» так же неплохи. В резюме смотрите на образование и публикации. Поспрашивайте про участие в олимпиадах, научно-практических конференциях, поинтересуйтесь темой дипломной работы. Если рассказывает с горящими глазами — вы нашли то, что нужно. Так же стоит удостовериться, что соискатель знает в совершенстве к��кой-нибудь язык программирования (любой), иначе не очень понятно как он будет реализовывать свои эксперименты.
Чего спрашивать не стоит: не задавайте глупых вопросов. К глупым вопросам относится: детали реализации чего-либо а-ля «а что делает HTTP-заголовок Content-Length?», вопросы про коммуникативные навыки и прочая психология (да, rock stars могут обладать абсолютно мерзким характером — но что поделаешь, такова плата за них), и уж тем более не заикайтесь и даже не думайте проверять стрессоустойчивость. Пунктуальность проверяйте только на уровне «не пропадает на неделю и ладно».
«1С:Предприятие» — это пакет программ от компании 1С, которые помогают автоматизировать бухгалтерский, кадровый и управленческий учёт на предприятиях: начислять зарплату, контролировать расходы, подготавливать отчётность.
1С-разработчик внедряет 1С, адаптирует софт под потребности клиента и следит, чтобы он стабильно функционировал и выполнял всё, что требуется.
Если кратко, то 1С-разработчик:
- Внедряет и настраивает типовые конфигурации 1С.
- Дорабатывает функционал под бизнес-процессы.
- Обеспечивает защиту данных и борется с вредоносным ПО.
- Создаёт дополнительные модули, отчёты, формы.
- Следит за обновлениями и устраняет ошибки после установки.
- Поддерживает базы данных компании и серверы, на которых работают программы.
- Делает бэкапы и настраивает параметры восстановления системы в случае сбоев.
- Интегрирует 1С с другими программами и системами.
- Составляет инструкции и оформляет техническую документацию.
- Учит сотрудников пользоваться 1С.
Сложность задач: высокая, как и уровень ответственности
Зарплата: от 40 000 ₽ до 500 000 ₽
Сколько в среднем учиться: 8–16 месяцев
Программирует внутреннюю часть сайта, работает на языке Python или PHP. Отвечает за правильную обработку данных: например, чтобы товары в интернет-магазине попадали именно в вашу корзину, а не чью-то другую, чтобы работала форма оплаты, приходили автоматические письма.
Ошибки бэкендеров видны не сразу и стоят дороже, чем у фронтендеров. Например, по их вине могут не создаваться заявки в интернет-магазине.
Часто происходят ситуации, когда фронтендеры устают от согласований с клиентом и переходят в бэкенд. Также часто разработчики осваивают сразу две специальности.
Интересные факты о профессии
День программиста – отмечается 12 сентября. День выбран не случайно и символично: это 256-й день года, а 256 это количество чисел, которые могут быть выражены через восьмиразрядный байт.
Профессия программиста входит в десятку самых востребованных профессий мира.
С четверть всего времени в программировании уходит на размышления о том, что пользователь может сделать не так и как это предотвратить.
Язык программирования Python назван совсем не в честь питонов, хотя иконки, логотипы и повсеместные фанатские изображения изображают именно их. Автор языка любил сериал «Летающий цирк Монти Пайтона» и назвал язык в честь него.
Самый дорогой дефис в истории стоил 135 000 000$, когда благодаря пропущенному дефису в одном из уравнений вскоре после старта потерпел крушение Маринер-1, первый космический аппарат для изучения Венеры.
Программист – не специалист по ремонту компьютеров. Хотя благодаря укоренившимся стереотипам их постоянно просят починить компьютеры и даже бытовую технику.
Женщины занимают всего несколько процентов от общего числа программистов в мире. Обидно, особенно учитывая тот факт, что первым в истории программистом была именно женщина.
Иногда для отладки программы программисты используют так называемый «Метод утёнка», когда перед монитором ставится фигурка утёнка (классический вариант – жёлтый утёнок для купания) и строчка за строчкой ей объясняется, что должна делать программа. Часто такой метод позволяет выявить ошибки, которые пропускаются просто просматривая написанный код.
Должностные обязанности
Профессия программиста является творческой, несмотря на все мифы о том, что создавать программный код – это скучно. Область деятельности специалистов весьма обширна: от компаний по созданию компьютерных игр и промышленных организаций, до ракетостроения и научных институтов.
И вот в чем заключается работа программиста:
- Составление алгоритмов для решения научно-технических задач.
- Анализирование уже готовых программ, созданных чужими предприятиями, и определение их эффективности и возможности использования для удовлетворения требований работодателя.
- Разработка различного рода программ на основе алгоритмов и математических моделей, применяемых для решения технических задач.
- Унификация и типизация вычислительных процессов.
- Разработка форм документов, подлежащих машинной обработке.
- Создание сервисов для автоматического перевода на языки программирования.
- Разработка макетов и схем ввода, выдачи, обработки и хранения информации.
- Тестирование и исправление ошибок в разработанных программах.
- Создание инструкций к программам.
- Разработка и внедрение методов автоматического решения для типовых, стандартных задач.
- Участие в проектных работах по расширению области применения вычислительной техники.
- Разработка и усовершенствование продуктов программирования.
- Запуск программного обеспечения.
- Разъяснение простыми словами условий и инструкций по работе с программами обычным пользователям.
- Создание и внедрение различных системных возможностей для автоматической проверки программ.
Кроме самого процесса изучения языка программирования, человек во время его освоения и до момента получения первых положительных результатов (для каждого успех будет своим) столкнётся с огромным количеством преград и сложностей.
- Откладывайте деньги. От момента открытия руководства или книги до дня, когда получите первое предложение или вас выберут исполнителем на бирже фриланса, может пройти 2-3 месяца. На этот период необходимо обеспечить свою семью финансово. Лучше с небольшим запасом. Иначе придётся бросать книги и идти работать.
- Согласуйте и обсудите решение с семьей, взвесьте все плюсы и минусы: изучение ЯП после работы, увольнения с текущего места работы, дополнительные расходы на самообразование. Весь процесс должен быть распланирован как можно подробнее, учтены все возможные последствия (мыслим как программист) и подготовлены альтернативные варианты развития событий (вдруг после месяца труда так и не получилось ничего понять).
- Регулярные занятия. Чтобы добиться успеха, программированию необходимо уделять по пару часов в день без длительных перерывов. В процессе освоения ЯП перерывы нужно делать каждые 15-30 минут и несколько минут отдыхать.
- Долго не мотайтесь от одного языка программирования до другого. Как показывает статистика, немногие разработчики кодят на том языке, который учили первым. Вскоре после обзаведения достаточным для дальнейшего прыжка в развитии опыта вы смените язык программирования на среднеуровневый (C). В процессе проникновения в код программ многое меняется, как и ситуация на рынке.
- Общение и обмен опытом с единомышленниками в различных коммьюнити, чатах и на форумах.
- Смена рода деятельности. Планируйте день таким образом, чтобы в нём находилось место всему, чем занимались до изучения программирования. Особенно спорту и связанными с движением видам деятельности.
- Учите английский язык хотя бы на уровне понимания значения слов операторов. Его знание на высоком уровне будет плюсом при трудоустройстве, понадобится для чтения книг и интернет-ресурсов на английском.
- Обзаведитесь наставником, который даст совет, подучит, подскажет, поделится опытом, подкорректирует «путь» и т.д. Таких людей можно найти через интернет и платить им за консультации (это не всегда), среди знакомых и их знакомых. Лучше всего обратиться к другу-программисту, если такой есть.
- Неудачи и сила воли. Будут в процессе самообучения ситуации, когда после многих часов или даже нескольких дней решение какой-либо задачи так и не приблизится. Появится желание отдохнуть, забросить учебники вместе с программированием, включить игру или фильм и заняться чем-то иным, полегче. Отдых нужен, но не больше. После него с новыми силами возвращаемся к поиску решений. Порой они находятся спонтанно.
- Пишите собственные программы, для себя. Пускай они будут простыми, но это опыт, плюс в портфолио.
Существует множество видов программирования: от написания софта для микроконтроллеров и мобильных приложений до создания компиляторов и целых операционных систем. Подобных профессии программиста, соответственно, тоже довольно много: начиная от математических расчетов и разработки алгоритмов до создания архитектуры крупных проектов, коды которых составлены на различных языках программирования. В создании программного продукта участвуют: сценаристы, алгоритмисты, кодеры, дизайнеры, верстальщики, отладчики, переводчики и архитекторы.
Важно на этапе подготовки проекта и его тестирования привлекать потенциальных пользователей, чтобы в процессе создания учитывать их рекомендации для удобства пользователя. На подготовительном этапе необходимо взаимодействие создателя алгоритма, дизайнера и потенциального потребителя с целью определения необходимой функциональности и создания дружественного для пользователя интерфейса. В процессе создания алгоритма необходимо участие его разработчика, кодировщиков программных модулей и архитектора проекта
А при разработке веб-приложений привлечение дизайнера и HTML-верстальщика просто необходимо
В процессе создания алгоритма необходимо участие его разработчика, кодировщиков программных модулей и архитектора проекта. А при разработке веб-приложений привлечение дизайнера и HTML-верстальщика просто необходимо.
Бизнес-аналитик фактически является переводчиком требований и пожеланий заказчика на язык, понятный разработчикам. Заказчик, как правило, ставит задачу неконкретно, не зная тонкостей программного процесса, поэтому бизнес-аналитик, выслушав пожелания клиента, создает формальное описание проекта, формируя его в виде технического задания. Эта работа должна совместить бизнес-логику заказчика с возможностями реального воплощения.
Все указанные специалисты должны как минимум ориентироваться в смежных профессиях, чтобы в процессе разработки не возникало недопонимания между специалистами. В идеале дизайнер должен примерно знать HTML-верстку и владеть навыками работы в «Фотошопе», а кодировщик – уметь работать с несколькими языками программирования и владеть искусством отладки. Совсем неплохо, когда программисты владеют как математическими приемами, так и архитектурным искусством собирания и связывания программных модулей, написанных на разных языках программирования.
Карьера программиста может складываться в двух основных направления: повышение профессионализма в выбранном сегменте создания продуктов и в управленческом совершенствовании. Лучшие архитекторы, менеджеры проектов и IT-директора выходят из среды программистов, так как знают изнутри всю «кухню» программных разработок.
Как стать программистом с нуля?
Существует три основных пути того, как программист с нуля может стать высококвалифицированным спецом:
- Первоначально специфика того, кто такой программист, предполагает поступление в профильное учебное заведение. В нем студенты получают огромную теоретическую базу и некоторые практические навыки.
- Окончание платных коммерческих курсов. Их преимуществами является наличие практических заданий и возможность трудоустройства при наличии выдающихся результатов обучения сразу после его окончания.
- Самообучение языкам программирования и нюансам работы путем штудирования профильной литературы, изданий и интернет-порталов. Этот путь потребует от человека большой целеустремленности и дисциплинированности.
Junior, middle, senior
Разобравшись, какие бывают программисты по виду деятельности, необходимо упомянуть уровни специализаций. Они действуют на все подвиды и зависят от опыта и глубины имеющихся знаний.
Junior – это новички, только вошедшие в профессию, практически не имеющие опыта работы. Но, например, фуллстек-новичок ценится выше новичка-бэкенда или фронтенда, потому что его знания обширнее. Middle имеет средний уровень, такие работники составляют основной костяк любой IT-команды, они «рабочие винтики», выполняющие рядовые задачи средней сложности. Senior обладает исключительными знаниями в своей области, обширным опытом. Он способен видеть картину в целом, нередко на достаточном уровне знаком со смежными областями.
Каждый специалист отвечает за свою зону разработки. В широком смысле программисты делятся на «клиентских» и системных. Далее идет градация по функциональным зонам: веб-разработка, софт, игры, приложения, 1С. Отдельной группой стоят DevOps-инженеры, являющиеся мостом между прикладными и системными спецами, на их плечах лежат процессы отладки, автоматизации, синхронизации работы двух областей. Каждый IT-работник имеет достаточно узкую специализацию с глубокими прикладными знаниями, за счет которых он востребован на рынке труда.
Тимлид — это первая ступень в ИТ-менеджменте. Написание кода становится его второстепенной задачей, теперь разработчик — максимально многозадачный участник компании. Он начинает заниматься договорами, бухгалтерией и другой бумажной работой. Следить, как пишут код участники команды и параллельно делегировать то, что можно делегировать. Что нельзя — решать самостоятельно. Показателями эффективности работы будут качество проекта, время его разработки и мотивированность участников. Тимлид в ответе не только за свой профессиональный рост, но и за развитие всей команды. Ему нужно нанимать людей и отбирать специалистов и, самое интересное, в любой момент быть способным подменить каждого из них.
Программирование роботов и умных устройств
Многие программисты говорят, что высший пилотаж — писать специальный код под конкретную микросхему или устройство. В этом случае вы получаете полный контроль над железом и можете управлять чем угодно: микроволновками, ракетами, фотоаппаратами, сигнализацией, умным домом, электроникой в автомобиле и даже ядерными реакторами.
Быстрого старта тут не получится — нужно знать устройство и архитектуру микросхем, низкоуровневое программирование и управлять памятью напрямую.
Но есть обходной путь — начать с робототехники и программирования для Arduino и Raspberry Pi — это специальные платы для начинающих. Посмотрите, какие крутые штуки можно с ней делать:
- 10 крутых вещей, которые можно сделать на Raspberry Pi
- То же, но на Arduino
- Змейка на Arduino
- Цифровая камера из старого полароида
В мире есть целое сообщество хоббистов, которые пишут программы для Arduino и Raspberry Pi и собирают на их основе интересные проекты. В России самый простой вход в Arduino делает компания «Амперка» — у них есть наборы для старта работы с Arduino и всякими полезными радиодеталями.
Как стать программистом
Читать: 8 мин.
Правда ли, что программирование — ну самая востребованная специальность в мире? Кто такие системные и прикладные программисты? Сколько лет нужно учиться на программиста? В какой вуз и колледж поступить, чтобы стать программистом?
Говорят, что в мире есть 10 видов людей. Те, кто понимает двоичный код… и те, кто не понимает.
Юмор программистов
Программирование зародилось в XIX веке, и до середины XX века, когда случился бурный рост информационных технологий, создание программ для машины было сродни искусству. Программирование было уделом избранных. Сегодня же профессия программиста распространена и очень востребована. В 2017 году в мире насчитывалось 18.2 млн разработчиков программного обеспечения, из них 1.3 млн — в России.
Давайте посмотрим, какое будущее у профессии программиста. И что ему угрожает.
Инженер прикладного программного обеспечения
Данный вид программистов создает не системное, а прикладное ПО. Это программы, или приложения, которые взаимодействуют с пользователем непосредственно. Например, текстовые и графические редакторы, базы данных, аудио и видео плееры.
Работа прикладного инженера заключается в написании кода, его последующей компиляции, отладке и тестировании. Иногда специалист обновляет или вносит изменения в уже существующее ПО. Для программирования использует высокоуровневые языки Java, C#, C++, Python, PHP. Прикладные программисты редко трудятся в одиночку. В основном, они являются участниками стартапов, или входят в штат сотрудников компании, занимающейся разработкой компьютерного софта.
«Программист» – интересная и разнообразная профессия с множеством направлений и специализаций. Одни делают виджеты для сайтов и проектируют API, другие пишут код для серверов или корпят над графикой Disciples III. Каждый, кто любит программировать, может реализовать себя в веб-разработке, стать именитым создателем игр или писать программы для спутников НАСА.
Front-end разработчик
Эти программисты специализируются на интерфейсах. Все кнопочки на экране, которые вы можете нажимать, выпадающие меню, и весь внешний вид сайта или приложения – их сфера деятельности. Т.е. Front-end – это работа над динамикой интерактивных интерфейсов. Кроме того, при отсутствии верстальщика от Front-end разработчика могут потребовать работу с HTML-кодом (верстку шаблонов).
Специальность востребована в крупных средних веб-студиях и других типах компаний, занятых в сфере сайтостроения и разработки приложений.
Необходимо знать технологии:
Также важно понимать, что такое адаптивная и мобильная верстка, изучить работу популярных CMS, разбираться в серверных технологиях и принципах бэкэнда, изучить основы SEO-оптимизации, работу с веб-шрифтами, уметь пользоваться Photoshop, Illustrator, другими графическими редакторами.