Популярное
Свежее
Моя лента
Сообщения
Рейтинг
Пополнить Steam
Низкая комиссия
Темы
Игры
Гайды
Офтоп
Вопросы
Ночной музпостинг
Творчество
Hollow Knight
Кино и сериалы
Музыка
Инди
Показать все
DTF
О проекте
Правила
Реклама
Приложения
Аккаунт удален
01.10.2021

Статья удалена

На днях я получил оффер и скоро выхожу на работу в качестве Junior C# Unity программиста (порадуйтесь за меня). Так сказать, вошёл в IT, и теперь IT будет регулярно входить в меня)

Приготовился получать свои 300к в 2,3е7 секунд
Приготовился получать свои 300к в 2,3е7 секунд

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

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

0. Лучшее время начать учиться — прямо сегодня

Банально, но правда. Лучше учиться хоть по 15 минут в день, чем ждать волшебного подходящего момента.

1. У Unity есть отличные обучающие материалы

Начни с основ:

learn.unity.com
Unity Essentials - Unity Learn

Тут тебе подробно и доступно объяснят, какие роли существуют в командах разработки, что такое движок Unity и где его применяют, как не теряться в миллионах панелек и менюшек и т.д.

Как ты заметил, все материалы Unity Learn на английском, но это не беда.

Во-первых, рано или поздно тебе всё равно придётся подтянуть язык хотя бы до уровня 9 класса.

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

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

В-четвёртых, весь материал написан очень простым и живым языком с обилием шутеек. Почти ко всем видео доступны субтитры.

Наконец, Гугл довольно сносно переводит содержимое страничек.

Статья удалена

Когда освоишься, самое время переходить к более практическим навыкам:

learn.unity.com
Junior Programmer - Unity Learn

Тут тебя за ручку, по пунктам, от А до Я проведут по всем основным возможностям движка, объяснят ключевые понятия и полезные практики, расскажут про основы программирования на C# и ООП. В процессе обучения будет предложено решить пару десятков задач разной степени сложности: имплементации фич, дебаг проектов, элементарный рефакторинг и оптимизация, работа с отзывами игроков — скучно не будет.

Хорошим дополнением будут мини-курсы:

learn.unity.com
Beginner Scripting - Unity Learn
learn.unity.com
Intermediate Scripting - Unity Learn

В принципе, если стоит задача писать простенькие гиперказуалки а-ля Flappy Bird, полученных знаний уже будет достаточно. Можно смело приступать к изучению рынка труда или написанию домашнего проекта.

2. metanit.com

metanit.com
Язык программирования C# и платформа .NET

Этот сайт будет тебе надёжным другом и товарищем в деле освоения кодинга. Помимо объёмного, весьма подробного, отлично структурированного и понятного Руководства по C# на сайте есть примеры тестовых вопросов, очень ценная секция комментариев и сопровождающие видео почти к каждой теме.

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

Лично я рекомендую к изучению главы Руководства с 1 по 6 и 9. Для джуна хватит на первое время, но лучше хотя бы ознакомиться с полным оглавлением для того, чтобы быть хотя бы в курсе о существовании некоторых фишек.

Также, очень рекомендую проработать разделы, посвящённые относительной сложности алгоритмов и принципам SOLID.

3. RTFM

Статья удалена

Хихоньки, конечно, хахоньки, но официальный мануал действительно очень полезный и к тому же содержит неплохие примеры практик и кода. Не ленись почитать его, а не просто первую ссылку на stackoverflow в гугле.

То же самое касается и Scripting API

docs.unity3d.com
Unity - Manual: Unity User Manual 2020.3 (LTS)

4. Код стайл

Достаточно горячая тема, включающая в себя рекомендации по наименованиям, стилю и оформлению кода. Кто-то уповает на официальный C# Coding Conventions, кто-то считает, что стиль не бывает неправильным, а лишь непринятым в данной конкретной команде. Короче, это как вопрос этикета — лучше изучить и намотать на ус, но применять к месту и не холиварить по пустякам.

github.com
runtime/coding-style.md at main · dotnet/runtime

5. Паттерны, рефакторинг и прочие умные слова

Шаблоны игрового программирования помогут тебе использовать типовые архитектурные решения, а не изобретать велосипед в сотый раз. Знать всё не обязательно, но ознакомиться советую.

gameprogrammingpatterns.com
Table of Contents · Game Programming Patterns

К тому же существует неофициальный перевод на русский.

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

refactoring.guru
Рефакторинг: говнокод → конфетка

6. Дополнительная инфа

Не стесняйся рыться в как можно большем количестве источников информации. Тут я перечислю только некоторые места, которые мне понравились.

