What's new
Runion

This is a sample guest message. Register a free account today to become a member! Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members through your own private inbox!

Статья Из кассира в backend. Легкий вкат в C#

Kain1029

Light Weight
Депозит
$0
Автор: Kain1029
Специально для XSS.is

Всем привет. В этой статье я постараюсь обеспечить максимально мягкий вкат в язык программирования C#, постараюсь ответить на большинство вопросов от новичков и развею несколько мифов.

Для начала немного о себе: я backend разработчик с 5ти летним стажем, мой язык преимущественно C# , этот язык я выбрал, по сколько он достаточно простой для понимания, логичный и лаконичный.
Начинал свой путь так же как и многие. Работал продавцом в магазине, по ночам подрабатывал во всевозможных мутных темах. Мне необходим был софт, а платить за него совсем не хотелось(да и собственно нечем). Единственное, что я знал, это "C# это круто и проще, чем C++". С этого все и началось.
Я изначально забивал на теорию и пытался сделать все методом научного тыка, в чем набил достаточно множество шишек и потерял время, а сейчас готов поделиться опытом с вами, чтобы ваш вкат был проще, чем мой.

Ответы на популярные вопросы:

В: Является ли C# сложным языком?
О: Нет. C# очень простой язык. По сути все разделено на классы и методы(если обобщать). Классы это коробки(хоть картонные, как хотите так и представляйте), а методы - нечто, хранящиеся в этих коробках. И чтобы обратиться к методу, необходимо взять нужную коробку , порыться к ней, и достать то, что вам нужно. Это осознание мне очень сильно помогло при изучении. Это все утрировано , но сути так и есть.

В: Почему C# , а не питон?
О: Лично мне питон не нравится синтаксисом, но это вкусовщина. К тому же, я пытался понять питон после C# и для меня это тяжело, в этом моменте меня скорее всего поймут люди, кто переходил с ASM на высокоуровневые языки.
Любой язык это лишь инструмент, соответственно какой инструмент выбрать решаете вы под свои задачи.

В: Как долго учить C#, чтобы устроится на работу?
О: Это пожалуй самый частый вопрос от новичков, и вероятнее всего, ожидается ответ "каждый день по 8 часов", но это в корне не верно. Максимум, чего вы добьетесь - выгорание. В какой то момент вы начнете осознавать, что ничего не понимаете , начнут приходить мысли в голову мол "а надо ли оно мне вообще?". В этот момент главное остановиться и подождать, пока у вас не начнется ломка по изучению нового аспекта языка(проверено, помогает).

В: Как правильно изучать C#?
О: Я рекомендую дробить свое изучение. Если это видео-уроки, то дробить их по видео, если книги, то по главе. Распространенная ошибка - включить видео на фоне и заниматься своими делами, или читать по 150-200 страниц в день. Запомните - это так не работает. Поставили себе цель - смотреть 1 видео в день, но сделать это крайне качественно, попробовать самому что нибудь написать, изучать дополнительные материалы. Если вы предпочитаете читать , то достаточно 1 главы в день и не важно 10 или 20 страниц там. Как правило 1 глава это одна тема, а ваша задача , не прочитать как можно больше букв, а постараться понять написанное. Как только чувствуете ,что не понимаете - останавливаетесь и гуглите до того момента пока не будете знать тему как "отче наш". Если закончили одну главу, но сил еще много - проступайте ко второй, но помните золотое правило - "НЕ БРОСАЙ НА ПОЛОВИНЕ". Начал читать/смотреть - доделай до конца. До последней минуты или страницы. Если ты этого не сделаешь я даю тебе 100% гарантию ,что завтра ты даже не вспомнишь, что читал, а там 2 варианта, либо дочитаешь и мысли не сложатся в один ряд, соответственно не поймешь тему, либо начнешь заново, а какой тогда в этом смысл?

В: Где получить мотивацию?
О: Так же достаточно частый вопрос. Для начала подумайте , для чего вам изучать программирование? Если ваша цель быстренько изучить материал и получать 300к в секунду можете даже не начинать, это не для вас, да и рынок переполнен подобными выскочками. Если же вы вам это реально интересно, в школьные годы интересовал паскаль и информатика в целом, ну либо вы осознаете, что это не быстрый процесс, но все равно хотите поменять свою жизнь в лучшую сторону, то welcome to the club buddy. Искреннее желание - лучшая мотивация.

