Мастерство разработчика игр на Unity: секреты создания захватывающих проектов

Разработчики игр и ПО

Шаг 2. Получите инструменты

Чтобы создать игру в Unity, вам понадобится Unity. Вы можете скачать персональную версию здесь . Имейте в виду, что личная версия необходима только в том случае, если вы не получили более 100 тысяч долларов для финансирования или дохода от своей игры.

Начните с загрузки Unity Hub. Затем откройте концентратор, выберите «Установить» и нажмите «Добавить». В этом руководстве будет использоваться версия Unity 2019.2.14f1. Вы можете установить любые пакеты, которые хотите или для которых есть место. В этом руководстве игра будет запущена в Windows, поэтому убедитесь, что установлен флажок «Поддержка сборки Windows».

Мы используем Unity версии 2019.2.14f1

Вы также можете создавать графику для своей игры. Поскольку Unity использует пиксельную графику , я настоятельно рекомендую использовать GraphicsGale . GraphicsGale бесплатна, проста в использовании и обладает множеством функций. Однако вы можете свободно использовать любой удобный вам редактор, будь то Photoshop, Blender или Windows Paint.

Секреты успеха на фрилансе. Советы начинающим и опытным фрилансерам

Если есть какие-то грамоты, курсы, диплом о высшем образовании — надо это показать. Еще надо быть немного в том числе психологом, чтобы продать себя. Не думать, как программист, а думать, как заказчик, который хочет получить продукт. В том числе, кстати, ценится адекватное общение т.е. когда заказчик общается именно с исполнителем, а не посредником. Заказчики еще боятся переводить предоплату. Нужно ставить себя так: предоплата, даже минимальная, должна быть. Можно брать поэтапную предоплату. Или показывать “сырой” вариант, показывать клиенту — одобрит/не одобрит. Если одобряет — уже договариваетесь о предоплате.

Будьте осторожны со слишком дешевыми заказами: если этот заказ вам интересен и, возможно, он пойдет в портфолио — берите, если нет — он вам не нужен.

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

Кстати, мы ищем новичков в нашу команду! Нам нужны Unity-разработчики, разработчики смартконтрактов (blockchain) и веб-разработчики (php/python/nodeJs + js/vue/react/angular). Так что, если хотите попробовать — смело обращайтесь на почту [email protected].

Игры на Unity

На движке выпущены сотни мобильных, консольных, десктопных развлечений, игр с дополненной реальностью. Он применяется в архитектуре, строительстве, производстве (многими автогигантами, такими как Audi, BMW, Lexus, Volvo), при создании мультипликационных фильмов.

Игра с дополненной реальностью

С компьютерных игр отметим:

  • Cuphead – платформер в стиле экшена с мультяшной графикой.
  • Pillars Of Eternity – кроссплатформенная «ролевка».
  • My Friend Pedro – платформер с возможностью управления временем.
  • Rust – симулятор выживания.
  • Subnautica – симулятор выживания в море.
  • Valorant – многопользовательский шутер.
  • Death Carnival – динамичный шутер.
  • Escape from Tarkov – отечественная многопользовательская стрелялка с элементами RPG.

Мобильные развлечения на Unity: Age of Magic, Chaos Lords, Jurassic Monster World, Royal Blood, Guns of Boom, Pokemon Unite и Go.

Мультфильмы, созданные с помощью Unity: Dead Pixels​​​​​​​, Bonfire, Jigsaw.

Описание профессии

Разработчики игр на Unity постоянно взаимодействуют с одноименной средой разработки, включающей и специально подготовленные шаблоны (с текстурами, объектами и готовыми моделями), и визуальный редактор, предназначенный для настройки трехмерных сцен и проработки деталей, и сторонние инструменты, необходимые для проведения тестов.

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

По схожему принципу разработчики взаимодействуют с дизайнерами, собирающими текстуры для будущих персонажей, или тестировщиками, постоянно находящимися в поиске ошибок и технических неполадок. Работа в команде – важная часть профессии, а потому без знакомства с тем же Perforce, Plastic SCM, Git или Slack (а еще трекерами активности и системами выдачи задач) не выйдет.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Основные навыки и обязанности разработчика игр на Unity

