Pull to refresh

Гуманитарий с 0 знаний в программировании. 3 часть. Первые шаги в C# (и слегка Unity)

Level of difficultyEasy
Reading time17 min
Views9.7K

Если рефлексия порождает чувство вины — это неправильная рефлексия. Рефлексия — осознание собственной жизни, поступков и действий. Рефлексия должна делать сильнее.

Предыдущие статьи этого цикла:

После того как я ушёл с работы в 1С, я решил, что нужно отдохнуть недельку. Но через неделю я понял, что на меня нахлынула небольшая апатия. Я бы мог это объяснить двумя важными факторами:

  1. Фрустрация и неизвестность: снова начинать всё с начала.

  2. В середине сентября у меня будут госы и защита диплома. А я хочу красный диплом. А чтобы его получить – надо очень хорошо подготовиться к госам и защите. А чтобы подготовиться – надо тратить достаточно времени на подготовку. В общем. Как и с предыдущим обучением 1С через какое-то время меня поджидает ВУЗ, который отвлечёт меня от обучения новому ЯП

Фрустрация + неизвестность + подготовка к госам/диплома = достаточный уровень напряжения и стресса.


  • 10.07.23. я оставил 1С

  • отдых и поиск информации

  • 21.07.23. начал изучение нового ЯП

В этот промежуток времени я отдыхал, рассуждал и искал новую информацию, чтобы определиться с новым направлением: наконец-то я смогу взяться за настоящий ЯП, это, конечно, будет Java! Но так как 1С был связан с бизнесом, а Java тоже используется в бизнес-автоматизации, то я подумал, хочу ли я идти в эту сферу деятельности? Ну я, в общем-то, не против.

И также существовал важный факт выбора Java в том, что это довольно строгий язык: если будет где-то ошибка в коде, то программа не заработает. Что приводило меня к мысли, что с самого начала обучения строгий синтаксис Java научит меня дисциплине и написанию качественного кода. Но всё-таки тот факт, что Java в основном связан с бизнесом, уже меня особо не прельщал.

Но, с другой стороны, был и C#, который сильно похож на Java и который тоже используется для автоматизации бизнеса, но также его можно использовать в связке с Unity для разработки игр или для разработки VR/AR.

В задумчивости и неопределённости я спросил даму своего сердца: «Что больше похоже на меня: автоматизация бизнеса или разработка игр», ответ меня удивил: «Не знаю!». Она - моя девушка и мой друг, поэтому мы и в этот день и следующие обсудили мою потенциальную карьеру в геймдеве. Для меня это стало переломным моментом, и я начал рассматривать разработку игр как свой следующий вектор развития.


И я начал погружаться в информацию, которая связана с изучением C# и Unity. Главные вопросы были такими:

  1. Что начать изучать первым: C# или Unity?

  2. C# для бизнеса отличается от C# для Unity?

  3. Какие учебные материалы мне нужны?

Ответы на эти вопросы были такими:

1. Что начать изучать первым: C# или Unity?

В данном случае ответ однозначен: Unity полностью состоит из C#, поэтому никак нельзя изучить Unity без C#. Поэтому необходимо погрузиться в C# и прочувствовать его. Но важно здесь отметить, что при создании программ для бизнеса используются одни библиотеки, а когда работа переходит в Unity, то здесь появляются новые моменты, которые нужно изучать с нуля, потому что в C# для бизнеса они не встречаются. Поэтому при достойном изучении C# и при первом открытии Unity вы снова попадёте в ситуацию «ничего не понятно, очень много нового и неизвестного» – и это придётся изучать.

2. C# для бизнеса отличается от C# для Unity?

После изучения книг я теперь могу ответить на этот вопрос:

  • Бизнес-решения, основанные на C#, иногда будут состоять из MAUI/WPF, а они состоят из XAML, который, в свою очередь, основан на языке разметки XML. Поэтому иногда разработка приложений будет в связке: С# + MAUI/WPF.

  • А разработка игр будет в связке C# + Unity. Соответственно, для бизнеса знания Unity не понадобятся, а для разработки игр знания MAUI/WPF не понадобятся.

Когда я искал на hh, то увидел, что вакансий с нулевым опытом по C# для бизнеса гораздо больше, чем по играм. Вот навскидку: 05.11.23. число, поиск по России, нет опыта и найдено 30 вакансий. Можно зайти в любую и посмотреть те навыки, которые вам необходимо прокачать, чтобы попасть к ним на работу или стажировку, там будут и другие моменты кроме С# и MAUI/WPF, но они не так фундаментальны.

