Зачем net разработчику знать javascript
Не думал, что напишу это, но JavaScript победил. Мы перестали использовать Razor для создания веб-приложений. Вместо этого реализуем front-end в отдельном проекте на JavaScript-фреймворках. От ASP.NET остался только WebAPI и «движок», на котором мы пишем бизнес-логику и API для пользовательского интерфейса.
Вселенная JavaScript и CSS
Последнее время мы наблюдаем взрывное развитие веб-технологий. Появились полноценные IDE для работы с HTML/CSS/JavaScript, проекты типа Grunt и сотни JavaScript-фреймворков. Инфраструктура для создания front-end’а стала взрослой.
Давайте посмотрим на статистику Github. Я нашел два источника статистики по языкам программирования, в обоих JavaScript стоит на первом месте.
В статье Language Trends on GitHub посчитали с помощью Linguist, что JavaScript на первом месте на GitHub по популярности, среди языков программирования:

GitHut показывает аналогичную ситуацию:

Теперь я понимаю откуда каждую неделю появляются новые JavaScript-фреймворки. Могу себе представить трудозатраты сообщества JavaScript-программистов, которые поставили JavaScript на первое место на github.
Миф о кроссфункциональности
Мы отказываемся верить во всемогущих full-stack web-разработчиков. Full-stack означает, что программист разбирается и в .NET, и в JavaScript/CSS.
Что значит разбираться в этих двух мирах? Это значит знать тонкости работы с браузерами, знать и практиковаться с новыми JavaScript-фреймворками, и одновременно с этим знать о новых фишках в C#, изменениях в платформе .NET, следить за новыми версиями ASP.NET MVC и новым базами данных. Такого всезнающего full-stack web-разработчика я последний раз видел. никогда. Охватить и стать экспертом в этих двух областях не под силу смертному. Я не говорю о людях с железным стержнем и безграничным запасом свободного времени, речь об обычных людях типа меня.
Если вы спросите меня, знаю ли я JavaScript и CSS? Я отвечу, что знаю. Но знаю ли я эти технологии достаточно, чтобы создать качественное решение на front-end? Нет, моих знаний недостаточно, я знаю эти технологии поверхностно по сравнению, например, с front-end разработчиками нашей компании.
Я пришел к выводу, что сложный проект не создать силами full-stack разработчиков . Если речь о сложном UI и сложном back-end, то специализация необходима. Доверять full-stack разработчикам проекты сложнее, чем натягивание дизайна на CMS, настройки интерфейса в SharePoint или кастомизации Bootstrap — губительно для проекта.
История из соседней компании. Lead .NET разработчик усмотрел проблемы на front-end. Он решил, что у UI-проекта неправильная архитектура и технический долг, поэтому он пошел наводить там порядок. В итоге стало еще хуже, чем было, потому что JavaScript-приложение он создавать не умел.
Я думаю похожая ситуация могла бы произойти, если бы JavaScript-разработчик полез в C#. Разница в том, что .NET разработчики считают, что смогут корректно поправить JavaScript/CSS, а front-end разработчики знают, что им в C# лучше не залезать и они не лезут.
Схема взаимодействия
На старте работы мы делаем два проекта. Первый проект традиционный — ASP.NET Web API приложение в Visual Studio, второй проект в Webstorm. Оба проекта лежат в одном репозитории, хотя это не обязательно.

Front-end разработчики согласуют с back-end разработчиками API, через которое происходит взаимодействие двух приложений.
Процесс работы
Мы создаем проектные команды, поэтому разработчики, QA и другие члены команды входят в состав единой команды проекта. В том числе front-end и back-end разработчики входят в эту команду. Единая команда работает с Impact Mapping, Customer Journey Mapping, User Story Mapping, которые появляются во время процесса создания ПО:

