Что должен знать Unity-разработчик
Unity — удобный движок, поэтому многим кажется, что порог вхождения в профессию разработчика крайне низок. Но на деле всё не так просто. Если вы хотите стать востребованным программистом, нужно иметь глубокие знания во многих сферах.
Для начала «прокачайте» базовые навыки. Вот что вам потребуется в первую очередь:
- Знание языка C#. Речь здесь идет не только об основах (переменных, циклах и т.п.), но также об ООП, объектах, типах и ссылках. Под «знанием» подразумевается использование этих навыков, пусть и на простых тестовых проектах. Дополнительно нужно освоить алгоритмы (+ высчитывать их сложность) и структуры данных.
- Знание Unity. Уделите внимание простым манипуляциям с объектами и сценой, а также созданию и использованию скриптов. Но это лишь малая часть всех требований. Необходимо хотя бы поверхностно познакомиться со всеми возможностями движка и дополнительно разработать несколько разных проектов, например, платформер, казуальную игру, гонки, РПГ.
- Английский язык. В основном он потребуется для написания кода и чтения иностранных статей, например, на stackoverflow. В меньшей степени — для общения с коллегами и обучения.
Навыки, которые перечислены ниже, тоже нужны, но отсутствие 1-2 из них не будет критичным для начинающего Unity-разработчика:
- Фреймворк .NET Framework (CLR). Рекомендуем прочитать «CLR via C#» Джеффри Рихтера и реализовать пару тестовых проектов. Выучить все классы фреймворка невозможно, здесь важнее умение пользоваться MSDN для поиска информации.
- Git, GitHub. Необходимо знать, как добавить файлы, закоммитить, запушить, создать и объединить ветки. Учиться этому нужно с помощью консольных команд.
- Photoshop, Blender-3D. Глубоких знаний от вас не ждут. Но вы должны понимать основы, чтобы суметь открыть исходники и выполнить нарезку макета.
- Математика, в частности, геометрия. Стереометрия требуется не всегда, но она в любом случае станет вашим преимуществом при разработке 3D и 2D игр.
- Visual Studio Code. Именно он используется для отладки кода в 99% случаев. Для более быстрой работы стоит изучить горячие клавиши.
- Codestyle и организация файлов в проекте. Об этом не спросят на собеседовании, но если вы планируете демонстрировать портфолио, примеры своего кода на GitHub, то уделите данным пунктам внимание.
- Паттерны. На начальном этапе требуют «Одиночку» и «Абстрактную фабрику», но знание других паттернов, например, MVC и Components and systems/controllers, будет плюсом.
- Agile, Scrum. Методологии используются для работы в команде. Знание их основных принципов позволит быстрее влиться в процесс.
Большая ошибка думать, что вы как новичок можете прийти к наставнику и попросить написать код за вас. Никто этого делать не будет. От вас ждут самостоятельности в решении задач. Роль куратора сводится лишь к тому, чтобы сказать вам, какой вариант правильный и где можно посмотреть информацию, если вы не знаете, что делать.
Работодатели ждут от начинающих Юнити-разработчиков самостоятельности, умения искать ответы.
Основная часть рабочего времени девелопера уходит не на написание кода — на это тратится лишь 10% усилий. Половину дня занимает обсуждение проекта, его архитектуры, классов, их наименований. Другую часть дня — обдумывание, как грамотно написать код, а также тестирование, устранение различных ошибок, поиск оптимальных решений.
Где учиться на Unity-программиста
Есть несколько вариантов, как стать Юнити-разработчиком. У каждого имеются свои преимущества и недостатки. Выбор образовательной траектории зависит от того, сколько времени и средств вы готовы потратить на обучение.
Вуз
Классический вариант — высшее учебное заведение. Рассмотрим его плюсы и минусы.
Преимущества | Недостатки |
---|---|
Диплом государственного образца | Жесткие сроки для сдачи сессий |
Возможность поступить на бюджет | Длительность |
Практика и стажировка | Практики меньше, чем теории |
Глубокое погружение в теорию | Не всегда актуальные программы |
Нетворкинг | Наличие «лишних» дисциплин |
Специальность Unity developer можно получить во многих вузах страны. Здесь приведен полный список учебных заведений.
Online-курсы
Если хочется стать Юнити-программистом как можно скорее, лучше выбрать краткосрочные онлайн-курсы. Но и тут есть свои нюансы.
Преимущества | Недостатки |
---|---|
Преобладание практики | Дороговизна |
Быстрое освоение профессии | Сложно найти качественную программу |
Удобный график обучения | Часто формальная обратная связь |
Диплом или сертификат | «Вес» сертификата зависит от учебного учреждения |
Актуальная информация | Слабый нетворкинг |
При выборе курсов обратите внимание на следующие моменты:
Количество часов, отведенное на обучение. Посмотрите, сколько времени заложено на теорию и практику, какие темы будут освещены.
Формат обучения. Идеальный вариант — стрим в небольших группах с возможностью задать вопрос преподавателю в чате. Хуже, если обратная связь не предусмотрена.
Размер группы. Индивидуальное обучение на Unity-разработчика нецелесообразно, так как командная работа — одна из главных особенностей игровой индустрии. Однако слишком большие группы означают, что во время лекции вам не будет уделено много внимания. Оптимально, если на занятии одновременно присутствует 8-10 человек.
Количество проектов в портфолио. Разумеется, чем их больше, тем лучше. Но гораздо важнее не число, а сложность проектов. Хорошо, если в портфолио будут разные игры: сетевые, мобильные, RPG, стратегии, шутеры, гонки (с физикой).
Личный куратор. Его задача — проверять код, давать советы по решению задач, комментировать ошибки. Грамотный наставник замотивирует, подскажет, где искать информацию.
Трудоустройство. Самый лучший вариант, если после курса будет выбрано несколько студентов, которых направят на стажировку в компанию. Но такое встречается редко. Чаще всего под помощью в трудоустройстве понимается составление резюме и тренировка в прохождении собеседования. Впрочем, даже это иногда входит в отдельную плату.
GeekBrains | Skillbox | Нетология | SkillFactory | |
---|---|---|---|---|
Длительность, мес | 18 | 20 | 11 | 12 |
Проектов в портфолио по итогу курса | 8 | 10 | 6 | 4 + прототип игры в конце |
Документ об окончании | Диплом | Сертификат | Удостоверение | Диплом |
Рекомендации по прохождению курсов:
- Задавайте вопросы. Если вы сомневаетесь в том, как вы поняли информацию — значит, вы ее не поняли. Уточняйте!
- Если предложат определиться с проектом самостоятельно — выбирайте максимально сложный, но в рамках разумного.
- Практикуйтесь много. Не откладывайте выполнение работы, делайте всё сразу.
- Дипломный проект готовится в команде совместно, но некоторые участники могут покинуть группу. Учитывайте это и заранее выбирайте себе компаньонов среди сильнейших.
Самостоятельное обучение
Один из самых рискованных способов получить профессию, но часто бывает так, что у человека просто нет возможности поступить в вуз или пройти дорогостоящий курс.
- Обучение идет почти без затрат. Мелочи, вроде покупки книг, можно не учитывать.
- Самый удобный график. Но и тут не надо думать, что сможете прерваться на месяц-другой, а потом продолжить. От вас все равно потребуется регулярное интенсивное обучение, иначе нет смысла даже начинать.
- Теории в интернете достаточно, но и трактовок тоже. Как выбрать, что нужно читать, а что оставить на потом или совсем не открывать?
- Видеотуториалов на ютубе можно найти много. Проблема в том, что код, который демонстрируют блогеры, часто оставляет желать лучшего. Опять же новичку трудно найти способ оценить его.
- Отсутствуют гарантии качества полученных знаний. Все зависит от того, какие книги, сайты вы используете.
- Полное отсутствие общения. Это на старте покажется мелочью, но за полгода-год упорной учебы, совмещенной с основной работой, оно будет необходимо как воздух. Здесь есть выход — познакомиться с разработчиками на форумах или в социальных сетях.
- Отсутствие «корочек». Подтвердить свою квалификацию вы сможете на собеседовании или при выполнении тестового задания, но до этих этапов нужно еще дойти.
- Трудоустройство будет сложным. Без опыта вас даже на позицию junior рассматривать не будут. Надо брать тестовые задачи или ставить себе их самостоятельно.
Но на самом деле не всё так страшно. Изучить программирование самостоятельно можно, просто понадобится больше усилий. Рассмотрим по шагам, как стать Юнити-разработчиком с нуля без образования.
Шаг 1. Освойте язык программирования. Предварительно изучите редактор кода Visual Studio Code, меню, горячие клавиши и прочее.
- Гоша Дударь: Изучение языка C# для начинающих;
- Школа itProger: Уроки C# для начинающих / Программирование на C#;
- #SimpleCode: C# уроки | C# от новичка к профессионалу.
После этого можно перейти к литературе. При выборе книг смотрите на издание и год выпуска.
- «C# для чайников», Мюллер Д. П.
- «Алгоритмы. Руководство по разработке», Стивен С. Скиена.
- «C# для профессионалов. Тонкости программирования», Скит.
- «Паттерны проектирования на платформе .NET», Сергей Тепляков.
Шаг 2. Изучите .NET. Не нужно глубоко погружаться в тему, в .NET Framework собрано множество элементов: ASP.NET, WPF, LINQ, .NET Core и других. Вам потребуется хотя бы поверхностно ознакомиться с ней для расширения кругозора.
- CODE BLOG: CLR via C#. Джеффри Рихтер;
- Павел Новиков: .NET ASP.NET Базовый курс;
- Eugene Popov: Видеокурс по ASP.NET MVC 5.
Далее можно переходить к чтению профильной литературы.
- «CLR via C#», Джеффри Рихтер.
- «C# 7 и .NET Core . Кросс-платформенная разработка для профессионалов», Прайс.
- «Язык программирования C# 7 и платформы .NET и .NET Core», Троелсен и Джепикс.
- «C# 7.0. Карманный справочник», Джохеф и Бен Албахари
- «C# 7.0. Справочник. Полное описание языка», Джохеф и Бен Албахари
Шаг 3. Освойте Unity. Это ваш основной инструмент, поэтому ему уделите максимум времени. Работайте с современной версией движка.
- «Unity» на английском языке;
- Игродел Мастер: «Официальные уроки Unity Юнити на русском»;
- Victoria Shenkevich: «ITVDN — Unity»;
- НОУ ИНТУИТ: «Разработка игр на Unity»;
- «TheGameDev».
Книги больше подходят для изучения теории. С практикой всё сложнее, так как нельзя добиться нормальной демонстрации возможностей движка при отсутствии анимации.
- Unity и C#. Геймдев от идеи до реализации», Бонд Д. Г.
- «Геймдизайн. Как создать игру, в которую будут играть все», Шелл Джесси.
- «Unity в действии. Мультиплатформенная разработка на C#», Хокинг.
Шаг 4. Изучите дополнительные инструменты. В первую очередь Git и GitHub, без них командная работа будет невозможна. Кроме того, нужно познакомиться с графическими редакторами. Конечно, выполнять функции дизайнера вам не придется, но элементарно уметь просмотреть исходники вы должны.
Шаг 5. Практикуйтесь. Для закрепления знаний по C# можно использовать сайты с задачами или тестами по языкам программирования, например, Itproger.com и C-sharp.pro.
- CUBE COMPANY: Создание 2D Платформера на Unity.
- VETALKOV: Создание игры Space Shooter на Unity.
- IK: Unity3d. Создание игры от 3-го лица.
Как устроиться на работу Unity-разработчиком
Обучение — хоть и самая важная часть, но с нее всё только начинается. После изучения теории и тренировки сразу приступайте к поиску работы. Рассказываем, что для этого потребуется.
Создать портфолио. При отборе на позицию Untity-разработчика работодатели не предъявляют жестких требований к опыту кандидатов. Здесь гораздо важнее проекты. Как их получить? Самый простой вариант — сделать игру самостоятельно. Лучший выход — объединиться с несколькими новичками и создать пусть один, но сложный проект. Желательно, чтобы он был с открытым исходным кодом.
Другой вариант — взять тестовую задачу у работодателя. Просто напишите письмо, где прямо укажите, что у вас нет реализованных проектов, но вы уверены в своих силах и готовы продемонстрировать свои навыки на практике. После выполнения задания, выложите код на GitHub. Так вы покажете компании, на что способны, и одновременно начнете собирать портфолио.
Еще один способ получить проект в портфолио — рефакторинг чужого кода. Но делать его нужно качественно, в соответствии с требованиями Microsoft guidelines. Разумеется, необходимо указать, что код не ваш.
Подготовить резюме. Подробнее о том, как должно выглядеть грамотное резюме Unity-разработчика, мы уже писали в отдельной статье.
Пройти собеседование. Чтобы повысить свои шансы, следуйте простым рекомендациям:
- Уделите внимание внешнему виду. Среди программистов не принят деловой костюм, но это не значит, что можно одевать мятую футболку. Вся одежда должна быть выглаженной, свежей, чистой.
- Не опаздывайте, лучше приходите заранее. Если планы поменялись, и вы никак не можете прийти вовремя, то перезвоните и перенесите собеседование.
- Демонстрируйте не только hard, но и soft skills. В первую очередь будут обращать внимание на ваше общение, поведение, отношение к работе.
- После технического собеседования проанализируйте, на какие вопросы вы ответили неправильно. Подучите материал, чтобы в следующий раз показать себя лучше.
Подведем итоги
Мы рассказали, как стать Unity-разработчиком: где получить знания, составить резюме и найти первую работу. Неважно, какой путь вы для себя выберете, помните о том, что легким он в любом случае не будет.
Не расстраивайтесь, если услышите отказ. «Прокачивайте» навыки и продолжайте поиск. Ваша задача — занять позицию джуна, а там не успеете оглянуться, как перейдете на уровень middle и уже сами начнете выбирать, где и на каких условиях работать.