Поиск на hh: "C#, без опыта, Россия, удалённая работа + полный день + гибкий график"
Поиск на hh: "C#, без опыта, Россия, удалённая работа + полный день + гибкий график"

3. Какие учебные материалы мне нужны?

Учебные материалы нужны априори практические, потому что у меня нет навыка, нет опыта. Я могу прочитать первую книгу, вторую, третью, а когда меня попросят написать код и правильно разработать приложение/игру – я смогу рассказать о том, как это сделать, но я просто не смогу написать код. А будут платить мне за мои словесные игры или за фактически написанный код? Конечно, за код, который работает. Именно поэтому я искал практические материалы. Было довольно сложно: много книг, много бесплатных курсов, много платных курсов, но мало практических заданий. Об этом я расскажу, когда перейду к периоду после 21.07.23.


Я не могу сказать, что я сразу же получил ответы на свои вопросы, потому что информации очень много, но в основном её пишут мидлы или сеньоры, которые разбираются в теме и для них уже всё сплавлено воедино: C#/Unity или С# и MAUI/WPF и т. д. И они не помнят, как начинали, какие вопросы у них возникали в первые моменты обучения, что им было непонятно, потому что сейчас им всё понятно. И то, что я написал выше, конечно, это я пишу спустя 3 месяца, когда немножко понимаю, что происходит в C#.


Отношение к играм

Дальше возникли другие вопросы, которые касаются игр:

  1. Какой жанр мне выбрать?

  2. Какие жанры вообще существуют?

Это вообще сложные вопросы :D

Пока я не нашёл на них ответы, потому что много факторов, например, такие как:

  • я не играю в казуалки и гипергазуалки, как психолог я в общем понимаю механизмы таких игр;

  • мне нравятся большие проекты RPG, как Divinity и Baldur's gate 3, также нравится серия God Of War.

  • Но в целом играть в игры меня не так драйвит, как мысль создавать и исследовать игры, поэтому у меня нет гигантского опыта в гейминге, ну кроме +10.000 часов в доте, но сами понимаете, это не то же самое, как пройти что-то сюжетное: скайрим, ведьмака, ори, фар край, киберпанк и т. д. В общем, игрового опыта у меня немного.

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

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

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

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

Обучение C#

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

Ещё в период отдыха 10.07.23. – 21.07.23. я нашёл ютуб канал Романа Сакутина, который резко и дерзко общается и принижает других C#/Unity-блогеров, да и, в общем, часто прибегает к унижающим словцам. Но также он подкупил меня тем, что он сам делает игры за деньги для ютуб-контента, показывает, как это можно реализовать, как зарабатывать; также есть видео, где он делал тестовое задание для Kefir, а затем сказал, что это задание в итоге не приняли, хотя он мог бы вообще об этом не говорить.

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

21.07.23. Вначале я искал книгу, по которой можно обучиться. Я много что нашёл, но остановился на книге «Sharp John – Microsoft Visual C# Step by Step. 10th Edition» (10 редакция в инете есть на английском, на русском только 8 редакция, но они практически идентичные), я уже не вспомню почему, но с 21 июля по 28 июля я занимался по ней. Параллельно смотрел другие источники информации.

25.07.23. июля нашёл бесплатный ulearn.me от Контура, и позанимался 5,5 часов, но в самом конце раздела были «Задачи на семинар», и эти задачи были довольно трудными, потому что требовали знаний формул из физики и математики, на этом изучение C# на ulearn закончилось.

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

26.07.23. был бесплатный недельный курс в ТГ от Романа Сакутина, на него я потратил в среднем 6 часов, мне, в общем, понравилось: небольшая теоретическая выжимка и хорошие практические задачи, которые заставляют задуматься и найти решение, также во всех своих рекламных роликах он говорит о том, что теоретическая часть легко находится в инете, а главное на его курсе – это менторы и бесконечный code review, что и можно было вкусить в пробном курсе, и это там было.

Но рекламная неделя на то и рекламная, что там всё есть в лучшем виде.

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

27.07.23. попробовал w3schools.com, я потратил 1 час, мне стало скучно, и я больше туда не заходил. Скучно не в том смысле, что недостаточное количество клоунов, шортсов, весёлых картинок, а в том смысле, что там не было: ни качественной теории, ни достаточного количества практики. Но это я говорю только лишь про первый час, может быть дальше информация более качественная.