Каналы с видеоуроками и примерами реализаций фич из различных игр на Unity:

www.youtube.com
Brackeys

https://www.youtube.com/c/CodeMonkeyUnity

Блог с переводами различных статей от разработчиков и не только:

habr.com
PatientZero - Переводчик-фрилансер / Хабр

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

www.lektorium.tv
Медиатека | Лекториум

Онлайн книга на случай, если хочешь поподробнее узнать про системы контроля версий, а точнее про git:

git-scm.com
Git - Book

Онлайн книга на случай, если хочешь как следует обмазаться матчастью, а именно мат аппаратом 3D графики и аналитической геометрии:

gamemath.com
Introduction - 3D Math Primer for Graphics and Game Development

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

www.codewars.com
Codewars: Achieve mastery through challenge

Отличный пост-подборка про Computer Science, которую опубликовал товарищ Sam Tokov

dtf.ru
Computer Science | что читать/смотреть — Офтоп на DTF

7. Собеседования

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

Самый полный и полезный гайд, что я встречал. Хотя половина вопросов на моих собесах были не из представленного списка, но понимание общего процесса сильно помогло не растеряться:

habr.com
Как проходить собеседования на Unity разработчика

Ещё немного вопросов по разным темам:

coremission.net
Вопросы для собеседования Unity3d программиста – CoreMission

Вопросы по C# и .NET

metanit.com
Собеседование по C# и .NET

8. Книги

Как ты мог заметить, все материалы, на которые я уже оставил ссылки, были бесплатными и общедоступными. Теперь же поговорим о книгах, каким бы путём ты их не получил

CLR via C#. Программирование на платформе Microsoft.NET Framework 4.5 на языке C# Рихтер Джеффри
CLR via C#. Программирование на платформе Microsoft.NET Framework 4.5 на языке C# Рихтер Джеффри

Эта книга подробно описывает внутреннее устройство и функционирование общеязыковой исполняющей среды (CLR) Microsoft .NET Framework версии 4.5. Книга научит вас создавать по-настоящему надежные приложения любого вида, в том числе с использованием Microsoft Silverlight, ASP.NET, Windows Presentation Foundation и т.д.
Четвертое издание полностью обновлено в соответствии со спецификацией платформы .NET Framework 4.5, а также среды Visual Studio 2012 и C# 5.0.

Из аннотации
Разработка игр на Unity 2018 за 24 часа Майк Гейг
Разработка игр на Unity 2018 за 24 часа Майк Гейг

Обо всём понемногу, хорошо подходит как обзорный материал для новичков.

Unity в действии. Мультиплатформенная разработка на C# Джозеф Хокинг
Unity в действии. Мультиплатформенная разработка на C# Джозеф Хокинг

Хорошо структурированный материал с обилием листингов (иногда встречаются опечатки) и описанием некоторых алгоритмов и приёмов проектирования игр. Не подходит для полных новичков в программировании. Подходит для вкатывания в Unity, если ты уже умеешь писать хоть какой-то код.

Грокаем алгоритмы. Иллюстрированное пособие для программистов и любопытствующих Адитья Бхаргава
Грокаем алгоритмы. Иллюстрированное пособие для программистов и любопытствующих Адитья Бхаргава

Отличный справочник по введению в базовые алгоритмы. Не все темы релевантны в геймдеве, но фундамент закладывается неплохой.

Код. Тайный язык информатики Чарльз Петцольд
Код. Тайный язык информатики Чарльз Петцольд

Отличный научпоп с описанием работы систем кодирования, электрических устройств, прообразов современных ПК, историческими экскурсами и просто интересными сведениями. Настоятельно рекомендую к прочтению в свободное время.

Мифический человеко-месяц, или Как создаются программные системы Фредерик Брукс
Мифический человеко-месяц, или Как создаются программные системы Фредерик Брукс

Нетленка об истории развития индустрии разработки ПО, организации и управлении рабочего процесса.

Ещё можно почитать что-нибудь из следующего списка (сам не проверял, но люди рекомендуют):

tproger.ru
Топ-25 самых рекомендуемых книг по программированию

В заключение

Я оставил множество ссылок, информации в интернете колоссальное количество. Не пугайся, учить всё это от корки до корки не обязательно)

Знать всё на свете не реально (ну, ты понял)
Знать всё на свете не реально (ну, ты понял)

Никто на свете не знает всего о программировании и уж точно всего о геймдеве. Сеньорами не за пару месяцев становятся, тебе предстоит ещё много лет учиться, набираться опыта и набивать шишки.

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

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

#unity #csharp #gamedev #programming #ссылки