Посмотрите на эту вакансию и давайте разберёмся, за что там платят от 210 тысяч рублей. Сегодня говорим про .NET.
Что такое .NET
.NET (произносится как «дот нет») — это платформа для разработки программ под Windows на одном из поддерживаемых языков: C#, Visual Basic .NET и F#.
Можно представить, что .NET — это переходник с вашего кода на любую Windows. Вы пишете один универсальный код, а среда .NET переводит его на язык процессора.
Чуть подробнее работает так:
- Вы пишете код на поддерживаемом языке, можно даже на смеси.
- В коде используются библиотеки .NET, которые позволяют приземлить код на Windows.
- При компиляции .NET переводит всё написанное в собственный промежуточный код.
- При исполнении .NET подтянет свои библиотеки на компьютер с Windows и запускает нечто похожее на виртуальную машину.
- Виртуальная машина исполняет промежуточный код, переводя его на язык процессора.
- Программа исполняется.
Зачем нужен .NET
Раньше, когда разработчик писал программу под Windows, ему нужно было делать несколько версий для разных операционных систем:
- Windows 98,
- Windows ME,
- Windows NT 4.0,
- Windows 2000,
- Windows XP.
Несмотря на то что все они относятся к семейству Windows, с точки зрения разработки это были разные операционные системы: где-то отличалась система работы с файлами, где-то был иначе организован доступ к железу. В итоге программисту приходилось учитывать все эти различия. Чем сложнее программа, тем больше различий нужно было учесть.
.NET убирает проблему совместимости: под каждую версию Windows сама компания Microsoft делала свой набор «переходников», которые одинаково хорошо принимали исходный код для .NET. То есть вы писали одну программу, а уже платформа .NET беспокоилась о совместимости.
Есть ещё один вариант создания программ — транслировать их в промежуточный код и упаковывать в установщик. При установке виртуальная машина смотрит, на какой версии Windows она работает, и заменяет общие команды на вызовы конкретных библиотек из операционной системы. В итоге готовая программа использует библиотеки из нужной версии Windows и работает без ошибок.
А ещё есть версия .NET Core — она работает и на MacOS, и на Linux, но общие принципы те же самые: виртуальная машина подбирает библиотеки, подходящие под нужную операционную систему.
.NET — это как Java? В чём различия?
.NET издалека напоминает Java, потому что тоже создаёт своего рода виртуальную машину внутри операционной системы и выполняет там свой код. Но есть и различия:
- В Java виртуальная машина отвечает за работу кода на любом процессоре и железе. Можно представить, что виртуальная машина Java — это компьютер внутри компьютера. Представьте, что Java — это дорогой международный отель посреди пустыни: свой водопровод, своё хозяйство, охрана, всё своё. Вы как в пузыре.
- В .NET виртуальная машина нужна скорее как переводчик на «местный диалект». Вы пользуетесь инфраструктурой местной операционной системы, а .NET обеспечивает вам взаимопонимание.
Почему .NET востребован на рынке
.NET востребован, потому что это делает разработку дешевле: вместо того чтобы нанимать три команды программистов под Windows, MacOS и Linux, можно нанять одну на .NET. Код будет написан за тот же срок, но работать будет сразу во всех операционных системах.
Сколько времени нужно, чтобы освоить .NET
.NET – это просто платформа со своими командами, в ней можно освоиться за 3–4 недели, если есть начальный опыт программирования. Но смысл .NET в том, что для его использования нужно знать один из трёх поддерживаемых языков программирования, а на это нужно время.
Самый простой и быстрый способ освоить .NET — изучать C# прямо на примерах из .NET. Дело в том, что именно этот язык считается стандартом для платформы, поэтому лучше начать с него, и уже через 3-4 месяца вы сможете писать несложные .NET-программы.
210 000 — это максимальная зарплата для .NET-разработчика?
Нет, это средняя зарплата уровня мидла. Если вы сеньор или тимлид, знаете .NET и базы данных, то можете присматриваться к вакансиям с зарплатой от 400 000 рублей:
А вы можете научить программировать на .NET?
Курсов именно по .NET у нас ещё нет, но есть хороший курс по алгоритмам. Знания алгоритмов нужны любому программисту, в том числе и для .NET.