29.07.23. начинаю изучать Head First C# 4th и 5th ed (на английском), потому что там есть практические задания, которых почти нет в Sharp John – Step by Step.

Почему Head First C# 4th и 5th ed?

  1. У Head First на гитхабе есть бесплатные четыре главы 5-ой редакции, книга ещё пишется, поэтому её вообще нет в природе. Как я прошёл четыре главы, начал изучать 4-ую редакцию.

  2. 4-ая редакция есть в кривом виде на английском языке, но там нет 11 и 12 глав и она в виде картинок, поэтому нельзя копировать код и вставлять в VS, я всё-таки хотел изучать на английском. В итоге я нашёл на русском полную книгу, когда нужно было копировать код – то я открывал русскую книгу и брал от туда. Но на гитхабе есть дополнительные проекты, задания, главы, поэтому я объединил в новую книгу: русскую версию, английскую и дополнительный материал из гитхаба.

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

Sharp John Step by Step и Head First C#

21.07.23.

Sharp John хорошо рассказывает о том, что такое параметры и аргументы, конечно, они описываются в рамках перегрузки метода и необязательных параметров. Но всё равно это объясняется на пальцах! С нуля! Чего не было в литературе 1С.

Практические задания построены на том, чтобы написать код для вывода в консоли или для вывода в WPF.

Год назад я изучал тестирование, где также был небольшой курс по HTML и CSS. Почти все знания выветрились за этот промежуток времени, но, так сказать, фундамент по QA и фронтенду остался, поэтому мне не нужно дополнительно изучать какие-то базовые аспекты в XAML. И мне было понятно для чего нужен отладчик, потому что в 1С тоже был отладчик и все его функции точно такие же, как и в C#. Так как я был знаком с HTML и CSS, отладчиком и QA, это помогало экономить время в некоторых моментах.

Книга Sharp John Step by Step начала расстраивать, когда я прошёл 4-ую главу, которая посвящена decision statements (про булево значение, if, switch). В данной главе автор ввёл pattern matching (сопоставление с образцом), к pattern matching относятся операторы or, and, not – об этом всём рассказано буквально 5 абзацев, а затем идёт неплохое объяснение if и т. д. Но всё равно мне приходилось искать объяснения в сети и дополнительные примеры, чтобы понять, как что работает. Про оператор is было сказано два слова, поэтому я не стал более глубоко копать про этот оператор, потому что даже в упражнениях его не использовали; но пришлось много искать про switch и понять то, как он работает и понять разницу между switch statement и switch expression.

Я бы сказал, что в книге Sharp John безусловно есть задания, но они не очень понятные, не интуитивные, приходится самому придумывать себе развлечения и задания. И из разряда «‎скопируй код, вставь две строчки и всё работает».‎

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

Как я изучаю учебный материал

Постепенно книга знакомит с новыми вещами, например, с арифметическими операторами. И здесь я понимаю, что их не так много, и я могу понять их все, поэтому я стараюсь за один раз охватить все знания, которые связаны с ними. Конечно, такое погружение в арифметические операторы заняло достаточное количество времени, всё-таки операторы одинаковые – но в разных ситуациях они значат разное. Дополнительной проблемой изучения стало то, что из источника к источнику они по-разному называются, что тоже, в свою очередь, заставило потратить немало времени на то, чтобы структурировать их. В итоге у меня получилось вот так:

  • Arithmetic operators

  • Assignment operator

  • Bitwise and shift operators

  • Conditional operator

  • Logical conditional) operators

  • Relational (comparison) and type-testing operators

Тоже отмечу, что, как в предыдущих трёх частях изложения моего пути в IT, я писал, что я ни в коем случае никогда в жизни не погружался в биты, байты и тд, для меня 1Гб – это нормально так по размеру, а 1Тб внушительно. Не понимаю двоичную систему совсем. И в чём разница винды 32 бит и винды 64 бит – вообще хз.

Это я к тому, что Bitwise and shift операторы я просто добавил, потому что они похожи на другие операторы, но смысл для чего они нужны – я пока так и не понял.

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

29.07.23. Параллельно начинаю изучать Head First. И в обеих пишут про COM, CLR, CIL – я постарался хоть как-то подступиться к этой теме, но после первых попыток в поисках того, что это такое, я понял, что это слишком огромная тема для того, чтобы сейчас сидеть и разбираться с ней. В книге Head First было написано довольно просто, CLR:

  1. Исполняет код

  2. Управляет памятью: удаляет из кучи объекты без ссылок