В: Стоит ли оплачивать курсы программирования?
О: Однажды я хотел записаться на платные курсы, ввиду того, что ничего не понимал, спустя время я могу твердо заявить, что все курсы от скилфактори и подобных ребят - полная шляпа. Вас разуют , вряд ли чему то научат, зато вселят надежду, так вы и будете стоять в один усах, голый , но довольный. Поэтому я советую обучаться самому. Ниже я приведу довольно хорошие материалы для изучения по пунктам. Если все ваше обучение идет по спирали в стиле "О, я понял теперь могу идти на работу -> Нет, ничего не знаю -> Теперь я знаю все работа меня ждет -> Как же можно быть таким тупым", значит вы на верном пути. Если вам кажется, что вы ничего не знаете - вы всегда знаете немного больше, чем вчера. Главное не опускать руки

Рекомендуется для изучения:
Все ссылки предназначены для ознакомления и потому что мне лень искать картинку

Я буду ранжировать книги по сложности по возрастанию. Советую читать их по порядку.

Михаил Фленов. Библия C# 6 издание:
OZON
Данная книга максимально дешевая и короткая, если вы ее прочитаете то будете иметь поверхностное понимание, а языке и его использовании. В ней содержится множество примеров и задач. Я лично читал 4-е издание. Написано, просто и понятно. Однако из минусов: для более менее опытных людей она будет максимально бесполезная, вся информация подается поверхностно, но опять же это и плюс, то бы не перегружать новичков сложными структурами и так далее.
В качестве альтернативы можно попробовать проходить бесплатные курсы, коих в интернете не мало, а так же..

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

Марк Прайс. C# 10 и .NET 6.
OZON
Достаточно не плохо написано. В книге рассказывается как основной синтаксис, так и работа с базой данных и несколькими библиотеками, получается, что книга закрывает сразу несколько потребностей, но так же и имеет свои минусы: Она очень большая, а переплет мягкий, читать ее не удобно. Много тем написаны "голопам по европам", хочется получить больше информации, а нет, автор так не считает, поэтому будете довольствоваться, тем, что имеете. Перевод так себе, так что если вы знаете английский - лучше читайте англоязычную версию.

Джеффри Рихтер. CLR via C#
OZON
Многие ее называют "Библия C#" (и эта не та библия, которая названа в первом пункте). В этой книге рассказывается как работает C# под капотом, почему происходит так , а не иначе, во что превращается ваш код после компиляции. Любой уважающий себя шарпист хоть раз ее читал. Однако это будет очень сложная книга для новичка, скорее она предназначена "для тех, кто в теме". Нет смысла от того, что вы знаете язык, если не знаете как он работает. Лично проверено, что работодатели респектуют тем, кто ее читал. И шансы попасть на работу гораздо выше. Однако, эта книга ОЧЕНЬ старая , но прочитать вы ее обязаны, так как фундаментальные знания не меняются, лишь добавляются новые фичи. Не рекомендую начинать с нее, так для совсем 0 будет не понятно и казаться все нереально сложным.

Эндрю Лок. ASP.NET Core в действии.
OZON
Здесь описывается создание веб приложений на языке C# , рекомендую изучать данную вместе со следующей

Джон Смит. Entity Framework в действии
OZON
Вся книга направлена на использование одноименной библиотеки ORM для работы с базой данных. Данная ORM , используется во многих организациях, поэтому настоятельно рекомендую ее изучать.

Где практиковаться?

Я хочу выделить 3 основных направления для получения практики:

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

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

3. Официальная работа. Не думайте, что после начального обучения вас возьму за 300к в секунду в майкрософт, генеральным директором генерального директора, но вполне вероятно можно найти работу стажером. Множество компаний согласятся вас взять на работу за условные 30-50 т.р. на позицию стажера. Согласен, деньги не большие, НО вы общаетесь с сеньорами , получаете очень мощный буст в своих скилах, и если все хорошо, то вполне вероятно, что через год вас повысят до джуна и дадут прибавку к ЗП. А дальше выбирать вам. Качаться до мидла или переходить в другую компанию для нового буста. Не это ли счастье? Этот способ самый действенный, однако, чтобы устроится даже стажером необходимо иметь какие никакие знания. Так что книгу в зубы и вперед покорять горы.



А что дальше?
После того как вы изучили базу, нашли самую первую работу. Вам остается только оттачивать свое мастерство. На этом этапе вы вполне себе самостоятельный разработчик, можете брать реальные заказы на фрилансе, писать и продавать софт, или устроится на официальную работу и получать 300к в секунду.
Если не начнешь сегодня - не начнешь уже никогда.

С радостью отвечу на ваши вопросы.
 
Я бы еще порекомендовал данный ресурс https://refactoring.guru/ru. После изучения теории я бы рекомендовал ознакомится с паттернами проектирования, а так же с принципами SOLID, и практиковаться соблюдая принципы и паттерны проектирования в ваших приложениях. Кодить это конечно здорово, но кодить правильно - лучше. По началу это будет казаться сложным и не понятным для вас, но поверьте для дальнейшего роста эти знания необходимы.
 