Программирование на языке С#;
Разработка 2D и 3D игр на Unity 3D;
Умение работать с необходимыми фреймворками, создавать поведенческие и игровые сценарии, а также настраивать сетевую безопасность;
Знание принципов геймдизайна и основных паттернов проектирования игр;
Участие во всех этапах работы – создание, доработка, тестирование;
Важно следить за обновлениями в сфере игр;
Среди личностных качеств важно выделить умение работать в команде, так как часто над проектами трудится команда специалистов. Необходимо быть трудолюбивым, ответственным, усидчивым, стрессоустойчивым, и обладать креативным воображением, чтобы генерировать оригинальные идеи. 

Какими бывают разработчики игр

Давайте сразу разберемся, кто же такой в принципе разработчик игр (речь именно о программистах). Это человек, который пишет код игры. В наше время набрали высокую популярность отличные бесплатные игровые движки: Unreal, Unity и другие. Также можно написать свой движок, для этого предостаточно инструментов.

Можно работать в большой компании над крупным проектом, иметь свое направление, в которое углубляешься и которое развиваешь. Или пойти в небольшую инди-студию (организовать свою!) в надежде получить интересный проект с полной свободой творчества. А хочешь — становись фрилансером и работай с острова Бали. Тут каждый выбирает вариант по себе.

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

Какой из этих путей лучше? Не нашел для себя пока однозначного ответа. Например, я долгое время работал в одной компании — более пяти лет участвовал в нескольких крупных проектах, мне нравилась тематика игр плюс всегда была неплохая зарплата. Но, пожалуй, иногда наступает то самое профессиональное «выгорание», когда даже то, что действительно нравится, перестает приносить удовлетворение в работе. А на фрилансе временные затишья сменяются периодами активной работы, иногда над несколькими проектами. 

Разработка игровых механик и интерактивности

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

Junior unity разработчик должен быть знаком с различными типами игровых механик и уметь адаптировать их под конкретные игры.

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

Junior unity разработчик должен иметь базовые знания в области программирования и использовать различные техники и инструменты для разработки игровых механик и интерактивности. Это может включать в себя использование скриптовых языков, создание собственных компонентов, работу с анимацией и физикой.

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

Курс от Открытое образование

Что вы получите в этом практикуме?

  • Научитесь создавать 2D и 3D игры;
  • Освоите редактор Unity;
  • Изучите физику и скриптинг;
  • Сможете управлять игровыми объектами, а также создавать фон;
  • Освоите взаимодействие с объектами, их уничтожение и движение;
  • Поймете, как создавать пользовательский интерфейс;
  • Сможете собирать игры, добавляя звуки, устраняя ошибки, а также адаптируя их под разные платформы»
  • В завершении курса вам будет предоставлен сертификат.

Как проходит обучение?

  • Программа курса рассчитана на 6 – 10 часов в неделю;
  • Формат обучения – видеолекции, презентации, интерактивные формы, и видеоконференции;
  • В конечно итоге учащиеся должны пройти 3 зачета.  

Сколько стоит курс?

Стоимость обучения необходимо уточнять при размещении заявки.

Крайне важный GameObject

Практически все в вашей сцене является GameObject. Вспомните System.Object в .NET Framework. От него наследуют почти все типы. Та же концепция относится и к GameObject. Это базовый класс для всех объектов в сцене Unity. Все объекты, показанные на рис. 5 (и многие другие), наследуют от GameObject.

Рис. 5. Класс GameObject в Unity

Lights Источники освещения
3D Models 3D-модели
Sprites Спрайты
HUDs Игровые интерфейсы
Particle Systems Системы частиц
GameObject GameObject

GameObject довольно прост, так как он относится к окну Inspector. На рис

6 видно, что к сцене был добавлен пустой GameObject; обратите внимание на его свойства в Inspector. У GameObject по умолчанию нет визуальных свойств, если не считать того, что при выделении этого объекта появляется виджет Unity

На этом этапе это фактически пустой объект.

Рис. 6. Простой GameObject

GameObject имеет свойства Name, Tag (аналог тега text, присваиваемого через FrameworkElement.Tag в XAML или тегу в Windows Forms), Layer и Transform (пожалуй, это свойство самое важное). Свойство Transform определяет позицию, поворот и масштаб любого GameObject