В целом и всё. Думаю, что в плане изучения материала я как-то стараюсь на интуитивном уровне оценить тот или иной материал и понять:

  • стоит ли в него углубляться сейчас,

  • смогу ли я понять его сейчас,

  • поможет ли мне чуть более углублённое понимание материала сейчас или в будущем,

  • или я сейчас не готов понять и осознать этот механизм

  • и не стоит тратить время на его осмысление.

Как вы понимаете, при изучении арифметических операторов я решил поглубже изучить и сами арифметические операторы, а также изучить и смежные похожие операторы; а про COM, CLR, CIL я взял для себя информацию только из книги и не тратил время на дополнительное изучение, потому что считал, что я просто не пойму на той стадии изучения, а также это не особо целесообразно.

Подготовка к госам/диплому

26.08.23. я начал готовится к госам, поэтому начал меньше изучать C#, также в конце августа у курса Р. Сакутина был момент, когда он поднимал цены, и поэтому у меня возникло чувство упущенной выгоды и захотелось приобрести. Всё-таки занимался я примерно месяц и с каждыми новыми главами книг всё меньше было практических задач, которые давали пищу для размышления и заставляли писать код, потому что задания выглядели так: «скопируйте код, напишите две строчки, чтобы код заработал и вуаля – вы программист!», это даже практикой сложно назвать. А курс Р. Сакутина предлагал именно практику с теорией и возможность бесконечного code review.

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

13.09.23. закончились госы и диплом, изначально я боролся за красный диплом, и в итоге получил его. Точнее, выгрыз его с кусками плоти и кровью у науч. рука, декана и комиссии, по-другому и не сказать.

Отдохнул какое-то время, перевёл дух и продолжил изучение C# с 18.09.23.

21.09.23., когда я закончил 10 главу у Sharp John, то я решил, что пока что не буду её изучать, потому что она более фундаментальная и менее практическая, чем Head First, и вернусь к ней позже, когда будет больше опыта.

Поэтому теперь я сконцентрировался на Head First, потому что в ней больше практики.

С 25.09.23. по 30.10.23. изучал Head First

13.10.23. я всё-таки покупаю курс Р. Сакутина «IJunior» и начинаю его изучать. Лучше не спрашивайте откуда у меня деньги, потому что я всё ещё не работаю :D

Как я закончил книгу Head First

В 7 главе начались небольшие проблемы: я не мог понять некоторые вещи, даже если старался погрузиться и искать дополнительную информацию из других источников, затем в середине 8 главы с момента, как начались интерфейсы IComparable<T> и IComparer<T>, у меня начали образовываться пробелы в понимании материала, а каждое задание, каждая глава зачастую основывается на пройденном материале, что в итоге привело к тому, что я уже не могу справиться с заданием – не могу сам написать код.

Был один превосходный момент, который с педагогической точки зрения мне очень понравился: слегка затрагивались темы анонимных классов и ключевого слова var, но в 9 главе про LINQ идеально сделали подводку к ним, все небольшие вставочки отлично объясняются на примере LINQ, в итоге я полностью понял, для чего нужны анонимные классы и var.

В 9 главе также много нового материала, но в данном случае теперь книга ссылается на прошлые проекты. Я прошлые проекты просто стирал и в них писал новые, а у некоторых проектов название наподобие «ConsoleApp3». На самом деле в этом нет большой проблемы, потому что все готовые проекты есть на гитхабе, но всё равно ощутил дискомфорт в том, чтобы искать нужный проект в однотипных называниях, а если его не было – идти на гитхаб и оттуда копировать. Если будете проходить книгу, то старайтесь давать правильные имена проектам и не перезаписывать их, когда отработаете их, потому что в будущем они ещё пригодятся.

11 глава хорошая, дополняет некоторые моменты, которые были встречены, как ref, out и null, но, на мой взгляд, она довольно сильно теоретизирована, потому что нет ничего практического, только "скопируйте и вставьте, посмотрите, как работает", но нет проектов и задач, которые бы требовали, чтобы с нуля что-то сделали.

Также в этой главе нелепо получилось, потому что пишут "а помните модификатор sealed в главе 7? Так вот, мы сейчас расскажем про методы расширения" – нет, не помним, потому что там нет ни строчки про этот модификатор, поэтому ваша теория про методы расширения интересна, но я лично прочитал довольно быстро, не вчитываясь, но общий смысл, для чего это нужно, уловил.