Alek74 сказал(а):
Я бы еще порекомендовал данный ресурс https://refactoring.guru/ru. После изучения теории я бы рекомендовал ознакомится с паттернами проектирования, а так же с принципами SOLID, и практиковаться соблюдая принципы и паттерны проектирования в ваших приложениях. Кодить это конечно здорово, но кодить правильно - лучше. По началу это будет казаться сложным и не понятным для вас, но поверьте для дальнейшего роста эти знания необходимы.

Полностью согласен с вами. Совсем забыл про паттерны написать, но вы верно подметили. Архитектура - превыше всего
 
Я C# учил для ZennoPoster'a. Там он немного обрезаный, но всё равно проекты создавать легко. Сейчас Python учу, тяжеловато после изящества C#.
 
Друг, что разрабатываешь? в компании работаешь? с какими технологиями? Ответь пж. У меня опыт C#, C++ достаточно приличный, но что-то прям стоящее под шарп найти не могу в основном какая-то сомнительная хунпа предлагается.
 
Alexey18 сказал(а):
Друг, что разрабатываешь? в компании работаешь? с какими технологиями? Ответь пж. У меня опыт C#, C++ достаточно приличный, но что-то прям стоящее под шарп найти не могу в основном какая-то сомнительная хунпа предлагается.

Да, работаю в компании. Технологии стандартные, .NET 8 , микросервисы, RabbitMQ , докер кубер и так далее по списку. Под шарп прям очень много работы есть на рынке
 
sikidok сказал(а):
ну а зарплата сколько?
Есть ли смысл в офисе сидеть

Стажер - 25-50
Джун 50-150
Миддл 150-300
Синьер 300+

Есть организации, которые способны платить х1.5

Все зависит от компании в которой работать. Где то платят лучше, где то хуже, тут все зависит от амбиций и знаний. Меньше всего платят на госах и банках. Там вообще программистов за людей не считают.
Очень хорошо платят в миндбоксе(сам там не работал, это по слухам), но туда хрен попадешь.

Я в офисе не сижу. Со сколькими людьми общался все говорят, что в офис ходят коллег увидеть и поболтать, а так все работают на удаленке в 90% случаев
 
Kain1029 сказал(а):
Да, работаю в компании. Технологии стандартные, .NET 8 , микросервисы, RabbitMQ , докер кубер и так далее по списку. Под шарп прям очень много работы есть на рынке

Я владею Sockets, Web Server, Базы данных, работа c SQL и по мелочи работа с апи телеги и дискорда. в целом пишу на WPF, WinForms. Владею ООП, уровень думаю чуть выше среднего. Это я щас в целом сказал о (C#/C++).
Из ИБ владею WinAPI из под шарпов и плюсов. Ну в общем так
Реально ли на стажерку куда-то попасть на шарпы? И какие технологии советуешь учить под собез на стажерку? В основном фрилансю.

серфил HH относительно годного под себя не нашёл просто.
 
Kain1029 сказал(а):
Стажер - 25-50
Джун 50-150
Миддл 150-300
Синьер 300+

Есть организации, которые способны платить х1.5

Все зависит от компании в которой работать. Где то платят лучше, где то хуже, тут все зависит от амбиций и знаний. Меньше всего платят на госах и банках. Там вообще программистов за людей не считают.
Очень хорошо платят в миндбоксе(сам там не работал, это по слухам), но туда хрен попадешь.

Я в офисе не сижу. Со сколькими людьми общался все говорят, что в офис ходят коллег увидеть и поболтать, а так все работают на удаленке в 90% случаев
Нажмите, чтобы раскрыть...

броу можешь ответить плз на мой вопрос выше. Хватит примерно моих знаний? для фриланса(мелких задач и проектов хватало.). Но нужен ли я компаниям с таким опытом?
 
Alexey18 сказал(а):
броу можешь ответить плз на мой вопрос выше. Хватит примерно моих знаний? для фриланса(мелких задач и проектов хватало.). Но нужен ли я компаниям с таким опытом?

Я же не знаю твой уровень знаний, соответственно и сказать ничего не могу.
90% вакансий на C# это бэкэнд. Соответственно надо смотреть WebAPI + PostreSQL + Docker + Gitlab. Это золотой набор компаний.
Это основные вещи которые надо знать.

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

Я когда собесы проходил , в конце просил фидбек и записывал, все , что необходимо подтянуть и потом читал. Как то так
 
Top