Что нужно знать начинающему C# разработчику?
==============================================

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

 Заинтересовался я в этом всем около года назад и тогда начал изучать C#, клепать что-то на Unity, но я хотел всего и сразу, поэтому не задалось. Сейчас же у меня появился настрой и мотивация, я полез на форумы за ответами на некоторые вопросы и увидел, что люди говорили, что каждый программист (в том числе и разработчик игр на той же юньке) обязан разбираться в ЭВМ, должен понимать, как устроен процессор, память, хотя C# является высокоуровневым языком, а работать с процессором я вряд ли буду.   

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

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

 P.S. Можно пожалуйста без токсичности, потому что я правда не знаю многого? Хотелось бы увидеть адекватные ответы от по-настоящему опытных людей. 

 На любой вопрос ищи ответ у Кнута.   

По C#  

[https://viduus.net/wp-content/uploads/2018/02/Riht...](https://viduus.net/wp-content/uploads/2018/02/Rihter-Dzh.-CLR-via-C.-Programmirovanie-na-platforme-Microsoft-.NET-Framework-4.5-na-yazyke-C-Master-klass-2013.pdf) 

 А Рихтер не слишком сложный? И насколько еще актуальные, не устаревший ли материал? О Рихтере противоречивые мнения.. Но насколько поняла, его книга уж точно не первой должна быть, при знакомстве с языком) 

 Если C#, то придётся выучить Unity3d. Но прежде конечно придётся серьёзно учить сам C#, включая паттерны и принципы SOLID. В идеале тебе нужно прочитать книги "Совершенный код" и "CLR via C#". Когда дойдёшь до Unity, то готовься ещё познать векторную математику. Начать можно [отсюда.](https://metanit.com/sharp/tutorial/1.1.php)