Как я писал выше, в инете есть английская книга, там 10 глав, и я понимаю почему, потому что 11 и 12 главы – сырые и не до конца продуманные. Эти две главы с сильным теоретическим уклоном.

Резюме по поводу Head First

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

  2. 11 и 12 главы интересные, но только в теоретическом плане

  3. В книге есть лабораторные задания Unity, в русской книге их 6, на гитхабе есть ещё дополнительные 4. Но если честно, если бы я проходил заново, то я бы не тратил на них время, потому что материал там плохо объясняется, и у меня изначально стояла цель – самому писать код, но после изучения восьми лабораторных заданий, я не могу сам написать код в Unity, потому что там задания наподобие «скопируй и вставь, и код будет работать». В общем, выглядит это так, что хотели привлечь аудиторию, которая хочется изучить C# для бизнес-автоматизации, потому что есть разделы с MAUI/WPF, и для игр, потому что есть эти лабораторные с Unity. Но без разделов с Unity можно без проблем обойтись и не тратить на них время.

Р. Сакутин и IJunior

С 13.10.23. я изучаю C# по курсу Р. Сакутина, до этого я с 21.07.23. с перерывами изучал C# сам, если убрать перерывы, то где-то 2 месяца изучал. И я могу сказать, что меня привлекал курс именно менторами и возможностью бесконечного code review, и я это получил! Да, это – курс и в нём есть теоретическая часть, которая охватывает фундаментальные вещи и не лезет в дебри, чтобы не нагружать будущих программистов. То есть теория – это не самоцель, а это прелюдия к практическим заданиям. И все теоретические знания через эти задания и code review вплавляются в опыт и навыки.

Мне лично нравится их подход, потому что я сам к этому пришёл во время репетиторства:

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

  • В данном курсе то же самое: при ошибке возвращают задание на переделку и пишут «переменные названы не по нотации», или «дубляж кода вынесите в метод» или «должен быть отступ между методами, if, for, switch и …» и т. д. Первую неделю пришлось всё время возвращаться в правила и смотреть информацию про кодстайл, потому что я код могу написать (всё-таки два месяца занимался и сам изучал), но именно как правильно его оформить – этому в книгах особо не учили.