Unity использует левостороннюю систему координат, в которой координаты на экране компьютера рассматриваются как X (по горизонтали), Y (по вертикали) и Z (глубина, т. е. входящие или исходящие из экрана)

Свойство Transform определяет позицию, поворот и масштаб любого GameObject. Unity использует левостороннюю систему координат, в которой координаты на экране компьютера рассматриваются как X (по горизонтали), Y (по вертикали) и Z (глубина, т. е. входящие или исходящие из экрана).

В разработке игр весьма распространено использование векторов, о которых я подробнее расскажу в следующих статьях. А пока достаточно сказать, что Transform.Position и Transform.Scale являются объектами Vector3. Vector3 — это трехмерный вектор; иначе говоря, в нем не более трех точек: только X, Y и Z. Манипулируя этими тремя простыми значениями, вы можете задавать местонахождение объекта и даже перемещать его в направлении вектора.

Свойство Transform определяет позицию, поворот и масштаб любого GameObject.

Курс от Skillbox

Что вы получите в этом практикуме?

  • Научитесь программировать на языке C# с нуля, а также прописывать логику для разных жанров проекта;
  • Сможете вести дизайн-документ, в котором будут прописаны правила и элементы игры;
  • Освоите все инструменты, используемые в разных этапах создания игр на Unity, а также научитесь адаптировать игры под различные платформы;
  • Освоите 3D-модели и анимацию. Это позволит вам моделировать персонажей и их окружение, а также создавать игры с нуля самостоятельно;
  • Изучите методы интеграции сторонних ресурсов (моделей, текстур) в свой проект;
  • Сможете создавать противников с искусственным интеллектом, настраивать освещение, визуальные эффекты и звуки;
  • Выпускникам оказывается помощь в трудоустройстве;
  • В завершении курса вам будет предоставлен диплом.

Как проходит обучение?

  • Сначала вы изучаете материал с практическими видеоуроками;
  • Далее выполняете домашнее задание в удобном для себя темпе;
  • После отправки задания вы получите обратную связь от наставника, который проверит работу и исправит ошибки;
  • В завершении курса вам необходимо защитить свой диплом.

Сколько стоит курс?

Стоимость курса составляет 94 000 рублей. Возможна рассрочка на 24 месяца в размере 3 917 рублей.

Общие вопросы

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

  • Какие книги по программированию вы читали? Какая из них – любимая? Какая больше всего чему-то научила?
  • Владеете ли вы методом слепой печати?
  • Чем принципиально отличается фреймворк от библиотеки?
  • Что такое инкапсуляция? Какие еще принципы ООП вы знаете? Что такое SOLID, расскажите о принципах.
  • Объясните школьнику что такое OpenGL или DirectX, в метафорах, так, чтобы он понял.

Алгоритмы и структуры данных

  • Каким образом отрицательные числа представляются в памяти компьютера? Как из положительного числа получить отрицательное в таком случае? А как обратно?
  • Как получить ближайшую сверху к числу степень двойки?
  • На компьютере массив чисел из 100 элементов сортируется за одну секунду, за сколько секунд отсортируется массив из 100 000 элементов?
  • Что такое “время работы алгоритма”?
  • Зачем “балансируют” дерево?
  • Что такое динамическое программирование? Какие задачи оно решает? Приведите пример.
  • Какие вы знаете способы представления графа?
  • Какой алгоритм используется для нахождения пути?
  • У вас есть односвязный список и указатель на один из его элементов (не последний), как удалить этот элемент из списка, оставив список целостным? Возможно ли решение за О(1)?
  • Что делает эта функция?

    func(x,y):
    if (x == 0): return 1
    else:
      result = 0;
    for i->1 to y:
      result += func(x-1, y);
    return result
  • Что делает следующий код?

В случае беззнакового, целочисленного n

  • Даны три числа: a, b, c. Как определить за максимум два сравнения существует ли треугольник со сторонами длиной a, b и с?
  • Определить является ли беззнаковое целое число (unsigned int) степенью двойки? (написать функцию.время работы О(1))
  • Есть односвязный список – постройте перевернутый (обратный) список из данного. Последний элемент указывает на предпоследний, …, второй указывает на первый.

С чего начать?

Первым шагом этого урока является загрузка Unity. Но подождите — есть четыре разные версии. Какую из них выбрать?

