0 added
0 removed
Original
2026-01-01
Modified
2026-02-21
1
<p><a>#статьи</a></p>
1
<p><a>#статьи</a></p>
2
<ul><li>21 июн 2022</li>
2
<ul><li>21 июн 2022</li>
3
<li>0</li>
3
<li>0</li>
4
</ul><h2>Язык С#: где используют, что пишут, как появился и чем хорош</h2>
4
</ul><h2>Язык С#: где используют, что пишут, как появился и чем хорош</h2>
5
<p>Изучаем под микроскопом популярный язык от Microsoft, который называется совсем не "Си решётка".</p>
5
<p>Изучаем под микроскопом популярный язык от Microsoft, который называется совсем не "Си решётка".</p>
6
<p>Иллюстрация: Polina Vari для Skillbox Media</p>
6
<p>Иллюстрация: Polina Vari для Skillbox Media</p>
7
<p>Шеф-редактор Skillbox Media "Код". Пишет о разработке, софт-скиллах и культовых личностях в IT. Обожает Swift, продукты Apple и мемы про код.</p>
7
<p>Шеф-редактор Skillbox Media "Код". Пишет о разработке, софт-скиллах и культовых личностях в IT. Обожает Swift, продукты Apple и мемы про код.</p>
8
<p>C# (читается как "Си шарп") - это язык программирования от компании Microsoft. Изначально его создавали для проектов под Windows, но теперь это по-настоящему универсальный язык: на нём пишут игры, десктопные приложения, веб-сервисы, нейросети и даже графику для метавселенных.</p>
8
<p>C# (читается как "Си шарп") - это язык программирования от компании Microsoft. Изначально его создавали для проектов под Windows, но теперь это по-настоящему универсальный язык: на нём пишут игры, десктопные приложения, веб-сервисы, нейросети и даже графику для метавселенных.</p>
9
<p>Один из ведущих разработчиков языка - легендарный Андерс Хейлсберг, который до C# успел сделать Turbo Pascal и Delphi, а после - TypeScript (майкрософтовский JS на стероидах).</p>
9
<p>Один из ведущих разработчиков языка - легендарный Андерс Хейлсберг, который до C# успел сделать Turbo Pascal и Delphi, а после - TypeScript (майкрософтовский JS на стероидах).</p>
10
<p>Если коротко, этот язык:</p>
10
<p>Если коротко, этот язык:</p>
11
<ul><li>Кросс-платформенный - запускается почти на любом железе.</li>
11
<ul><li>Кросс-платформенный - запускается почти на любом железе.</li>
12
<li>Объектно-ориентированный - состоит из классов и объектов, которые умеют передавать свойства друг другу.</li>
12
<li>Объектно-ориентированный - состоит из классов и объектов, которые умеют передавать свойства друг другу.</li>
13
<li>Постоянно развивается - для тех, кто любит учиться.</li>
13
<li>Постоянно развивается - для тех, кто любит учиться.</li>
14
<li>Дружит с экосистемой Windows - для этого и был написан.</li>
14
<li>Дружит с экосистемой Windows - для этого и был написан.</li>
15
</ul><p>Есть две основных версии, зачем Microsoft стала делать свой язык программирования.</p>
15
</ul><p>Есть две основных версии, зачем Microsoft стала делать свой язык программирования.</p>
16
<p><strong>Официальная:</strong>чтобы упростить разработку приложений под Windows. А то языки в то время были сложные и плохо адаптировались под разные Windows-компьютеры.</p>
16
<p><strong>Официальная:</strong>чтобы упростить разработку приложений под Windows. А то языки в то время были сложные и плохо адаптировались под разные Windows-компьютеры.</p>
17
<p><strong>Правдоподобная:</strong>чтобы заменить Java, на который у Microsoft не было лицензии. В итоге получился почти такой же язык, но с интеграцией под Windows. Как и Java, он основан на языке C и легко запускается на любом устройстве. А название "Си" с решёткой как бы говорит: "У нас тут не копия Java, а новый язык в линейке "Си“".</p>
17
<p><strong>Правдоподобная:</strong>чтобы заменить Java, на который у Microsoft не было лицензии. В итоге получился почти такой же язык, но с интеграцией под Windows. Как и Java, он основан на языке C и легко запускается на любом устройстве. А название "Си" с решёткой как бы говорит: "У нас тут не копия Java, а новый язык в линейке "Си“".</p>
18
<p>Но мы-то знаем :)</p>
18
<p>Но мы-то знаем :)</p>
19
<em>Кадр: мультсериал "Скуби-Ду"</em><p>Кстати, всю эту историю о борьбе Microsoft за Java и причинах появления C# мы рассказывали в <a>статье о Java Virtual Machine</a> - в разделе о конкурентах JVM.</p>
19
<em>Кадр: мультсериал "Скуби-Ду"</em><p>Кстати, всю эту историю о борьбе Microsoft за Java и причинах появления C# мы рассказывали в <a>статье о Java Virtual Machine</a> - в разделе о конкурентах JVM.</p>
20
<p>Запуск любой программы на C# начинается с главной функции - Main(). В ней прописано, как программа будет себя вести дальше - что за чем пойдёт, что за что отвечает и так далее. Выполняется она из главного класса - назовём его HelloWorld. Если перевести это на программистский, получится как-то так:</p>
20
<p>Запуск любой программы на C# начинается с главной функции - Main(). В ней прописано, как программа будет себя вести дальше - что за чем пойдёт, что за что отвечает и так далее. Выполняется она из главного класса - назовём его HelloWorld. Если перевести это на программистский, получится как-то так:</p>
21
using System; // Создаём место, где будет лежать наша программа. Его называют пространством имён. class HelloWorld { //Задаём главный класс и даём ему имя -- "HelloWorld". static void Main() { //Объявляем главную функцию. //Вставляем сюда любой код. Например, можно научить программу с нами здороваться: Console.Write("Как тебя зовут? "); string name = Console.ReadLine(); Console.WriteLine("Привет, " + name + "!"); } }<p>Можете вставить этот код в <a>компилятор</a>и посмотреть, что получится. Если всё сделать правильно, консоль сначала спросит ваше имя, а потом поздоровается. А если туда потом добавить реплик, функций и визуала, получится настоящий чат-бот - как его запилить, рассказываем в <a>этой статье</a>.</p>
21
using System; // Создаём место, где будет лежать наша программа. Его называют пространством имён. class HelloWorld { //Задаём главный класс и даём ему имя -- "HelloWorld". static void Main() { //Объявляем главную функцию. //Вставляем сюда любой код. Например, можно научить программу с нами здороваться: Console.Write("Как тебя зовут? "); string name = Console.ReadLine(); Console.WriteLine("Привет, " + name + "!"); } }<p>Можете вставить этот код в <a>компилятор</a>и посмотреть, что получится. Если всё сделать правильно, консоль сначала спросит ваше имя, а потом поздоровается. А если туда потом добавить реплик, функций и визуала, получится настоящий чат-бот - как его запилить, рассказываем в <a>этой статье</a>.</p>
22
<p>C# -<a>пятый</a>по популярности язык программирования в мире. Его используют банки, диджитал-агентства, провайдеры связи и крупные IT-компании. Вот что пишут на C# российские и зарубежные корпорации:</p>
22
<p>C# -<a>пятый</a>по популярности язык программирования в мире. Его используют банки, диджитал-агентства, провайдеры связи и крупные IT-компании. Вот что пишут на C# российские и зарубежные корпорации:</p>
23
<ul><li>Microsoft - приложения для Windows и Xbox.</li>
23
<ul><li>Microsoft - приложения для Windows и Xbox.</li>
24
<li>Tesla - корпоративные веб-сервисы и программы.</li>
24
<li>Tesla - корпоративные веб-сервисы и программы.</li>
25
<li>Stack Overflow - серверную логику сайтов.</li>
25
<li>Stack Overflow - серверную логику сайтов.</li>
26
<li>Сбербанк - 3D-графику и программы виртуальной реальности.</li>
26
<li>Сбербанк - 3D-графику и программы виртуальной реальности.</li>
27
<li>Ozon - складские и логистические системы.</li>
27
<li>Ozon - складские и логистические системы.</li>
28
<li>"Яндекс" - приложения для автоматизации продаж.</li>
28
<li>"Яндекс" - приложения для автоматизации продаж.</li>
29
</ul><p>Рассмотрим сферы применения "шарпов".</p>
29
</ul><p>Рассмотрим сферы применения "шарпов".</p>
30
<p>Если вы увлекаетесь геймдевом или просто играете в игры, то наверняка слышали про<a>Unity</a>. Это такая среда, где можно быстро собрать игру из готовых объектов, а потом запустить почти на любом железе. Процесс разработки выглядит так: вы продумываете содержание игры и её сюжет, а Unity берёт на себя графику, физику, звук и другие технические штуки.</p>
30
<p>Если вы увлекаетесь геймдевом или просто играете в игры, то наверняка слышали про<a>Unity</a>. Это такая среда, где можно быстро собрать игру из готовых объектов, а потом запустить почти на любом железе. Процесс разработки выглядит так: вы продумываете содержание игры и её сюжет, а Unity берёт на себя графику, физику, звук и другие технические штуки.</p>
31
Геймплей игры Escape from Tarkov, написанной на Unity<em>Скриншот: Escape from Tarkov / Battlestate Games</em><p>В теории на Unity можно делать не только игры, но и любые проекты, где нужна 3D-графика, - метавселенные, программы для VR-устройств, дизайн интерьеров и так далее. А пишут под Unity в основном на языке C# - отличный повод выучить именно его, если видите себя в геймдеве или виртуальной реальности.</p>
31
Геймплей игры Escape from Tarkov, написанной на Unity<em>Скриншот: Escape from Tarkov / Battlestate Games</em><p>В теории на Unity можно делать не только игры, но и любые проекты, где нужна 3D-графика, - метавселенные, программы для VR-устройств, дизайн интерьеров и так далее. А пишут под Unity в основном на языке C# - отличный повод выучить именно его, если видите себя в геймдеве или виртуальной реальности.</p>
32
<p>Поскольку C# - это язык от Microsoft, на нём удобно писать настольные приложения для Windows. Для этого разработчики придумали специальную платформу - называется<a>.NET Framework</a>. Она умеет переводить код из понятного человеку в понятный процессору - то есть <strong>компилировать</strong>.</p>
32
<p>Поскольку C# - это язык от Microsoft, на нём удобно писать настольные приложения для Windows. Для этого разработчики придумали специальную платформу - называется<a>.NET Framework</a>. Она умеет переводить код из понятного человеку в понятный процессору - то есть <strong>компилировать</strong>.</p>
33
<p>Преимущество платформы в том, что она может исполнить любую C#-команду на любом процессоре - а на Windows работает не меньше тысячи разных моделей. Если бы не .NET, пришлось бы компилировать код под каждое железо отдельно. А ещё .NET поддерживает много плагинов, библиотек и шаблонов для наглядной разработки интерфейсов - это фактически целый мир и экосистема для программиста на Windows.</p>
33
<p>Преимущество платформы в том, что она может исполнить любую C#-команду на любом процессоре - а на Windows работает не меньше тысячи разных моделей. Если бы не .NET, пришлось бы компилировать код под каждое железо отдельно. А ещё .NET поддерживает много плагинов, библиотек и шаблонов для наглядной разработки интерфейсов - это фактически целый мир и экосистема для программиста на Windows.</p>
34
Создание Windows-приложения с помощью библиотеки WPF.NET<em>Кадр:<a>Payload</a>/ YouTube</em><p>С помощью фреймворка Mono один и тот же С#-код можно запускать в разных десктопных системах - например, в Linux или macOS. А если код надо запустить на мобильных платформах, используют версию Mono для смартфонов -<a>Xamarin</a>.</p>
34
Создание Windows-приложения с помощью библиотеки WPF.NET<em>Кадр:<a>Payload</a>/ YouTube</em><p>С помощью фреймворка Mono один и тот же С#-код можно запускать в разных десктопных системах - например, в Linux или macOS. А если код надо запустить на мобильных платформах, используют версию Mono для смартфонов -<a>Xamarin</a>.</p>
35
<p>Допустим, мы пишем приложение для смартфона - мобильные карты. Они должны одинаково работать и на айфоне, и на Android-устройстве, но выглядеть нативно - то есть по дизайн-коду своих платформ. Вот как эту идею можно воплотить на Xamarin:</p>
35
<p>Допустим, мы пишем приложение для смартфона - мобильные карты. Они должны одинаково работать и на айфоне, и на Android-устройстве, но выглядеть нативно - то есть по дизайн-коду своих платформ. Вот как эту идею можно воплотить на Xamarin:</p>
36
<ul><li>Проектируем дизайн приложения в визуальном редакторе.</li>
36
<ul><li>Проектируем дизайн приложения в визуальном редакторе.</li>
37
<li>Привязываем к нему логику на C#.</li>
37
<li>Привязываем к нему логику на C#.</li>
38
<li>Всё это дело подхватывает Xamarin и переводит в родные для iOS и Android интерфейсы.</li>
38
<li>Всё это дело подхватывает Xamarin и переводит в родные для iOS и Android интерфейсы.</li>
39
<li>На выходе получаем целых два приложения - для Android и iPhone. А программировали мы всего один раз - удобно вышло.</li>
39
<li>На выходе получаем целых два приложения - для Android и iPhone. А программировали мы всего один раз - удобно вышло.</li>
40
</ul>Мобильное приложение "Карты", созданное с помощью Xamarin.Forms<em>Изображение:<a>Microsoft</a></em><p>Подробнее о том, как писать мобильные приложения на Xamarin, мы рассказываем в <a>этой статье</a>.</p>
40
</ul>Мобильное приложение "Карты", созданное с помощью Xamarin.Forms<em>Изображение:<a>Microsoft</a></em><p>Подробнее о том, как писать мобильные приложения на Xamarin, мы рассказываем в <a>этой статье</a>.</p>
41
<p>Когда пользователь что-то нажимает на сайте, его действия сначала обрабатывает сервер. Например, мы ставим лайк фотографии - сервер это получает и записывает у себя в базе данных: "Вот такому пользователю понравилось". Или, допустим, логинимся на сайте - сервер сверяет пароли и отвечает: "Войти разрешаю".</p>
41
<p>Когда пользователь что-то нажимает на сайте, его действия сначала обрабатывает сервер. Например, мы ставим лайк фотографии - сервер это получает и записывает у себя в базе данных: "Вот такому пользователю понравилось". Или, допустим, логинимся на сайте - сервер сверяет пароли и отвечает: "Войти разрешаю".</p>
42
<p>В чистом виде сервер - это просто машина, и, чтобы она заработала, нужен специальный софт. Нередко его пишут на языках PHP и Java, но если вам нужен софт для сервера на Windows, эксперты рекомендуют именно C#. Он хорошо работает с фреймворками от Microsoft и быстро запускается на Windows-машинах.</p>
42
<p>В чистом виде сервер - это просто машина, и, чтобы она заработала, нужен специальный софт. Нередко его пишут на языках PHP и Java, но если вам нужен софт для сервера на Windows, эксперты рекомендуют именно C#. Он хорошо работает с фреймворками от Microsoft и быстро запускается на Windows-машинах.</p>
43
<p>В любое приложение на C# можно встраивать алгоритмы машинного обучения - например, компьютерное зрение, распознавание лиц или музыкальные рекомендации в плеере. Фишка в том, что для этого не надо глубоко разбираться в математике или Data Science. Достаточно подключить специальную библиотеку от Microsoft -<a>ML.NET</a>, - и она возьмёт все внутренности на себя.</p>
43
<p>В любое приложение на C# можно встраивать алгоритмы машинного обучения - например, компьютерное зрение, распознавание лиц или музыкальные рекомендации в плеере. Фишка в том, что для этого не надо глубоко разбираться в математике или Data Science. Достаточно подключить специальную библиотеку от Microsoft -<a>ML.NET</a>, - и она возьмёт все внутренности на себя.</p>
44
<p>А ещё с ML.NET работает кросс-платформенность - то есть алгоритмы в теории можно запускать вообще где угодно. Например, на банкомате, если надо сделать авторизацию по лицу.</p>
44
<p>А ещё с ML.NET работает кросс-платформенность - то есть алгоритмы в теории можно запускать вообще где угодно. Например, на банкомате, если надо сделать авторизацию по лицу.</p>
45
Тренировка алгоритмов компьютерного зрения на ML.NET<em>Изображение:<a>Microsoft</a></em><p><strong>Независимость от железа.</strong>Программисту не надо адаптировать программу под разные платформы и системы - за него это делает виртуальная машина, вшитая в .NET Framework. В итоге один и тот же код можно запускать на любых устройствах - смартфонах, компьютерах, серверах, банкоматах и даже умных часах.</p>
45
Тренировка алгоритмов компьютерного зрения на ML.NET<em>Изображение:<a>Microsoft</a></em><p><strong>Независимость от железа.</strong>Программисту не надо адаптировать программу под разные платформы и системы - за него это делает виртуальная машина, вшитая в .NET Framework. В итоге один и тот же код можно запускать на любых устройствах - смартфонах, компьютерах, серверах, банкоматах и даже умных часах.</p>
46
<p><strong>Отличная совместимость с Windows.</strong>Не зря же язык разработали именно в Microsoft. Так же как<a>Swift</a>идеально подходит для программирования под экосистему Apple, C# прекрасно вписывается в экосистему Windows.</p>
46
<p><strong>Отличная совместимость с Windows.</strong>Не зря же язык разработали именно в Microsoft. Так же как<a>Swift</a>идеально подходит для программирования под экосистему Apple, C# прекрасно вписывается в экосистему Windows.</p>
47
<p><strong>Управление памятью.</strong>Чтобы программа работала стабильно, её надо иногда чистить от ненужных объектов, ссылок, кэша и прочего мусора. В C# это происходит автоматически - разработчику не надо следить за расходом памяти, бороться с её утечками или удалять мёртвые куски кода.</p>
47
<p><strong>Управление памятью.</strong>Чтобы программа работала стабильно, её надо иногда чистить от ненужных объектов, ссылок, кэша и прочего мусора. В C# это происходит автоматически - разработчику не надо следить за расходом памяти, бороться с её утечками или удалять мёртвые куски кода.</p>
48
<p><strong>Строгая типизация.</strong>Когда вы объявляете переменную в C#, надо сначала указать, что в ней лежит - строка, число или массив. Так разрабатывать чуть дольше, зато ваш код работает предсказуемо - числа взаимодействуют с числами, строки со строками и так далее. В языках со слабой типизацией свободы и драйва больше, но есть шанс пропустить ошибку, которая всплывёт в готовой программе.</p>
48
<p><strong>Строгая типизация.</strong>Когда вы объявляете переменную в C#, надо сначала указать, что в ней лежит - строка, число или массив. Так разрабатывать чуть дольше, зато ваш код работает предсказуемо - числа взаимодействуют с числами, строки со строками и так далее. В языках со слабой типизацией свободы и драйва больше, но есть шанс пропустить ошибку, которая всплывёт в готовой программе.</p>
49
<p><strong>Большое сообщество.</strong>На С# пишут более миллиона программистов по всему миру. В соцсетях полно чатов и сообществ "шарпистов", где можно задать вопрос, обсудить сложную тему или найти готовое решение. В теории можно даже найти ментора, который поделится знаниями и поможет быстрее освоить язык.</p>
49
<p><strong>Большое сообщество.</strong>На С# пишут более миллиона программистов по всему миру. В соцсетях полно чатов и сообществ "шарпистов", где можно задать вопрос, обсудить сложную тему или найти готовое решение. В теории можно даже найти ментора, который поделится знаниями и поможет быстрее освоить язык.</p>
50
<p><strong>Синтаксический сахар.</strong>В С# есть много способов сократить код, не нарушая логику программы. Программисты называют такие приёмы "синтаксическим сахаром" - они помогают сделать код проще, понятнее и в целом симпатичнее. Сравните, например, как выглядит сложение чисел с "сахаром" и без.</p>
50
<p><strong>Синтаксический сахар.</strong>В С# есть много способов сократить код, не нарушая логику программы. Программисты называют такие приёмы "синтаксическим сахаром" - они помогают сделать код проще, понятнее и в целом симпатичнее. Сравните, например, как выглядит сложение чисел с "сахаром" и без.</p>
51
<p>Без "сахара":</p>
51
<p>Без "сахара":</p>
52
static int sum(params int[] numbers) { int res = 0; foreach (int a in numbers) { res += a; } return res; }<p>С "сахаром":</p>
52
static int sum(params int[] numbers) { int res = 0; foreach (int a in numbers) { res += a; } return res; }<p>С "сахаром":</p>
53
Console.WriteLine(sum(1, 2, 3)); Console.WriteLine(sum(8, 1, 1,5));<p>Важно: "сахар" не стоит использовать слишком часто, иначе можно ненароком получить "синтаксический диабет" - ситуацию, когда в программе всё так зашифровано, что ничего не понять. Применять "сахар" нужно осторожно и только под присмотром профессионалов.</p>
53
Console.WriteLine(sum(1, 2, 3)); Console.WriteLine(sum(8, 1, 1,5));<p>Важно: "сахар" не стоит использовать слишком часто, иначе можно ненароком получить "синтаксический диабет" - ситуацию, когда в программе всё так зашифровано, что ничего не понять. Применять "сахар" нужно осторожно и только под присмотром профессионалов.</p>
54
<p>Есть у C# и недостатки, причём довольно серьёзные, - давайте разберём и их тоже.</p>
54
<p>Есть у C# и недостатки, причём довольно серьёзные, - давайте разберём и их тоже.</p>
55
<p><strong>Скорость.</strong>Когда мы запускаем программу на C#, код исполняется не сразу, а сначала адаптируется под нужное железо. Так мы охватываем больше платформ, но теряем в скорости - программе нужно сделать двойную работу, чтобы просто стартовать. Из-за этого интерфейсы на С# иногда подтормаживают при первом запуске.</p>
55
<p><strong>Скорость.</strong>Когда мы запускаем программу на C#, код исполняется не сразу, а сначала адаптируется под нужное железо. Так мы охватываем больше платформ, но теряем в скорости - программе нужно сделать двойную работу, чтобы просто стартовать. Из-за этого интерфейсы на С# иногда подтормаживают при первом запуске.</p>
56
<p><strong>Безопасность.</strong>Эксперты говорят, что код на C# легко декомпилировать - то есть перевести из машинного обратно в человеческий. Проблема в том, что так программу может легко прочитать хакер или конкурент - и изучить её уязвимости, украсть фрагменты кода или написать для неё вредоносный софт.</p>
56
<p><strong>Безопасность.</strong>Эксперты говорят, что код на C# легко декомпилировать - то есть перевести из машинного обратно в человеческий. Проблема в том, что так программу может легко прочитать хакер или конкурент - и изучить её уязвимости, украсть фрагменты кода или написать для неё вредоносный софт.</p>
57
<p><strong>Мало доступа к железу.</strong>Так как С# - язык высокого уровня, на нём редко пишут проекты, где нужно полное взаимодействие с железом, - игровые движки, операционные системы, авиационный софт и так далее. Та же Unity целиком написана на низкоуровневом языке C++, хотя и умеет исполнять С#-команды.</p>
57
<p><strong>Мало доступа к железу.</strong>Так как С# - язык высокого уровня, на нём редко пишут проекты, где нужно полное взаимодействие с железом, - игровые движки, операционные системы, авиационный софт и так далее. Та же Unity целиком написана на низкоуровневом языке C++, хотя и умеет исполнять С#-команды.</p>
58
<p>По <a>данным "Хабр Карьеры"</a>, средняя зарплата "шарпистов" составляет 162 000 рублей в месяц. Это не самые космические цифры для IT, но вполне приличные - примерно столько же получают программисты на Java, Python, PHP и других популярных языках.</p>
58
<p>По <a>данным "Хабр Карьеры"</a>, средняя зарплата "шарпистов" составляет 162 000 рублей в месяц. Это не самые космические цифры для IT, но вполне приличные - примерно столько же получают программисты на Java, Python, PHP и других популярных языках.</p>
59
<em>Скриншот:<a>Habr</a>/ Skillbox Media</em><p>На российском hh.ru мы нашли около<a>4 тысяч вакансий</a>для разработчиков на C#. Больше всего предложений в Москве и Петербурге - это неудивительно, ведь там сосредоточена львиная доля энтерпрайза, где C# является стандартом. В основном компании ищут программистов для разработки бэкенда и десктопных программ, но есть варианты и в геймдеве, и в больших данных.</p>
59
<em>Скриншот:<a>Habr</a>/ Skillbox Media</em><p>На российском hh.ru мы нашли около<a>4 тысяч вакансий</a>для разработчиков на C#. Больше всего предложений в Москве и Петербурге - это неудивительно, ведь там сосредоточена львиная доля энтерпрайза, где C# является стандартом. В основном компании ищут программистов для разработки бэкенда и десктопных программ, но есть варианты и в геймдеве, и в больших данных.</p>
60
<p>Интересно, что стажёры, которые только пришли в профессию,<a>могут получать</a>в районе 40 тысяч рублей в месяц. А если у новичка хорошая теоретическая база или уже есть какой-то опыт разработки, можно сразу пробоваться на Junior-позиции - там зарплаты уже около<a>64 тысяч рублей</a>. Среди крупных компаний, которые готовы брать джунов-шарпистов, - Сбербанк, "МТС", Ozon и Kaspersky.</p>
60
<p>Интересно, что стажёры, которые только пришли в профессию,<a>могут получать</a>в районе 40 тысяч рублей в месяц. А если у новичка хорошая теоретическая база или уже есть какой-то опыт разработки, можно сразу пробоваться на Junior-позиции - там зарплаты уже около<a>64 тысяч рублей</a>. Среди крупных компаний, которые готовы брать джунов-шарпистов, - Сбербанк, "МТС", Ozon и Kaspersky.</p>
61
<em>Скриншот: сайт HeadHunter / Skillbox Media</em><p>Более опытным Middle-разработчикам компании готовы платить в районе<a>120-150 тысяч</a>рублей, а сеньорам и тимлидам - от <a>234 тысяч</a>. Но такие программисты должны не только хорошо кодить, но и кое-что понимать в управлении командой и проектом.</p>
61
<em>Скриншот: сайт HeadHunter / Skillbox Media</em><p>Более опытным Middle-разработчикам компании готовы платить в районе<a>120-150 тысяч</a>рублей, а сеньорам и тимлидам - от <a>234 тысяч</a>. Но такие программисты должны не только хорошо кодить, но и кое-что понимать в управлении командой и проектом.</p>
62
Вакансии для C#-разработчиков на <a>hh.ru</a><em>Скриншот: сайт HeadHunter / Skillbox Media</em><p>Если вы ищете язык для старта в программировании, обязательно рассмотрите С# - он популярен, широко распространён и официально поддерживается Microsoft. Его используют тысячи компаний, поэтому новичок может довольно быстро получить оффер. Особенно понравится язык тем, кто хочет делать 3D-графику на Unity или писать программы для Windows.</p>
62
Вакансии для C#-разработчиков на <a>hh.ru</a><em>Скриншот: сайт HeadHunter / Skillbox Media</em><p>Если вы ищете язык для старта в программировании, обязательно рассмотрите С# - он популярен, широко распространён и официально поддерживается Microsoft. Его используют тысячи компаний, поэтому новичок может довольно быстро получить оффер. Особенно понравится язык тем, кто хочет делать 3D-графику на Unity или писать программы для Windows.</p>
63
<a>Курс с трудоустройством: "Веб-разработчик" Узнать о курсе</a>
63
<a>Курс с трудоустройством: "Веб-разработчик" Узнать о курсе</a>