Видно, что с точки зрения процесса создания ПО, мы никак не разделяем front-end и back-end части. Это осознанный шаг, который помогает делать поставку бизнес-ценности.
Плюсы и минусы
В разделении front-end и back-end на два проекта я нахожу и плюсы и минусы:
- Плюсы
- Front-end и back-end проекты слабо связаны. Становится возможно развиваться эти проекты параллельно или отдельно друг от друга.
- У вас случалось, что кроме веб-интерфейса, вас просят создать API к Android-приложению? У нас заказчики просили об этом и не раз. Если вы изначально создаете API, документируете API, то подключение новых клиентов к нему не составляет труда.
- Выкладка front-end и back-end частей теперь может происходить независимо. Вам не придется перезаливать монолитное ASP.NET MVC приложение из-за изменений в JavaScript/CSS или разметки.
- Чем сложнее проект, тем сложнее управлять монолитным ASP.NET MVC приложением. Если разнести единое приложение на два проекта, как показано в статье, то развивать два небольших проекта проще.
- В монолитном ASP.NET MVC приложение цена ошибки это весь проект. В раздельных проектах цена ошибки это части системы.
- Минусы
- Нужны сильные front-end разработчики, которые могут и не понадобится, если full-stack разработчики создают back и front.
- Следствие из предыдущего пункта — нужно больше людей в проект.
- Инфраструктура сложнее, усложняется процесс сборки релиза.
- Дополнительно время тратиться на согласование API между двумя проектами.
- Изменения в бизнес-логике часто затрагивают оба проекта.
Выбор подхода
Мы выбираем ASP.NET MVC приложение и рендер HTML через Razor, если используем CMS или пишем небольшой проект без сложной бизнес-логики. Например, так сделан сайт компании ByndyuSoft. Мы выбираем front-end в виде JavaScript-приложения во всех остальных случаях.
Зачем .Net разработчику нужны отличные знания JavaScript?
Не так давно решил изучить C#/.Net и пойти в веб бэкенд разработку. Посмотрел вакансии по .Net разработке на HH, в большинстве случаев необходимо отличное знание фронт стека (HTML, CSS, JS (React/Angular/Vue)). Ещё попросил HR-а компании, в которой работал, скинуть список вопросов на Junior .Net разработчика. Половина вопросов связаны с фронт стеком, в особенности вопросы по JS, ощущение такое, что все веб разработчики на .Net в основном фуллстеки. Есть ли вообще позиции чистого бэкенд разработчика на .Net-е? Или каждой компании требуется фуллстек .Net разработчик за цену фронт или бэк разработчика отдельно с целью экономии бюджета?
- Вопрос задан более двух лет назад
- 969 просмотров
3 комментария
Средний 3 комментария
AndromedaStar @AndromedaStar
Могли бы вы скинуть примеры вопросов, чтобы понять насколько отличные знания надо иметь? Или там просто базовые вопросы?
SamMorgan @SamMorgan Автор вопроса
AndromedaStar @AndromedaStar
SamMorgan, ну там совсем базовые вопросы по JS. Но конечно упоминание ext.js меня поразило. Я когда на первую работу устроился это уже легаси было. А это было давно.
Решения вопроса 1

Какой вопрос — такой и ответ
Первое. Половину требований в вакансиях можно смело отбрасывать. Это автогенерируемый мусор, чтобы быть конкурентными.
.NET-разработчики разные бывают. Есть чистый бэкенд, которым не нужно знать ангуляр, но JS знать рекомендуется, а HTML обязательно знать вообще всем.
ASP.NET-разработчик тесно связан с фронтендом, а значит все ангуляры и реакты ему знать нужно, чтобы можно было договориться с тру-фронтендщиками на том же ангуляре.
Не надо так близко к сердцу принимать все прописываемые требования. Часто сами HR, а потом ещё и разработчики сами удивляются как та или иная технология попала в их список. Учитывать надо и то, что вакансия могла быть написана 5 лет назад, а за это время многое в компании поменялось
Ответ написан более двух лет назад
Нравится 4 4 комментария
SamMorgan @SamMorgan Автор вопроса
Как ни странно, такое я вижу в относительно свежих вакансиях компаний, которым по описанию 2-3 года. Плюс смущает строка из серии «Опыт разработки на JS от 1 года». Складывается ощущение, что проще было изучать фронт стек и пойти во фронтенд разработку, так как уровень знаний меньше по сравнению с .Net, а на нём ты и жнец, и чтец, а платят как фронтедеру.

