lin 2 年之前
父节点
当前提交
67adbdd5f9
共有 3 个文件被更改,包括 67 次插入0 次删除
  1. 67 0
      Лекции/CSharp/CSharp.md
  2. 二进制
      Лекции/CSharp/Photos/1.png
  3. 二进制
      Лекции/CSharp/Photos/2.jpg

+ 67 - 0
Лекции/CSharp/CSharp.md

@@ -0,0 +1,67 @@
+# CSharp
+C# — это язык программирования от компании Microsoft. Изначально его создавали для проектов под Windows, 
+но теперь это по-настоящему универсальный язык: на нём пишут игры, десктопные приложения, веб-сервисы, нейросети и даже графику для метавселенных.
+___
+![Hello World на C#](/Photos/1)
+___
+**Кто и для чего использует C#**
+C# — пятый по популярности язык программирования в мире. Его используют банки, диджитал-агентства, провайдеры связи и крупные IT-компании. Вот что пишут на C# российские и зарубежные корпорации:
+Microsoft — приложения для Windows и Xbox.
+Tesla — корпоративные веб-сервисы и программы.
+Stack Overflow — серверную логику сайтов.
+Сбербанк — 3D-графику и программы виртуальной реальности.
+Ozon — складские и логистические системы.
+«Яндекс» — приложения для автоматизации продаж.
+___
+**Сферы применения C#.**
+*Игры и виртуальная реальность на Unity*
+Если вы увлекаетесь разработкой игр или просто играете в игры, то наверняка слышали про Unity. Это такая среда, где можно быстро собрать игру из готовых объектов, а потом запустить почти на любом компьютере.
+Процесс разработки выглядит так: вы продумываете содержание игры и её сюжет, а Unity берёт на себя графику, физику, звук.
+___
+**Программы для Windows**
+Поскольку C# — это язык от Microsoft, на нём удобно писать настольные приложения для Windows. Для этого разработчики придумали специальную платформу — называется .NET Framework. 
+Она умеет переводить код из понятного человеку в понятный процессору — то есть компилировать.
+
+Преимущество платформы в том, что она может исполнить любую C#-команду на любом процессоре — а на Windows работает не меньше тысячи разных моделей. 
+Если бы не .NET, пришлось бы компилировать код под каждый компьюер отдельно. 
+А ещё .NET поддерживает много плагинов, библиотек и шаблонов для наглядной разработки интерфейсов — это фактически целый мир и экосистема для программиста на Windows.
+___
+**Кросс-платформенные приложения**
+С помощью фреймворка Mono один и тот же С#-код можно запускать в разных десктопных системах — например, в Linux или macOS. А если код надо запустить на мобильных платформах, используют версию Mono для смартфонов — Xamarin.
+___
+**Нейросети**
+В любое приложение на C# можно встраивать алгоритмы машинного обучения — например, компьютерное зрение, распознавание лиц или музыкальные рекомендации в плеере. Для этого не надо глубоко разбираться в математике или Data Science. 
+Достаточно подключить специальную библиотеку от Microsoft — ML.NET, — и она возьмёт все внутренности на себя.
+
+![Тренировка алгоритмов компьютерного зрения на ML.NET](/Photos/2)
+
+А ещё с ML.NET работает кросс-платформенность — то есть алгоритмы в теории можно запускать вообще где угодно. Например, на банкомате, если надо сделать авторизацию по лицу.
+___
+**Преимущества C#**
+1. Независимость от системных требований. Программисту не надо адаптировать программу под разные платформы и системы — за него это делает виртуальная машина, вшитая в .NET Framework. 
+В итоге один и тот же код можно запускать на любых устройствах — смартфонах, компьютерах, серверах, банкоматах и даже умных часах.
+
+2. Отличная совместимость с Windows.
+Так же как Swift идеально подходит для программирования под экосистему Apple, C# прекрасно вписывается в экосистему Windows.
+
+3. Управление памятью. Чтобы программа работала стабильно, её надо иногда чистить от ненужных объектов, ссылок, кэша и прочего мусора. 
+В C# это происходит автоматически — разработчику не надо следить за расходом памяти, бороться с её утечками или удалять мёртвые куски кода.
+
+4. Строгая типизация. Когда вы объявляете переменную в C#, надо сначала указать, что в ней лежит — строка, число или массив. 
+Так разрабатывать чуть дольше, зато ваш код работает предсказуемо — числа взаимодействуют с числами, строки со строками и так далее. 
+В языках со слабой типизацией свободы и драйва больше, но есть шанс пропустить ошибку, которая всплывёт в готовой программе.
+
+5. Большое сообщество. На С# пишут более миллиона программистов по всему миру. В соцсетях полно чатов и сообществ «шарпистов», где можно задать вопрос, обсудить сложную тему или найти готовое решение. 
+В теории можно даже найти ментора, который поделится знаниями и поможет быстрее освоить язык.
+___
+**Недостатки языка**
+Есть у C# и недостатки, причём довольно серьёзные, — давайте разберём и их тоже.
+
+1. Скорость. Когда мы запускаем программу на C#, код исполняется не сразу, а сначала адаптируется под нужное железо. Так мы охватываем больше платформ, но теряем в скорости — программе нужно сделать двойную работу, чтобы просто стартовать. Из-за этого интерфейсы на С# иногда подтормаживают при первом запуске.
+
+2. Безопасность. Эксперты говорят, что код на C# легко декомпилировать — то есть перевести из машинного обратно в человеческий. 
+Проблема в том, что так программу может легко прочитать хакер или конкурент — и изучить её уязвимости, украсть фрагменты кода или написать для неё вредоносный софт.
+___
+**Зарплаты программистов на C#**
+По данным «Хабр Карьеры», средняя зарплата разработчиков на C# составляет 162 000 рублей в месяц. 
+Это не самые космические цифры для IT, но вполне приличные — примерно столько же получают программисты на Java, Python, PHP и других популярных языках.

二进制
Лекции/CSharp/Photos/1.png


二进制
Лекции/CSharp/Photos/2.jpg