Если вы только начинаете или являетесь опытным разработчиком с боевыми шрамами и многолетним опытом, вы хотя бы раз задавали себе этот вопрос: C # - хороший выбор карьеры?

Что ж, давайте попробуем ответить на него как можно более объективно. Иногда вы можете заменить C # экосистемой .NET в целом.

Разнообразие

C # и .NET framework - один из самых универсальных инструментов для разработчиков программного обеспечения. Вам не нужно перепрыгивать через разные стеки, чтобы лучше познакомиться с разными платформами.

У вас есть две отличные платформы для создания веб-приложений - ASP.NET и ASP.NET MVC. Инструменты и скорость разработки не уступают самым продвинутым фреймворкам на других языках. Самым большим конкурентом в этой области, без сомнения, будет Ruby on Rails.

После того, как Microsoft приобрела Xamarin, мобильная разработка для основных платформ находится на отличной стадии. Огромное преимущество - поддержание кодовой базы на одном языке и наличие общих библиотек на платформах Android и iOS. С C # вы можете сделать все это. Другими крупными игроками в этой области являются React Native, поддерживаемый Facebook, но некоторые из моих друзей-разработчиков мобильных приложений будут поддерживать разработку нативной платформы.

Облачная платформа Microsoft, Azure, быстро развивается и предлагает различные инструменты не только для вашего внутреннего кода API и хранилища, но также для фоновых заданий, машинного обучения, различных когнитивных сервисов, корпоративных решений и безопасности и управление идентификацией. Там есть масса вкусностей, которые могут облегчить жизнь вашему разработчику. Не забудьте упомянуть, что если вы являетесь подписчиком MSDN, вы получаете бесплатный кредит, чтобы опробовать их все.

Когда нужен толстый клиент; настольное приложение; обычно оно ориентировано на Windows. Вы не можете найти лучшего фреймворка для выполнения работы, чем WPF или простота WinForms. В этой области не так много инноваций, но эти рамки еще не умерли. Они - надежная рабочая лошадка, простая в использовании и выполняющая свою работу.

Наконец, что немного неожиданно, есть большой лагерь разработчиков игр. Unity - один из крупнейших 3D-движков использует C # в качестве предпочтительного языка, и инструменты в Visual Studio становятся лучше с каждой новой версией.

C # предоставляет большое количество разнообразных приложений, которые вы можете создавать, и вам не нужно изучать новые библиотеки и языковые конструкции. Вы можете писать веб-приложения на Lisp или Smalltalk и создавать приложения для Android на Ruby, но это не значит, что вы должны это делать. C #, с другой стороны, является одним из лучших инструментов для работы в любой данной категории.

Технический

C # - это объектно-ориентированный императивный язык: вы говорите компьютеру, что делать, и можете обернуть эти команды в объекты, моделирующие желаемый мир. Эта парадигма является наиболее широко используемой в настоящее время, и поэтому ее хорошо освоить. Шаблоны приложений и объектно-ориентированные методы можно перенести на многие другие платформы и языки.

Но помимо этого C # также имеет ряд функций из функциональных языков. У вас нет хвостовой рекурсии, но LINQ - отличный инструмент для преобразования и фильтрации данных. А с C # 7.0 вы также получаете сопоставление с образцом. Таким образом, вы можете расширить свои навыки с помощью других парадигм, не покидая любимого языка.

Кроме того, C # статически типизирован. Это дает вам потрясающий инструмент при работе над более крупными проектами с большей командой, и вы понимаете, насколько это полезно, когда вы оказываетесь в этой ситуации с динамически типизированными языками, такими как Ruby.

Кроме того, в C # есть динамические функции. API динамического ключевого слова и отражения дает вам мощные инструменты для создания хороших DSL или эффективной работы с JSON API. С большой силой приходит и большая ответственность, и вы не должны использовать их бездумно, но у вас есть этот инструмент в вашем арсенале.

Если эта статья убеждает вас в том, что C # - хороший выбор для карьеры, загляните в Еженедельный бюллетень C # Digest, чтобы быть в курсе последних новостей сообщества .NET.

Опыт

Одним из самых больших преимуществ C # является то, что он используется широким спектром компаний. От небольших стартапов до гигантских корпораций.

У каждого типа компании свой набор задач и проблем, поэтому я рекомендую каждому программисту пройти через каждый тип в своей карьере. Даже если вы думаете, что не созданы для большой корпорации, работа на нее дает вам хорошее представление о том, с чем эти компании борются.

А с другой стороны, компании размером со стартап не нужно работать по 80 часов в неделю, но вам придется выполнять более широкий круг функций - доработки, техническая поддержка и разработка с нуля.