Все версии Unity предоставляют одинаковые функции движка

  • Personal: бесплатно
  • Plus: $ 40 / мес
  • Pro: $ 150 / мес

Существует также версия Enterprise, в которой ваши пользовательские потребности определяют стоимость подписки.

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

Кроме того, существуют различные сервисы внутри Unity, такие как Cloud Build и Analytics, которые становятся доступными в платных версиях.В Unity есть несколько строгих правил о том, как вы можете использовать персональную версию. Перед тем, как приступить к работе, обязательно ознакомьтесь с FAQ по Unity, чтобы узнать, имеете ли вы право его использовать.

Для выполнения этих уроков достаточно персональной версии, поэтому нажимаем на кнопку начать. Это приведет вас к странице загрузки, на которой нужно принять условия использования и загрузить установщик.

Запустите установщик и следуйте инструкциям на экране. Дождитесь завершения установки и запустите Unity Hub. Вам будет предложено создать учетную запись.

Создав учетную запись, запустите Unity. Нажмите File-New Project чтобы создать новый проект.

  • 1. Назовите свой проект Spaceship и выберите место на жестком диске, чтобы сохранить его.
  • 2. Вы заметите, что у вас есть несколько вариантов выбора шаблонов. Каждый шаблон предварительно настраивает Unity, чтобы сэкономить ваше время в зависимости от того, что вы хотите сделать. Сейчас выберите 3D.
  • 3. Нажмите Create, и Unity откроет ваш первый проект.

Видео:1.3 Знакомство с интерфейсом UNITYСкачать

How to Change the Build Settings of a Unity Project

Assuming that you already have a game ready to publish, you can start making changes to the Build Settings. If you do not have a Unity game, you can get started with Unity for Game Development.

How to Specify the Platform for Your Game

Platform options include a Standalone PC game, PS4, iOS, PS5, Xbox One, Android, WebGL, and more.

Platform

Description

PC, Mac & Linux Standalone

This includes a standalone PC game that you can run on Windows, Mac OS, or Linux. The output folder will include an executable file that you can run.

iOS

This allows you to run your game on Apple mobile products. When you build your game, Unity will generate an Xcode project, which you will need to bundle your game to send to the Apple store. You may also want to use an iOS Simulator to test your iPhone and iPad game.

Android

This allows you to run your game on Android phones. You can read more in Unity’s documentation about building apps for Android.

WebGL

This prepares your project so that you can host it on the web. The output folder consists of an index.html file, and resource files for the logo and loading bar. It also contains a folder for additional necessary resources like framework, data, and code files.

Console Specific (for example, Xbox, PS4, PS5)

This allows you to run your game on specific consoles.

You can specify your desired platform under the Build Settings tab.

  1. With your Unity project open, click on the File tab at the top of the Unity window. Select Build Settings.
  2. A new window will open where you can specify the Platform of your game.

How to Select the Scenes That You Want to Build

You can also use the Build Settings window to specify the scenes you want to publish.

  1. In the Scenes In Build panel, select the scenes that you would like to include in your published game.
  2. If your scenes are not visible, you can click on the Add Open Scenes button. Make sure that your scenes are open in Unity.

How to Change the Advanced Build Settings

You can also change other project settings, such as your icon, splash screen, or resolution.

  1. At the bottom-left of the Build Settings window, click on Player Settings.
  2. This will open another window that will allow you to specify other settings like audio, resolution, icons, or graphics. For example, in the Audio tab, you can specify the Default Speaker Mode of your game. Options for this include Stereo, Mono, or Surround.
  3. Open the Player tab. Specify the company name, product name, and game version.
  4. Specify a default icon for your game. You can also expand the Icon section, and specify an icon for different screen sizes.
  5. Expand the Resolution and Presentation section, and specify the resolution for your game.
  6. Expand the Splash Image section. This is where you can configure a custom splash screen, which is the screen that you present to the user when they first open your game.
  7. You can find other settings such as compression settings or stack trace logging if you expand the Other section.

Что должен уметь разработчик на Unity

Специалист должен обладать следующими знаниями:

Владеть базой языка C#, который является основным для разработчика.
Владеть тонкостями дизайна

Важно, чтобы разработчик мог проработать меню или интерфейс, чтобы угодить игрокам. Дизайн должен упростить восприятие игры

