> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ss14.art/llms.txt
> Use this file to discover all available pages before exploring further.

# How do I code? (я не умею программировать.)

Ниже приведены несколько полезных ссылок для изучения программирования. Если вы застряли, не бойтесь задавать вопросы в канале `#howdoicode` в нашем [discord](https://discord.gg/ss14) или в соответствующем канале в [DevBus discord](https://discord.gg/X3YCdGHpgF). Если вы не можете найти то, что ищете, в одной из этих ссылок, попробуйте погуглить «how to do X in csharp». Обычно вы найдёте несколько примеров.

Если у вас есть некоторый опыт (читай: понимаете такие вещи, как «классы» и «control flow») и вы предпочитаете учиться на практике, попробуйте посмотреть на Issues, помеченные как [Beginner Friendly](https://github.com/space-wizards-federation/space-station-14/issues?q=state%3Aopen%20label%3A%22DB%3A%20Beginner%20Friendly%22) в репозитории Github. Обычно они довольно просты, и кто-то всегда может помочь вам на discord.

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

Если вы хотите сделать что-то более сложное, я рекомендую прочитать остальную часть [**Getting Started**](./setting-up-a-development-environment), а затем начать читать **SS14 By Example**, который проходит через многие распространённые действия и объясняет, как их делать.

## Учебные материалы

### C\#

Язык программирования, который вы будете использовать для внесения вклада в SS14. Если вы никогда не программировали, C# — отличный выбор для первого языка!

**[C# A Player's Guide 5th Edition](https://www.amazon.com/dp/0985580151)**
Очень увлекательная книга для начинающих в C#. Очень современная, использует C#10 и .NET 6, с множеством проектов и заданий для применения ваших навыков программирования. Настоятельно рекомендуется. Покупайте самую новую версию (независимо от того, что здесь написано), так как мы всегда следим за обновлениями.

**[CSharp Fundamentals for Absolute Beginners | Channel 9](https://channel9.msdn.com/Series/CSharp-Fundamentals-for-Absolute-Beginners)**
Серия видео, охватывающая абсолютные основы программирования в стиле C#. Также проводит вас через установку IDE (программы, которая значительно упрощает написание кода).

**[C# 101 | Microsoft](https://docs.microsoft.com/en-us/dotnet/csharp/tour-of-csharp/tutorials/)**
Видео так себе (пробегаются по терминам вроде «variable», «string» и «interpolation»), но сами учебники хороши. Если вы предпочитаете интерактивные письменные руководства просмотру видео, их можно пройти в вашем веб-браузере [здесь](https://docs.microsoft.com/en-us/dotnet/csharp/tour-of-csharp/tutorials/hello-world).

**Различные руководства Microsoft по C#**
Для тех, у кого уже есть некоторый опыт (читай: знает, что такое «modern, object-oriented, and type-safe programming language», поскольку это первая строка), [getting started guide](https://docs.microsoft.com/en-us/dotnet/csharp/getting-started/) даёт несколько базовых примеров использования C# и показывает, как использовать Visual Studio для написания C#. [programming guide](https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/) даёт более конкретные примеры возможностей языка C#.

**[Learn C# in Y minutes](https://learnxinyminutes.com/docs/csharp/)**
Шпаргалка, представленная в виде массивного C# файла. Опять же, это более полезно для тех, кто уже понимает, как программировать, и нуждается в быстрой справке по синтаксису.

### Git

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

**[Git for the SS14 Developer](./git-for-the-ss14-developer)**
Хорошее руководство само по себе и содержит много ресурсов для дальнейшего изучения Git. Объясняет что, почему и какова роль Git в SS14.

**[Learn Git Branching](https://learngitbranching.js.org/)**
Интерактивный, геймифицированный способ изучения Git. Хорошо сочетается с «Git for the SS14 Developer», чтобы вы могли развить интуитивное понимание того, о чём идёт речь.

### SS14

**[Entity Systems, Components and Events](../../robust-toolbox/ecs)**
Руководство по основной архитектуре игрового движка SS14. Обязательно к ознакомлению, если вы хотите работать с кодовой базой.

### Другое

**[CS50 | Harvard](https://cs50.harvard.edu/college/2021/spring/weeks/6/)**
Учит компьютерному программированию и тому, как работают компьютеры. Охватывает широкий спектр тем (разные языки, такие как C и Python, алгоритмы, память и т.д.). Упрощая: изучение таких вещей, как «for loops» и «if statements», учит вас «говорить на языке». Понимание того, почему работают алгоритмы, различия между языками программирования, написание программ для решения головоломок — это уже «делать дело». Вы можете начать без этого, и со временем это придёт естественно.