В общем, сейчас 09.10.23., я занимаюсь на курсе 4 недели, и получаю, что искал – большое количество практических заданий и дотошные проверки, которые формируют правильные навыки написания кода. На данный момент я доволен и курс восхитителен! Конечно, есть маленькие вопросы, претензии (всё-таки теория по C# не очень хорошо подана) и предложения по курсу, но это почти ничто и из разряда «бесконечный путь к совершенству». Моё мнение может поменяться, потому что на курсе один модуль по C# и несколько модулей по Unity, а я пока прохожу C#. Но именно на данный момент – меня всё очень нравится!

И знания, которые я получил в процессе самостоятельного изучения, помогают мне гораздо быстрее проходить модуль по C#, потому что в книгах всё это разбиралось.


Некоторые наблюдения по своему обучению

Я заметил одну интересную вещь: в самом начале было не легко садиться и изучать новую информацию, потому что буквально всё новое, даже с опытом изучения материалом 1С было чувство, что всё начинаю сначала (это ещё одно подтверждение, что в 1С лучше идти со знаниями других языков). И день за днём я получаю новые знания…

Где-то в конце сентября стало полегче изучать новый материал, во-первых, я привык этим заниматься, во-вторых, начала складывать картина C# и того, как устроен язык и ООП в общем.

Далее, новый уровень отношения к процессу наступил 17.10.23., когда стал проходить курс Р. Сакутина (купил я его 13 числа, но сел изучать 16, а к практическим перешёл 17 числа). В данном случае была какая-то лёгкость в процессе, потому что теоретическую часть я знаю и понимаю, а это значит, что я не сталкиваюсь с новой информацией, а также – задания – они не были лёгкими, но то, что я делал – было мне знакомо и мне по силам, что снова же не затрачивало у меня столько сил и энергии, как при изучении новой информации.

Безусловно, в некоторых моментах я просто сажусь и пытаюсь понять: как это реализовать, каких знаний не хватает, что добавить, что убрать и т. д., это происходит в достаточном умственном напряжении, потому что у меня ещё нет знания и опыта, как решается эта проблема, но небольшими шажочками, кривой реализацией я прихожу к ответу и создаю рабочую программу. Ментор проверяет и пишет, на что нужно обратить внимание, но в основном это ошибки из разряда «по-другому назвать метод» или «дубляж кода», а общая логика и реализация корректные.

В общем, такое наблюдение: самым трудным этапом был момент, когда нужно сделать первый шаг и начать изучать новую и незнакомую информацию, но примерно через два месяца вся фундаментальная информация про C# из всей книги «Head First» и десяти глав из книги «Sharp John – Step by Step» теперь в моей голове, поэтому мне теперь гораздо легче приступать к изучению каких-то уточняющих моментов и к выполнению заданий.


Работа

По поводу работы я бы хотел сказать следующее: конечно, я изучаю C# и Unity не ради межгалактической славы великого разработчика великой игры, которая изменит ход истории и судьбы миллиардов – нет, создания игр может удовлетворить мои потребности в:

  • исследовательской деятельности (об этом написал выше);

  • создании чего-то с помощью интеллектуальной работы (рисовать, танцевать, петь, играть на инструментах я не умею) - но в будущем смогу делать игры;

  • зарабатывании более 100.000 рублей в месяц;

  • руководящей должности, потому что потенциально я могу выйти в team-lead или попасть в команду Р. Сакутина и помогать развивать его курс.

Также мне дали деньги, и я заплатил за курс, и теперь должен вернуть свой долг – это дополнительная мотивация быстрее найти работу.

Легко найти работу?

И по поводу «найти» работу. Конечно, 1С решает бизнес-задачи, а бизнесов на самом деле огромное количество, потому что у потребителей есть потребности и их нужно удовлетворять. И как я писал в других статьях, в 1С было несложно войти. По сути, в бизнес-автоматизацию всё ещё не сложно войти с C#, а вот с геймдевом и VR/AR другая история, потому что практически невозможно найти какую-то джун-позицию, где не требуется опыт и где всему обучат, даже стажировок никаких не предлагали за те 3,5 месяца, за которые я изучаю C#. Конечно, можно делать свои игры (но я пока не могу и не умею), можно вписаться в стартап или инди-коллектив, но это ищется точно не на hh.

Поэтому поставил себе дедлайн – постараться найти работу до конца ноября, что мотивирует, потому что нужно быстрее вливаться в создание игр и получать опыт и деньги. Если не получится до конца ноября, то нужно постараться кровь из носу до конца зимы найти рабочее место.

Post Scriptum

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

Я сам искал подобные статьи год назад:

  • когда просто искал общую информацию по IT;

  • полгода назад, когда искал информацию про 1С;

  • 3,5 месяца назад, когда искал информацию про C#.

Очень много профессиональных статей, но почти нет о настоящем жизненном опыте тех людей, которые пытались или пытаются зайти в IT.

Могу написать о чём-нибудь подробнее, если у вам будет интересно:

  • Делаю конспекты в приложении Obsidian, могу о нём написать

  • Подробнее о Head First C# или Sharp John «Step by Step»

  • Обучение на курсе Р. Сакутина IJunior

  • Любые ваши предложения

Количество часов

И снова прикладываю количество часов, которое я потратил на изучение C#

В общем 297:45 часов на 09.11.23. число:

  • Sharp John «Step by Step»‎ → 57:45 часов

  • Head First C# 4th + 5th ed → 145:30 часов

  • Р. Сакутин IJunior → 80:30 часов

  • Пробная неделя IJunior, ulearn.me, w3schools.com → 14 часов

Часы изучения. Левый столбик:Sharp John Step by Step; столбик по середине: Head First C#; правый столбик - по мелочи; самый правый - общее количество часов за день
Часы изучения. Левый столбик:Sharp John Step by Step; столбик по середине: Head First C#; правый столбик - по мелочи; самый правый - общее количество часов за день
Часы изучения. Левый столбик:Sharp John Step by Step, столбик по середине: Head First C#; самый правый - общее количество часов за день
Часы изучения. Левый столбик:Sharp John Step by Step, столбик по середине: Head First C#; самый правый - общее количество часов за день
Часы изучения. Левый столбик: Р. Сакутин IJunior, столбик по середине: Head First C#; самый правый - общее количество часов за день
Часы изучения. Левый столбик: Р. Сакутин IJunior, столбик по середине: Head First C#; самый правый - общее количество часов за день

Tags:
Hubs:
Total votes 16: ↑7 and ↓9-2
Comments21

Articles