Сюда же входит знание звукового оформления, которое задаёт атмосферу и настроение игры.
Работать с плагинами длясоздания игр. Один инструмент покажет количество кадров в секунду, второй поможет отладить Unity для мобильных платформ, третья может заменить десятки бесплатных библиотек. 
Работать с фреймворками.
Разрабатывать и настраивать сетевую безопасность.
Созданием поведенческих и игровых сценариев.

Компоненты

Вы добавляете функциональность к объектам GameObject добавлением компонентов (объектов Component). Все, что вы добавляете, — это Component, и все они показываются в окне Inspector. Существуют компоненты MeshRender и SpriteRender, компоненты для звука и функционала камеры, компоненты, относящиеся к физике (коллайдеры и твердые тела ), системы частиц, системы поиска пути, сторонние пользовательские компоненты и др. Чтобы назначить код какому-то объекту вы используете скриптовый Component. Компоненты — это как раз то, что оживляет ваши GameObject добавлением функциональности подобно шаблону Decorator в разработке ПО, только их возможности гораздо интереснее.

Я присвою кое-какой код новому GameObject, в данном случае простому кубу, который можно создать через GameObject | Create Other | Cube. Я переименовал куб в Enemy, а затем создал еще один куб. Как видно на рис. 7, я сместил один куб на –15 единиц от другого, что можно сделать с помощью инструмента Move на панели инструментов или нажатием клавиши W после выделения объекта.

Рис. 7. Текущий проект с двумя кубами

Код — простой класс, который находит игрока и перемещает к нему своего владельца. Обычно операции перемещения осуществляются одним из двух способов: либо вы перемещаете объект в новую позицию на каждом кадре, изменяя его свойство Transform.Position, либо вы применяете к нему физический толчок, а в остальном полагаетесь на Unity.

Покадровые операции требуют несколько иного образа мышления, чем просто «переместить в эту точку». Для этого примера я намерен немного смещать объект на каждом кадре, чтобы иметь точный контроль над тем, куда он движется. Если вас не прельщает перспектива работы с каждым кадром, существуют библиотеки, выполняющие покадровые перемещения всего одним вызовом функции, например бесплатная библиотека iTween.

Первым делом я щелкаю правой кнопкой мыши в окне Project, чтобы создать новый скрипт на C# с именем EnemyAI. Для назначения этого скрипта объекту я просто перетаскиваю файл скрипта из представления проекта на объект в представлении Scene или Hierarchy, и этот код связывается с объектом. Остальное берет на себя Unity. Вот так просто.

На рис. 8 показан куб Enemy с назначенным ему скриптом.

Рис. 8. Enemy со связанным скриптом

Взгляните на код на рис

9 и обратите внимание на открытую переменную. Если вы смотрите на код в Editor, то заметите, что моя открытая переменная появляется с параметром для переопределения значений по умолчанию в период выполнения

Это очень удобно. Вы можете менять значения по умолчанию в GUI для элементарных типов, а также можете предоставлять открытые переменные (но не свойства) многих других объектных типов. Если я перетаскиваю этот код на другой GameObject, создается совершенно отдельный экземпляр этого компонента кода. Это базовый пример, и его можно расширить, добавив, скажем, компонент RigidBody к этому объекту, но я не стану усложнять пример.

Рис. 9. Скрипт EnemyAI

В коде я могу получить ссылку на любой компонент, предоставляемый в редакторе. Кроме того, можно назначать скрипты для GameObject, каждый со своими методами Start и Update (и многими другими методами). Предполагая, что компоненту скрипта, содержащему этот код, требуется ссылка на класс EnemyAI (компонент), я могу просто запросить этот компонент:

После изменения кода в MonoDevelop или в своем любимом редакторе кода и последующего возврата в Unity вы обычно наблюдаете небольшую задержку. Это связано с тем, что Unity выполняет фоновую компиляцию вашего кода. Редактор кода (но не отладчик) можно сменить через Edit | Preferences | External Tools | External Script Editor. Любые проблемы при компиляции в самой нижней строке состояния на экране Unity Editor, так что посматривайте туда. Если вы попытаетесь запустить игру с ошибками в коде, Unity этого не позволит.

metanit.com

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

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

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

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

Rate article