С C # можно познакомиться с различными предприятиями без повторного изучения структуры и языка, и вместо этого вы можете больше сосредоточиться на предметной области и динамике команды.

Попробуйте найти огромную корпорацию, использующую Ruby - не так уж и легко.

Деньги и стабильность

Будем честны. Мы работаем, потому что нам нужно зарабатывать на жизнь. А с C # у вас большие перспективы. Крупные финансовые корпорации используют C # в качестве предпочтительного пакета, который гарантирует зарплату на более высоком уровне.

Вы всегда можете заработать больше чеддера, будучи специализированным подрядчиком COBOL, консультантом SAP или занимаясь чем угодно, но как разработчик программного обеспечения, который хочет иметь широкую известность и возможность перемещаться между компаниями и типами приложений, вы получаете одно из лучшие предложения на рынке.

Добавьте прочный фундамент старого доброго SQL, и вы сможете отработать этот набор навыков в течение следующих нескольких десятилетий разработки, ориентированной на ипотеку.

Кроме того, есть множество возможностей трудоустройства на C # в большинстве мест по всему миру, что дает вам желаемую стабильность и возможность внесения изменений в случае, если ваша текущая компания столкнется с проблемами.

Microsoft

Раньше Microsoft была злой закрытой компанией, которая хотела получить всю прибыль (честно говоря, покажите мне компанию, которая этого не делает) любой ценой, над которой все технические специалисты высмеивали и предпочитали не трогать Windows Vista даже с длинной палкой. . Но времена меняются, особенно для разработчиков.

C # и .NET framework с компилятором Roslyn имеют открытый исходный код и размещены на Github.

.NET Core работает на многих других платформах, помимо Windows, и у нас есть Visual Studio для Mac и облегченный Visual Studio Code, который работает почти везде.

За языком C # стоит отличная команда, продвигающая инновации, и подразделение Cloud and Enterprise под руководством Скотта Гатри процветает. Важно одно четкое направление позади продукта.

У Windows теперь bash, работает Ubuntu и планируется добавить Fedora и SUSE.

Волнующие времена для разработчиков C #!

Конкуренция

Давайте обсудим другие платформы, их сильные и слабые стороны.

А как насчет Java? Java во многом похож на C # - здесь есть все преимущества. Вы можете получить лучший инструментарий и дополнительную поддержку для некоторых модных фреймворков машинного обучения и больших данных, но вы не будете создавать хорошие настольные клиенты для Windows. Кроме того, языковой стандарт и языковые функции немного отстают от C #. В целом выбор карьеры тоже неплохой.

Говоря о Ruby, вы можете честно заменить его на Ruby on Rails, поскольку подавляющее большинство рабочих мест Ruby - это задания Rails. В последнее десятилетие он доминировал в мире веб-стартапов. Другие веб-фреймворки догнали, но у вас есть много успешных малых и средних предприятий, построенных на основе Rails, которые нуждаются в разработке и обслуживании. Это хороший выбор для стартапов, в которых вы хотите быстро развиваться, но не хотите слишком сильно увеличивать команду. Это отличный выбор, если вы хотите работать удаленно - здесь гораздо больше возможностей, чем на любом другом языке. Но рынок вакансий в вашем регионе может быть ограничен, и вы будете создавать веб-приложения CRUD.

Javascript в настоящее время пользуется большим спросом. В него легко войти, и вы можете писать бэкэнд с Node.js, настольные приложения с Electron и мобильные приложения с React Native. Javascript не был создан для поддержки большой базы кода, и постоянно меняющийся мир интерфейсных фреймворков утомляет. И много раз это просто заново изобретает велосипед. Но если вы работаете в веб-стеке, вам все равно нужно будет иметь с ним какое-то представление. Я бы использовал его как дополнительный язык для интерфейсных тяжелых веб-приложений.

Какие другие платформы и языки вы бы рассмотрели и как бы они сравнивались с C #?

Заключение

Подводя итог, можно сказать, что у вас будет отличная карьера, если вы решите выбрать C # в качестве предпочтительного языка. Самым большим преимуществом является разнообразие приложений, над которыми вы можете работать, и компаний, использующих C #.

Это обеспечит вам стабильную работу и высокую зарплату.

Наконец, C # - это круто, и с ним весело работать - вы всегда можете узнать что-то новое, и Visual Studio станет вашим надежным помощником в больших проектах с помощью IntelliSense.

В общем, изысканный выбор, сэр.

Вы хотите стать лучшим разработчиком C #? Подпишитесь на C # Digest и будьте в курсе новостей .NET.