SamMorgan, ещё раз: не надо буквально воспринимать текст по вакансии. Убирай 50% мусора.
И не будет у тебя складываться никаких ощущений.
Не понимаю пооблемы

Aleksandr-JS-Developer, опыт проходить собесеседования и первичный фильтр в виде HR — это навык, который приобретается только с опытом.
Расписывать все хитрости как что обходить я не буду — это бесполезно и не имеет смысла.
Просто подскажу, что
а потом HR (или даже автомат) по чек листу пробегает и отметает нерелевантного кандидата.
обходится простым подтверждением, что тебе это знакомо.
Человек приобретает опыт только на собственных ошибках.
Что должен знать C#/.NET разработчик в 2023 году

![]()
13.12.2022
![]()
21796
Рейтинг: 5 . Проголосовало: 9
Вы проголосовали:
Для голосования нужно авторизироваться

- Язык программирования C#
- ООП
- Алгоритмы и структуры данных
- Шаблоны проектирования
- Базы данных
- SQL
- Entity Framework Core
- LINQ
- ASP.NET
- ASP.NET Core
- Git
- Основы FrontEnd
- Английский язык
- Итоги
На сегодняшний день .NET программист может применять свои навыки в различных сферах разработки программных продуктов:
- создание веб-приложений и веб-сервисов
- создание настольных приложений;
- создание облачных сервисов;
- создание игр;
- создание мобильных приложений.
Когда говорят о .NET разработчиках, имеют в виду программистов, которые пишут на языке С#. Этот язык программирования, как и вся платформа .NET, был создан, развивается и поддерживается компанией Microsoft, которая стабильно уже несколько десятилетий входит в ТОП-10 компаний — мировых лидеров рынка информационных технологий. Все продукты компании Microsoft созданы на платформе .NET. Какие же технологии необходимо изучить, чтобы стать .NET программистом?
Поскольку львиная доля .NET-вакансий приходится именно на веб-сегмент, данная статья будет охватывать как фундамент, которым обязаны владеть все разработчики этой платформы, так и основные технологии серверной стороны веб-девелопмента.

