если в резюме разработчика основной стек это asp net и ms sql значит перед нами
Если в резюме разработчика основной стек это asp net и ms sql значит перед нами
Мы обратились к экспертам и представителям различных компаний, чтобы выяснить, каких кандидатов они видят на позиции ASP.NET-разработчика
Сергей Мисюковец, Lead Software Engineer в Aperitas
Компонент ASP, как и прочие, имеет свою специфику, важно и необходимо знать его основные специфические аспекты, преимущество перед другими, подводные камни. Это все должно сочетаться с навыками администрирования серверов с веб-сервисами (IIS) и данными. Веб-разработка подразумевает под собой работу с протоколом HTTP, поэтому посредственные знания в этом направлении недопустимы.
Если мы говорим о Full Stack, мы имеем в виду, что разработчик владеет хорошими знаниями в других областях. Работа с данными означает, что необходимо знать основные принципы работы с базами данных, грамотное построение моделей данных.
При разговоре о клиентской части имеются в виду знания JavaScript (как основ, так и фреймворков), HTML, CSS, инструментов отладки клиента.
Далее общие вещи: менеджеры для работы с базами данных, хотя зачастую VS имеет свои lite инструменты; отладка клиента сейчас хорошо поддерживается браузерами (особенно удобен Chrome) в связке с Fiddler, который позволяет мониторить HTTP-трафик; также необходимо дружить с готовыми инструментами в коробке с сервером для его администрирования.
3. Я отдаю все-таки предпочтение людям с образованием (лучше, конечно, дневное, смежное с информационными технологиями).
Это субъективно, конечно, но для меня люди, которые общались с такими же, как они, пять лет, уже имеют более качественное мышление и понятие в голове.
Но есть очень много способных ребят, которые вошли в профессию сами (курсы, самообучение, друг поднатаскал и др.). Таких надо выслушать до конца, внимательно, попытаться проследить динамику их роста. Зачастую это ребята, которые либо нестандартно мыслят, либо очень усидчивы, либо имеют другие интересные оригинальные качества.
Бывают, конечно, и разочарования, человек вроде и старается, видно, что хочет освоить разработку, но на выходе у него лучше получается рисовать картинки на листах с тестовыми заданиями.
4. Требования к опыту опять же зависят от многих факторов (сложность проекта, потенциальные варианты распределения задач в команде, пробелы в ресурсах и т.д.), в зависимости от которых мы можем рассматривать кандидатов с различным багажом.
И вот он может взять на себя добрую часть задач и разгрузить остальную команду, освободить ресурсы, непосредственно связанные с веб-частью.
Потом вдруг оказывается, что этот человек схватывает все на лету, он морально совместим с командой и живет проектом, ему интересно, он задает правильные вопросы. Через год-полгода он уже закрывает хорошие куски с веб-частью. Таквот, таким людям нет цены, хотя помним (да?), он пришел без опыта в веб-разработке.
Другая сторона медали: приходит человек, опыт есть, портфолио на первый взгляд приличное, стек технологий – глаза разбегаются. Но в глазах огня нет, вектор развития не прощупывается.
Или копаешь глубже на собеседовании, а он, оказывается, возле одного проекта просто «рядом лежал», возле второго «постоял немного». Не вскроешь – имеешь потенциальную проблему.
5. В целом да, чаще всего есть. Если брать специфику процессов или структурной организации компании, то тут явно будут выигрывать кандидаты, которые «варились» именно в таких котлах.
Другой случай: ваш продукт связан с наукой, и человек когда-то защищал кандидатскую в этом направлении (просто имеет глубокие знания), тут явное преимущество при прочих одинаковых моментах.
Далее скажу, что продуктовая компания больше обратит внимание на искру в глазах будущего звена команды, на возможность качественно реализовать конкретную задачу здесь и сейчас (имеется в виду, что стек технологий может закрывать только нужное направление) в отличие от аутсорсной компании, которая все-таки больше будет примерять человека на несколько проектов (на всякий случай), а также на полезность для компании в виде потенциально осевших на ее счету купюр.
Антон Залетов, старший разработчик, Asia Fusion Technology
1. Самое главное – знать основу. Это классические C#, ASP.NET и MSSQL. Причем надо не только уметь как-то их использовать, но и хотя бы в общих чертах понимать, как они работают «под капо-том». Помимо этого, очень востребованы такие штуки, как Redis и разнообразнейшие очереди сообщений вроде RabbitMQ и Apache Kafka. Ну и, конечно, его величество Git.
2. В качестве основного инструмента Microsoft Visual Studio пока вне конкуренции. Хотя некоторые у нас уже пробуют новый Rider от JetBrains, но отзывы пока противоречивые. В целом главное, чтобы инструмент был удобен разработчику, поэтому остальной набор ПО обычно представляет собой разнообразный индивидуально подобранный зоопарк.
3. К формальному уровню образования у нас требований нет, главное – профессиональные знания и личные качества. Наличие адекватных фундаментальных знаний и шустрой соображалки ценится гораздо выше какой-либо корочки.
4. Важен релевантный используемым у нас подходам опыт. Например, очень желателен опыт работы с действительно большими и высоконагруженными проектами, а также привычка работать не самому по себе, а в команде. Понимание важности соблюдения стандартов и гайдлайнов.
5. Помимо довольно стандартных профессиональных требований, самое главное у нас – коммуникабельность и хорошее знание английского языка. Команда интернациональная, поэтому без этого работать не получится.
Иван Барчук, Tech-Lead in InspiriTo company
Также будет плюсом знать несколько Frontеnd Frameworks, таких как Angular, React, VUE.JS.
2. Так как чаще всего придется работать совместно с программистами, которые ответственны за дизайн и верстку, то кроме Visual Studio придется освоить и такие вещи, как Sublime Text, WebStorm, Visual Studio Code, более приспособленные для Frontеnd-разработки.
3. Требование обычно знания ASP.NET\JavaScript\HTML\SQL\Framework.
В зависимости от проекта требования могут различаться глубиной познаний тех или иных технологий.
Так, например, на проекте, который уже активно используют, упор больше делается на знание Frontend, так как в Backend уже обычно все настроено на дальнейшее расширение и доработки и глубоких знаний не нужно.
4. Можно выделить знание веб-разработки в широком смысле. Другими словами, не только самой разработки, но, например, и размещения сервера, его настройки как для клиента, так и для тестового варианта, и т.п.
5. Специфика одна – это быть Full Stack и уметь делать проекты «под ключ». Так как у проекта много аспектов реализации, то встает вопрос, на каком уровне проще решить возникающие проблемы. Для этого нужно владеть всеми аспектами веб-разработки и в том числе, на сегодняшний день, уже и мобильной.
1. Наиболее часто встречающиеся требования: знание C#, платформы ASP.NET (реже webforms, чаще ASP.NET MVC), Web API, навыки создания RESTful API, знание ORM (зачастую Entity Framework), знание HTML/CSS, JavaScript (и/илиTypescript), клиентских библиотек (все реже речь о jQuery, KnockoutJs, BackboneJs, чаще это Angular/AngularJS).
Также зачастую требуется умение работать с базами данных (например, SQL Server).
Практически всегда необходимо умение работать с системами контроля версий.
2. Основное – Visual Studio. Остальное зависит от личных предпочтений или специфики проекта. Кто-то обходится встроенным в студию dev-serverом для запуска приложений, кто-то пользуется IIS Express, часто используется полноценный IIS. Некоторые работают со своими проектами в JetBrains Rider. Часто встречается использование легковесных (относительно полноценной IDE) редакторов кода, например Visual Studio Code. Для тестирования и отладки, конечно же, используются современные браузеры и их встроенный инструментарий.
3. Это сильно зависит от компании-нанимателя. Кому-то достаточно наличия подтвержденных навыков разработки при отсутствии диплома, для других наличие диплома обязательно (в особенности касается государственных учреждений).
4. Для обычного разработчика типично требование наличия трех и более лет опыта работы. Для старшего разработчика или лида, как правило, требуется не менее пяти. Хотя всегда возможны исключения.
5. Зачастую подобные требования действительно обусловлены спецификой работы компании, но бывает и так, что причина тому – своеобразные представления руководства о разработчике их мечты. Например: уверенное владение английским или другим языком (если клиенты компании – иностранцы), открытая долгосрочная иностранная виза (если предполагаются частные командировки на сторону заказчика с целью внедрения, а начинать надо уже вчера), опыт работы по Agile (или другой методологии). Иногда требуется предоставить ссылку на свой аккаунт Git, чтобы работодатель оценил активность и вклад в Оpen Source-проекты. Реже просят предоставить ссылку на профиль Stackoverflow.
Евгений Татаринцев, СТО компании VirtoCommerce
1. Язык программирования С#, advanced уровень знания application framework ASP.NET MVC, native JavaScript + любой JS framework (React, Angular, Vue.js), навыки верстки HTML и CSS. Базовые знания SQL и опыт использования какого-нибудь ORM (EF, Dapper, NHibernate). Навыки работы с тестированием, опыт написания Unit- и E2E-тестов.
2. IDE Microsoft Visual Studio последней версии либо Visual Studio Code.
Системы сборки (Gulp, WebPack, Grunt).
Системы версионного контроля (Git, TFS, SVN).
Системы таск-трекинга (Jira, Basecamp, Github).
3. Законченное физико-математическое либо инженерное высшее образование.
4. Желательно от двух лет работы в качестве разработчика с данным стеком технологий. Особо приветствуется командный опыт.
5. Опыт работы в проектах, связанных с Ecommerce. Интернет-магазины, платежные сервисы, складские и логистические системы.
Уверен, что разработчики часто задаются вопросом, какие их профессиональные навыки компании ценят больше всего. К примеру, при смене работы, или когда внезапно обнаруживают, что работают в компании так давно, что окружающий мир, скорее всего, ушел далеко вперед.
Этой публикацией я начинаю цикл аналитических статей по анализу необходимых и востребованных навыков для различных специализаций на российском и зарубежном IT-рынке.
Как родилось это исследование?
В каком направлении развиваться: какие навыки и как приобретать?
Василий смотрит на карьеру своих старших коллег и в его голову приходит самый простой вариант: буду сидеть на своем месте работы лет 5, активно участвуя в проектах – и тогда, скорее всего, меня сделают Senior-разработчиком или может, дай бог, архитектором. Но внутренний голос не дает покоя Васе: может не все так просто, ведь ведущий разработчик и архитектор обладают какими-то особенными навыками, которые их выделяют среди остальных разработчиков – может нужно разобраться с тем, что это за навыки, и что нужно сделать, чтобы их развить в себе?
Какие варианты есть у Васи?
Вполне логично поискать информацию о том, какие навыки сейчас актуальны в IT и как их прокачать на каком-нибудь профильном Интернет-ресурсе. Что сразу приходит в голову: Хабрахабр, RSDN, SQL.ru? Но нет, эти ресурсы скорее расширяют наш кругозор, чем дают нам информацию о том, какие навыки сейчас востребованы. Есть и другие ресурсы, которые посвящены обучению навыкам, к примеру: Pluralsight и Coursera – если бы Вася точно знал, что он хочет изучить, эти ресурсы помогли бы ему. И, конечно, не стоит забывать про профессиональные конференции. Они также полезны как для расширения кругозора, так и развития конкретных навыков, но все равно не могут ответить на вопрос Василия: в каком направлении ему развиваться? Итого, мы имеем множество ресурсов, которые позволяют прокачать те или иные навыки, но, к сожалению, не дают ответа на вопросы: в каком русле развиваться и какой набор навыков развивать? Вспомните, как вы отвечали на эти вопросы: интуитивно?
Вот так и все мы оказываемся перед сложным выбором направления развития. Некоторым из нас везет с опытным руководителем или коллегой-ментором, которые помогают подняться на ступеньку выше или подсказывают направление развития. Но большинство оказывается наедине с этой проблемой.
Востребованные навыки в вакансиях работодателей
Проблема выбора людьми направления развития не давала мне покоя долгое время. И вот, однажды, когда мы с друзьями сидели в одном из московских пабов, я решил воспользоваться коллективным разумом с элементами хмельного допинга. И после очередной кружки эля нам пришла идея: навыки, которые необходимо развивать, должны быть востребованы рынком труда, поэтому портрет востребованного разработчика или архитектора должен иметь какое-то отражение в вакансиях работодателей.
Конечно, я пытался найти готовые обзоры и аналитику по требуемым работодателям навыкам, но, увы, ничего полезного не нашлось, кроме различной аналитики по географическому распределению зарплат и востребованности конкретных языков программирования.
Но энтузиазм не угасал, поэтому, будучи заядлым разработчиком, я написал небольшую программу, которая позволила автоматизировать сбор информации по вакансиям HeadHunter и получить необходимую статистику.
Рейтинг востребованности навыков
Выборка для анализа составила 300 актуальных вакансий. Из описания каждой вакансии был извлечен перечень требуемых навыков, и по каждому из полученных навыков была собрана следующая статистика:
В итоговый рейтинг попали 10 популярных навыков по каждой из трех категорий.
Рейтинг технологий
В технологиях с огромным отрывом побеждает ASP.NET MVC: требование владения данной технологией встречалось в 3 из 4-х вакансий. Мне, как бывшему desktop-разработчику, было откровением, что все технологии desktop UI проигрывают ASP.NET MVC в 6 раз, а в сумме WPF и Windows Forms проигрывают в 2,5 раза. Если верить статистике, судьба разработки настольных интерфейсов видится достаточно туманной.
Отметил я еще один интересный факт: WPF и Windows Forms имеют одинаковый уровень востребованности – примерно 15%. Сначала я подумал, что это связано с переводом приложений с устаревающей технологии Windows Forms на WPF, но, оказалось, что данные навыки требовались в одних и тех же вакансиях только в 2% случаев, то есть одни компании до сих пор используют Windows Forms, а другие компании уже применяют WPF при разработке своих приложений.
На втором месте по-прежнему остается «must have» навык работы с SQL Server и использования Transact-SQL в каждой второй вакансии. В трети вакансий требуется знание WCF, XML и XSLT. В каждой четвертой – LINQ. Ну, и завершает список – EF. У меня есть гипотеза о том, почему EF в нижней части списка, а SQL Server в верхней: рынок ORM до сих пор достаточно раздробленный – многие все еще продолжают собственные ORM писать, а также популярны альтернативные платформы с хорошей историей вроде NHibernate.
Если смотреть на статистику по уровню заработной платы, то наиболее высокооплачиваемыми вакансиями являются те, в которых упоминаются HTML, CSS, AJAX, jQuery и JavaScript (иные платформы JavaScript упоминались в вакансиях, но редко, а потому не попали в топ-лист).
Рейтинг профессиональных навыков
По-прежнему у нас наиболее востребован навык объектно-ориентированного программирования. Владение ООП требуется в каждой четвертой вакансии.
Меня немного удивило, что после навыка ООП сразу же идет навык анализа требований. Сомневаюсь, что работодатели подразумевают именно написание требований, скорее всего, от разработчика требуется активное участие в процессе анализа требований в том или ином виде. Тем не менее, видна тенденция того, что от разработчика требуют больше, чем просто написание кода.
Далее идут достаточно обыденные навыки: работа с системами контроля версий, проектирование архитектуры и шаблоны проектирования – эти навыки требуются в каждой четвертой вакансии.
Стоит также заметить, что навык «архитектура высоконагруженных систем» прорывается уже в топ 10 навыков, что несомненно связано с существующей общеотраслевой тенденцией. При этом вакансии, в которых упоминается данный навык, в среднем имеют самый большой уровень заработной платы – 130 тыс. руб.
Рейтинг общих компетенций
Вряд ли для вас будет откровением, что среди soft skills самый популярный навык – это знание английского языка на уровне чтения технической документации. Этот навык требуется в каждой третьей вакансии.
Второй по популярности навык – командная работа, который требуется в каждой четвертой вакансии. Конечно же, в топ 10 попали такие навыки как самостоятельность, ответственность и коммуникативные навыки. И завершает список навык «умения излагать свои мысли»: если верить статистике, то среди 25 разработчиков достаточно всего одного, который умеет правильно излагать свои мысли – остальным совсем не обязательно.
Самый высокооплачиваемый навык, что достаточно ожидаемо – разговорный и письменный английский. Средний уровень оплаты в вакансиях, где он упоминается – 135 тыс. руб.
Судя по статистике, портрет такого разработчика следующий.
Разработчик ASP.NET MVC, который «на ты» с SQL Server и Transact-SQL, владеющий стеком веб-технологий (HTML, CSS, JavaScript, AJAX и jQuery), умеющий создавать и использовать WCF-сервисы, ну, и конечно, умеющий преобразовывать данные в формате XML.
С другой стороны, он должен быть гуру объектно-ориентированного программирования, при этом немного увлекаться анализом требований, конечно же, проектировать архитектуру приложений, в идеале – высоконагруженных.
Читать, писать и разговаривать на английском, быть самостоятельным и ответственным командным игроком. Ну, и не брезговать общением с коллегами.
Продолжение следует…
Хочу услышать ваше мнение о том, по каким специализациям будет интересно увидеть подобную аналитику, и действительно ли данная статистика помогает нам найти ответ на вопрос, какие навыки нам необходимо развивать, или тема еще не закрыта?
Подтверждение перспективности направления C#/.NET находит свое отражение и в различных рейтингах, которые проводятся ежегодно. Язык C#, согласно индексу TIOBE (состоянием на апрель 2021 года), PYPL index (также апрель 2021), и опросу Stack Overflow Developer Survey 2020, достаточно популярен, причем уже не первый год он входит во всевозможные ТОП-10.
Теперь, когда мы в общих чертах определили специфику работы C#/.NET разработчика, пора взяться за рассмотрение пути его становления, предлагаемый образовательной платформой ITVDN.
Сразу отметим, что данная специальность имеет различные ответвления — и мы их все затронем. Однако, основа у каждого одинакова — с нее и начнем.
Первые 2 ступени на пути к специальности C#/.NET Developer
Язык программирования C# (“Си шарп”)
Первый на пути к освоению специальности C#/.NET разработчика идет сам C#.
Широкая область применения языка C# делает его очень востребованным и перспективным. Сервисы поиска работы в IT пестрят вакансиями, которые предусматривают использование данного языка — это и большие проекты с устоявшимся, хорошо себя зарекомендовавшим стеком технологий, и новое ПО, ориентированное на применение самых свежих инструментов.
C# является относительно простым в изучении, имеет многочисленное сообщество, качественную официальную документацию и большой багаж учебного контента по всему интернету. Это основные причины, почему его часто рекомендуют начинающим в качестве первого языка программирования.
Следующий уровень — изучение более продвинутых тем: объектно-ориентированное программирование (ООП) и его принципы, классы, структуры, универсальные шаблоны (generics), перечисления, события, потоки, обработка исключений и другие. После хорошего закрепления материала беритесь за изучение таких разделов: пользовательские и системные коллекции, рефлексия, атрибуты, сериализация, управление памятью, XML, программирование ввода-вывода, асинхронное и параллельное программирование. Каждую тему закрепляйте плотной практикой, поскольку истинная мощь программирования раскрывается только тогда, когда вы пишите код.
Еще одна причина рекомендации C# новичкам — очень удобная среда разработки Visual Studio, которая содержит всё, чтобы вы чувствовали максимальный комфорт во время кодинга. А чтобы узнать все полезности последней версии данной среды и быстро войти в курс дела, лучше всего ознакомиться с курсом “Visual Studio 2019 Tips & Tricks” — здесь вы найдете всё самое полезное и важное, что стоит знать о “студии”.
Дополнительные материалы для изучения C# вы сможете найти на специализированных сайтах Microsoft — Microsoft Learn (русскоязычный контент), Learning Center. Также, можете воспользоваться ресурсом Metanit — отличный русскоязычный кладезь знаний по C#/.NET направлению.
Качество кода
Программный код обязан соответствовать определенным критериям, чтобы он свободно воспринимался другими программистами, а разрабатываемые программы были легко поддерживаемы и масштабируемы. В следующих пунктах указаны технологии, которые помогут добиться высокого качества вашего кода на C#.
Шаблоны проектирования
Unit тестирование
Unit тестирование (модульное тестирование) — процесс проверки работоспособности отдельных модулей (участков) написанного разработчиком кода путем создания специальных тестов.
Какая польза от Unit тестирования? Оно позволяет:
Лучше всего осваивать модульное тестирование с помощью курса “Unit тестирование в C#”.
Алгоритмы и структуры данных
Понимание алгоритмов и структур данных очень важно для любого программиста.
Изучив структуры данных, вы сможете управлять сложностью своих программ, делая их более доступными для понимания, а также разрабатывать высокопроизводительные программы, которые будут эффективно работать с памятью.
Знание алгоритмов позволит вам создавать сложные конструкции для эффективного решения широкого спектра задач. Отличный помощник в освоении данных тем — видео курс “Алгоритмы и структуры данных”.
Также, отметим, что на данный момент множество алгоритмов уже встроены во многие языковые конструкции, оттого на работе вы будете использовать готовые наработки. Однако, алгоритмы и структуры данных — это те темы, без которых ни проходит ни одно собеседование на Trainee/Junior разработчика.
Рефакторинг
Разработка через тестирование (TDD)
Являет собой такой подход к разработке ПО, при котором сперва идет написание тестов на пока еще несуществующий функционал, а лишь затем создается сам функционал. Благодаря технологии TDD код становится понятным и “чистым”, сводя к минимуму количество ошибок в работе программ.
Ни один порядочный программист не может позволить себе хаос в коде — поэтому знание технологий, которые приводят в порядок “рабочее место” является очень важным пунктом как для опытных разработчиков, так и для новичков, которые хотят научится корректно писать свой код, а также хорошо себя зарекомендовать на собеседовании. С изучением TDD поможет курс “TDD — Разработка через тестирование”.
Следующий этап обучения
Командная работа
Сегодня практически вся серьезная разработка ведется в команде, что создает потребность в хороших инструментах и техниках совместной разработки. И, кстати, они одинаковы для программистов всех направлений. Давайте ознакомимся с данными техниками и инструментами.
Основы Git
Наиболее популярная система контроля версий, которая позволяет вести историю разработки проекта с возможностью доступа к каждой сохраненной версии.
Данные системы позволяют команде программистов работать над одним проектом одновременно, сохраняя внесенные изменения, а также отслеживать выполнение задач каждым членом группы. Чтобы хорошо разбираться в Git, рекомендуем курс “Основы Git”.
Методологии разработки Agile/Scrum
Методологии разработки — это гиды по процессам эффективной разработки ПО. Они направлены на организацию максимально продуктивной работы всех, кто каким-либо образом связан с разработкой программного продукта.
Agile — семейство гибких методологий создания ПО. Оно позволяет делать выпуски продукта небольшими частями, постоянно его дополняя и совершенствуя. При таком подходе все трудящиеся над продуктом подразделения работают вместе, программное обеспечение постоянно обновляется, быстро принимаются решения и обнаруживаются неправильные тактики в разработке. Приложение становится более простым в обслуживании, а качество кода готового продукта не оставляет сомнений. Agile также располагает собственным манифестом, детально описывающим основные принципы построения гибкой разработки.
Scrum является одной из популярнейших реализаций agile-подхода. Его используют многие команды, поэтому знание особенностей работы со scrum-моделью важно для любого разработчика. Познакомиться с данной техникой ведения разработки вы сможете при помощи курса “Методологии управления проектами, Вступление в Scrum”.
Базы данных
.NET девелопер вне зависимости от того, работает с веб, мобильными или десктопными приложениями, также взаимодействует и с базами данных. Принять и сохранить данные пользователей, обработать их, выдать по запросу, разработать эффективную БД, которая будет оперативно работать с данными и при этом будет надежно защищать пользовательскую информацию от несанкционированного доступа — все это также возлагается на сильные плечи C#/.NET программиста.
Прежде всего стоит разобраться с основополагающей теорией: что такое БД, какими они бывают, как устроены, как функционируют. Подобный разбор полетов стоит устроить и теме “клиент-серверная архитектура”. Затем переходите к рассмотрению конкретных инструментов и технологий работы с базами данных.
Transact SQL (T-SQL)
Transact-SQL являет собой процедурное расширение языка запросов SQL, созданное в кооперации Microsoft и Sybase. SQL же — это язык запросов, который используется в реляционных базах данных, то есть в таких базах, которые исповедуют принципы реляционной модели данных. В основе этой модели лежат такие разделы математики, как теория множеств и логика первого порядка.
Таким образом, освоив T-SQL вы автоматически будете знать стандарт SQL, поскольку T-SQL содержит практически все нововведения SQL.
Данное расширение — это ключ к работе с СУБД MS SQL Server. T-SQL основательно повысил функциональность языка запросов SQL путем привнесения управляющих операторов, локальных и глобальных переменных, а также различных полезных функций для обработки параметров и т. д. Самый удобный способ плодотворного знакомства с Transact-SQL — одноименный видео курс.
ADO.NET
Технология, которая позволяет создавать приложения, работающие с базами данных, без знаний структур БД различных производителей. Простыми словами, ADO.NET является посредником между C# приложением и базой данных, тем самым предоставляя разработчикам унифицированный интерфейс для взаимодействия с разнообразными СУБД. В изучении этой технологии лучше всего подойдет курс “ADO.NET”.
Entity Framework 6 (EF 6)
Резюмируем
ASP.NET Developer
HTML5, CSS3, JavaScript
HTML и CSS — это фундаментальные технологии, которые формируют внешний вид веб-страниц. Язык гипертекстовой разметки HTML позволяет создать разметку (каркас) любой страницы в интернете, а язык стилей CSS всячески преображает созданный костяк сайта, принося жизнь HTML-структуре и делая страницу привлекательной и эффектной.
JavaScript — язык программирования, который используется для реализации клиентской логики в веб-приложениях. Благодаря JS можно: вносить изменения в разметку сайта динамически, реализовывать взаимодействие с пользователями, анимировать изображения, осуществлять валидацию форм и многое другое. Это классический язык, используемый каждым FrontEnd разработчиком.
HTML и CSS учатся легко — да и знать нужно только базовые моменты. JavaScript также не составит проблем в освоении, так как многие принципы кодинга схожи с теми, которые вы к этому моменту пройдете по C#. JS придется выучить более основательно, чем HTML и CSS. В изучении данной триады помогут курсы: “HTML5 & CSS3 Starter”, “JavaScript Essential”, “JavaScript Advanced”.
ASP.NET MVC
MVC — популярный шаблон разработки ПО, который предусматривает разбиение приложения на три части: Модель (Model), Представление (View) и Контроллер (Controller). Деление позволяет разделить зоны ответственности и закрепить их за каждой из трех частей отдельно — такой ход направлен на упрощение разработки, улучшение поддержки и возможной масштабируемости ПО.
ASP.NET Web API
API — это прикладной программный интерфейс, указывающий, каким образом следует обращаться к программе и какие ответы она обязана предоставлять пользователям. Web API — способ построения ASP.NET-приложения, который подходит для применения совместно с REST архитектурой, предполагающей популярный подход к взаимодействию с сервером через HTTP-запросы GET, POST, PUT, DELETE.
Две рассмотренные выше технологии позволяют разрабатывать качественные веб-приложения для серверной стороны. Для их изучения рекомендуем видео курсы “ASP.NET API 2”, “ASP.NET MVC 5”, “ASP.NET MVC Fundamentals”. Хороший контент по ASP.NET Web API есть и на уже упомянутом сайте Metanit: “Полное руководство по ASP.NET MVC 5”, “Руководство по Web API”.
ASP.NET Core Developer
Давайте рассмотрим стек технологий ASP.NET Core девелопера. На самом деле он очень похож на стек предыдущего специалиста, правда там добавляется частичка “Core” (о преимуществах которой мы уже рассказали):
Однако, важно подметить еще одну технологию, которая полезна для ASP.NET Core разработчика — ASP.NET Core SignalR. Это библиотека с открытым исходным кодом, позволяющая создавать клиент-серверные приложения, работающие в режиме реального времени, такие как: чаты, видеоконференции, игровые приложения, приложения для мониторинга данных и другие (курс от ITVDN).
WPF/UWP (Desktop) Developer
Последней идет специальность разработчика настольных приложений. Сейчас она менее популярна, чем веб-разработка — тем не менее спрос на данных специалистов есть и зарплаты не сильно уступают тем, кто программирует для веба.
WPF
Windows Presentation Foundation — платформа для создания клиентских десктопных приложений, поддерживающая большой набор компонентов.
Пройдя курс от ITVDN, посвященный WPF (начальный уровень), вы получите необходимые базовые навыки для создания desktop-приложений для Windows, которые могут использовать ваш авторский дизайн, поддерживать несколько языков интерфейса и одинаково хорошо отображаться как на дисплеях с высоким разрешением, так и на планшетных ПК.
Углубленный курс предусматривает такие темы, как: привязка и шаблоны данных; работа с документами, мультимедиа и пользовательскими элементами; анимация и 3D графика; применение паттерна MVVM (Model-View-ViewModel) в разработке приложений. Данный курс поможет вам создавать сложные desktop-приложения.
UWP
Universal Windows Platform — платформа для создания приложений под любое устройство с установленной ОС Windows 10 на нем. Предоставляет очень гибкий и многофункциональный инструментарий, который дарит массу возможностей и удобностей разработчику.
Чтобы хорошо владеть UWP, необходимо освоить следующие темы: создание приложений под любые устройства с Windows 10, работа со стилями, ресурсами и шаблонами, архитектура MVVM, жизненный цикл приложений и базовая концепция UWP, создание навигации и фоновых задач, адаптивный дизайн, работа с данными, файловая система, мультимедиа и графика, управление БД и ее применение в проекте. Изучить эти темы поможет видео курс “Программирование на платформе UWP”.
Также, важно владеть и таким инструментом, как UWP Community Toolkiit. Это набор вспомогательных функций, пользовательских элементов управления и служб, который позволит углубить ваши познания UWP и создавать более продуманный, комплексный и качественный программный продукт. Весь необходимый багаж знаний можно найти в базовом и продвинутом курсе на ITVDN.
Заключение
Успехов в освоении программирования и информационных технологий!
Возможно вам будет интересна подборка Youtube-каналы для Frontend-разработчика.