Любой .NET разработчик не может называться и быть таковым, если он не умеет хорошо программировать на языке C#.
Это универсальный объектно-ориентированный язык, который является мощным инструментом создания программного обеспечения с широкой областью применения. При столь высокой функциональности он является достаточно несложным в изучении и отлично подойдет тем, кто собирается сделать первый шаг навстречу программированию.
Благодаря широкому спектру применения, С# является очень востребованным языком. Различные ресурсы по поиску работы предлагают большое количество вакансий, причем, как на крупные проекты с четко определенным консервативным стеком технологий, так и в компании, которые создают новый программный продукт с применением наиболее современных инструментов.
Компания Microsoft активно развивает свое детище — .NET направление, потому C# всегда актуален, идет расширение функционала, добавляются новые возможности. Тенденция последних лет — кроссплатформенность, реализуемая в .NET Core. Огромное количество учебных материалов, качественная официальная документация, видео курсы, образовательные вебинары, дружное комьюнити — всё это создает максимально комфортные условия для грамотного поэтапного изучения данного языка.
Объектно-ориентированное программирование — это методология разработки программного обеспечения, в основе которой лежат четыре главных принципа: абстракция, инкапсуляция, наследование и полиморфизм. Поскольку C# является объектно-ориентированным языком, необходимость изучения и полного понимания ООП парадигм обязательно. Однако, есть и приятная новость: все принципы быстро и легко усваиваются во время изучения C#.
Понимание алгоритмов и структур данных – также обязательно для любого программиста.
Тема связана со специальностями:
Изучив структуры данных, вы сможете управлять сложностью своих программ, делая их более доступными для понимания, а также разрабатывать высокопроизводительные программы, которые будут эффективно работать с памятью.
Знание алгоритмов позволит вам создавать сложные конструкции для эффективного решения широкого спектра задач.
Паттерны (они же шаблоны) представляют собой архитектурные конструкции, которые описывают типичные способы решения распространенных задач, возникающих в ходе проектирования программного обеспечения. Всего существует более двух десятков шаблонов, однако знать их все — это обязанность архитектора, а не разработчика платформы .NET. Обычно в одном проекте используется небольшое количество паттернов, поэтому вам достаточно помнить лишь самые популярные из них.
Каждое приложение оперирует данными – от интернет-магазинов и банковских систем до корпоративных приложений и социальных сетей. Регистрация, авторизация и аутентификация пользователя, прием, изменение и отправка данных на сервер или даже простое сохранение конфигурации приложения – все это данные, требующие отдельного места для их хранения.
Этим хранилищем служат базы данных (БД), представляющие собой организованную структуру для приема, хранения и обработки данных различного формата – от ФИО и номеров телефона до изображений и видео контента.
Именно поэтому знания БД очень важны в том числе и для .NET разработчиков. Необходимо владеть базовой теорией по БД: основные термины, реляционные и нереляционные базы данных (вы будете работать именно с реляционными – имеющими реляционную структуру), нормализация, отношение one-to-one, one-to-many и many-to-many, поиск и упорядочение информации, работа с таблицами и т.п.
Structured Query Language — декларативный язык структурированных запросов, который создан для взаимодействия с базами данных. Особенность SQL состоит в том, что он лишь описывает необходимые компоненты и желаемые результаты, не указывая, как именно эти результаты должны быть получены.
Изучение языка запросов очень тесно связано с изучением теории баз данных, поэтому углубляясь в БД, вы непременно начнете практиковаться и набивать руку и с SQL.
Entity Framework — специальная объектно-ориентированная технология на базе фреймворка .NET, которая позволяет разработчикам получать доступ к данным, используя концептуальную объектную модель, а не непосредственно реляционную базу данных. Это дает возможность абстрагироваться от самой БД и работать с данными на более высоком уровне абстракции, который более понятен и удобен для человека. Благодаря такому подходу уменьшается количество кода, необходимого для получения доступа к базе, растет производительность и уменьшается время на поддержку объектов в приложениях, которые работают с данными.
В двух словах, эта технология позволяет программисту абстрагироваться от самой базы данных и работать с данными независимо от типа хранилища.
Language Integrated Query (язык интегрированных запросов) — это простая и удобная .NET технология доступа к данным. Особенность данного языка запросов: возможность применения ко всем источникам данных (XML-документы, XML-потоки, наборы данных ADO.NET, базы данных SQL, массивы и коллекции .NET и т. д.) одного и того же самого подхода выборки данных.
Active Server Pages для .NET — платформа, использующая среду выполнения .NET Framework и предоставляющая необходимые службы для создания серверных веб-приложений и веб-сервисов. Является развитием более ранней технологии Microsoft ASP.
ASP.NET базируется на среде выполнения Common Language Runtime (CLR), которая является основой всех приложений Microsoft .NET. Также данная платформа имеет преимущество в скорости по сравнению со скриптовыми технологиями.
Видео курсы по схожей тематике:
JavaScript разработчик: чем занимается и где его искать
JavaScript не менее популярный язык, чем Java. Но в чем отличие этих технологий и как найти хорошего JS разработчика? Разбираемся в статье.
Что такое JavaScript
JavaScript — это динамический язык программирования, который используется для разработки фронтенда. Это один из основных инструментов при разработке сайта, который совместим со всеми операционными системами и популярными мобильными платформами. Его создали с целью оживить веб-страницы: разметку страниц HTML и пользовательскую часть (CMS). То есть без JavaScript веб-страница «неживая» и сайт не реагирует на действия.
Вот как работает JavaScript простыми словами:
- Пользователь нажимает кнопку/заполняет форму на сайте.
- Браузер распознает действие.
- Автоматически срабатывает JS-код.
- На странице отображаются изменения.
В чем отличие JavaScript и Java
Java и JavaScript путать нельзя: это совершенно разные языки, которые похожи только по названию. Java — это объектно-ориентированный язык, который нужен для серверного софта и мобильных приложений. JavaScript используют для создания элементов именно браузера — всего, что видит пользователь.
Сценарии, написанные на JS — это скрипты. Они встраиваются в веб-страницу и срабатывают автоматически при открытии веб-страницы. Для этого их не нужно дополнительно программировать в отличие от инструментов на Java.
Что делает JavaScript разработчик
Разработчику нужно создать ответ сайта на каждое действие пользователя. Для этого он разрабатывает архитектуру всех модулей и программную логику приложения. Затем разработчик тестирует и внедряет эти инструменты в работу. JS позволяет создавать привлекательный веб-сайт с интерактивными и графическими элементами. Таким мы видим сайт благодаря JS разработчику.
Что еще входит в его функционал:
- Поддержка web-сайтов;
- Разработка расширений и прототипов для браузеров;
- Рефакторинг frontend-части веб-сайта/приложения;
- Разработка веб-версий продукта;
- Участие в развитии архитектуры проекта.
Что должен знать
Требования к скиллам JavaScript разработчика не такие высокие, как для бэкендера. Но он также должен знать фреймворки, шаблоны проектирования и базы данных языка JS. Вот какие скиллы должны быть у JS-разработчика уровня Middle:
- HTML и CSS;
- принципы взаимодействия клиент-сервер (HTTP/HTTPS, Rest API, soap
- JSON, form data);
- система контроля версий GIT;
- другие языки программирования (С, С++, С#);
- принципы объектно-ориентированного программирования;
- фреймворки и библиотеки (NodeJS/JQuery/React/Angular/Vue.js);
- базы данных (PostgreSQL/ MongoDB/ SQL/ NoSQL);
- технологии (REST, XML, TCP, VS Code, SVN);
- СУБД;
- Design Patterns;
- английский на уровне Intermediate.
На что обратить внимание при подборе
Высокий уровень коммуникативных навыков
Умение взаимодействовать с командой — важный скилл для любого программиста. Но JS разработчик отвечает за пользовательскую часть продукта, которая привлекает клиента. А значит, он должен уметь доносить свою мысль другим разработчикам, дизайнерам и остальным членам команды.
На собеседовании стоит уделить этому время и дать пару кейсов на проверку коммуникации.
Экспертиза разработчика
Кроме самого JavaScript, разработчик должен знать стек, относящийся к определенному профилю проекта. Лучше знать одну технологию, но хорошо, чем несколько поверхностно. Например, для кроссплатформенных мобильных приложений нужен React Native, Flutter или Dart. А вот для веб-сайта больше подойдет NextJS, Redux или Create React App.
Широкий кругозор
У JS разработчика должна быть хорошая насмотренность и свое видение продукта. Проходит ли он дополнительное обучение? Какие веб-сервисы/приложения ему нравятся по внешнему виду? Какие проекты считает наиболее удачными и почему? Эти вопросы можно смело задавать кандидату. Если он подходит к разработке комплексно, интересуется бэкендом и готов делать продукт, удобный для пользователя — результативность его будет выше.
Где искать
Самый действенный путь — сайты для фрилансеров и Telegram. Здесь можно найти фронтендеров и других смежных специалистов: дизайнеров, копирайтеров и SEO.
Сайты для фрилансеров
Некоторые JS разработчики берут несколько небольших проектов. Найм проектного разработчика экономит бюджет и не требует оформления сотрудника в штат. Особенно это удобно, если нужна разработка небольшого приложения. Вот несколько сайтов, где можно поискать JS разработчика:
Telegram-каналы
Количество подписчиков: 15 700+
Бесплатное размещение вакансий для JavaScript разработчиков.
Количество подписчиков: 3 000+
Бесплатное размещение вакансий для JavaScript, Node.js разработчиков.
Количество подписчиков: 2 100+
Количество подписчиков: 1 100+
Бесплатное размещение вакансий для JavaScript на Angular.
Количество подписчиков: 1 000+
Бесплатное размещение вакансий для фронтендеров на разных стеках.
Количество подписчиков: 550+
Вакансии международных проектов для иностранных специалистов.
Количество подписчиков: 3 500+
Количество подписчиков: 3 200+
Канал для бесплатного размещения вакансий для JavaScript разработчиков и обмена резюме.
В статье мы рассказали о том, чем занимается JavaScript разработчик и где его искать.
Оставляйте заявку на нашем сайте — мы поможем найти классного специалиста.
