LINUX.ORG.RU

Что выбрать, Java/Spring или C#/.Net с прагматичной точки зрения?

 , , ,


0

2

Всем КУ. Выпустился из университета и встал вопрос выбора стека для дальнейшего трудоустройства. Планирую заниматься веб/системной разработкой в какой-нибудь компании, из языков отлично знаю Java и C# по причине хорошей прокачки по ним и прочему (паттерны, парадигмы, ООП, структуры и т.д.) в универе. Сердце лежит к C# и ASP.NET Core в частности, но мозг говорит, что с Java будет что намазать на хлеб. Плюс сам MS постоянно расширяет .Net и он становится всё более и более жирным, сложным, и универсальным (где надо и не надо), что не есть хорошо. Решил проштудировать вакансии, по Java/Spring стеку вакансий раза в 2-3 больше, чем на C#/.Net, да и средняя зп процентов на 30 выше. Прошёл несколько собесов на джуна по обоим стекам и понял, что охват требуемых знаний на C#/.Net больше (хотят, чтоб ты знал как и asp.net, так и core версию, плюс требования front стека) при меньшей зп по сравнению с Java/Spring, не беру в расчёт такие вещи как Git и прочее, эти требования универсальны для обоих стеков. Ко всему прочему напрягает распространенность десктоп разработки на C#/.Net, от неё я плююсь, нет интереса. Да и слова .Net разрабов на протяжении последних лет о том, что теперь они могут и в Windows, и в Linux сервера, что не связаны они больше с MS осью больше вызывает смех, чем гордость. Хотя и требование по Java 8 версии удивляет не меньше, не уж то так много старого софта на ней. С этого вопрос, что перспективней с точки зрения зп, C#/.Net или Java/Spring? Не превратиться ли один из этих стеков в тыкву в ближайшее время? И почему к .Net разрабам больше требований при меньшей зп?

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

За это время ни один из этих стеков никуда не денется.

Потом будешь менять стеки, менять компании согласно своим убеждениям. Лет через 5-7 ты уже вообще будешь устраиваться на «software engineering» позиции, а не на «копатель на лопате Java средней мускулистости» и языки программирования будут изучаться по методичке за пару недель потому что они все одинаковые в своей основе, код нужно писать тупой, потому что хоть ты и мог бы написать сложный, но после тебя его никто не прочитает. Умной должна быть архитектура приложений, а там все одинаково, какой бы ни был язык

vertexua ★★★★★
()
Последнее исправление: vertexua (всего исправлений: 4)
Ответ на: комментарий от vertexua

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

HuluMulu
() автор топика
Ответ на: комментарий от HuluMulu

а say еще что-нибудь на безработном, please

anonymous
()
Ответ на: комментарий от HuluMulu

прыгать между местами работы лучше на Java, их сильно больше

легаси на Java 8 просто завались, большая часть индустрии всё ещё на ней

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

а проектов мало потому, что C# хоть и сильно-сильно лучше как язык, но у Java исторически сильно-сильно больше экосистема. Большая часть компаний - не Гугл, месят себе легаси на 8 жабе, и изобретать ничего не собираются - соответственно им нужно всё готовенькое и опесорсное, а это жаба

плюс синдром илиты - «вот мы смогли разобраться» - прямо как в C++

stevejobs ★★★★☆
()
Ответ на: комментарий от HuluMulu

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

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

stevejobs ★★★★☆
()
Последнее исправление: stevejobs (всего исправлений: 1)
Ответ на: комментарий от vertexua

языки программирования будут изучаться по методичке за пару недель потому что они все одинаковые в своей основе

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

Надо еще сказать, что знать X языков это круто, но «рок звезды» от программирования как раз кроме одного любимого инструмента ничего другого не используют, они вообще странные. Жаль я не рок звезда, приходится изучать сразу много в ширь.

anonymous
()
Ответ на: комментарий от stevejobs

А чем шарпы настолько лучше? Мя покодил какое-то время рандом по зелёной книжке - та же джава, только причуды немного в других местах прикопаны. И UI кроссплатформенного нет, да.

izzholtik ★★★
()
Последнее исправление: izzholtik (всего исправлений: 1)
Ответ на: комментарий от izzholtik

Кроссплатформенный UI как раз есть, да и сама МС пилит новый.

Другое дело что современная жава не так сильно отстает от шарпа по фичам, но опять же на работе у тебя её не будет, а там всё печально.

ritsufag ★★★★★
()
Ответ на: комментарий от izzholtik

MAUI, пока в превью. Хотели с 6й версией релизнуть, но похоже пока не готов.

Да и в чем проблема подключить ту же Avalonia?

ritsufag ★★★★★
()

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

anonymous
()

Ну ты сам всё написал. Жава актуальней, вот и весь сказ.

Legioner ★★★★★
()
Ответ на: комментарий от umren

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

anonymous
()
Ответ на: комментарий от anonymous

Твои советы хорошие, но большинству они не подходят.

Кроме того неясно как те трудозатраты которые ты предлагаешь делать вне рабочего времени влияют на заработок специалиста.

Многих интересуют совершенно другие вещи, а разработка это примерно как и работа на станке для них с относительно неплохой оплатой.

umren ★★★★★
()

по причине хорошей прокачки по ним и прочему (паттерны, парадигмы, ООП, структуры и т.д.)

Добро пожаловать в реальный мир, где на первой же работе столкнёшься с legacy-монолитом, написанном во времена, когда по Земле бродили динозавры.

Притом написанном ордами Аджитов, Акашей, Ранджитов, Амитов, Раджешей, которые на причинном месте вертели твои паттерны и парадигмы.

emorozov
()

если ты так отлично знаешь с# и джаву и прокачан в паттернах, почему те несколько собесов, которые ты прошел, закончились ничем?

anonymous
()

Java конечно же. А лучше Kotlin и mobile! Потому, что 80% работы на Java - legacy с Java 6, где постепенно только переписывают на Java 8, и это в 2022 !

menangen ★★★★★
()
Ответ на: комментарий от anonymous

Я не говорил, чем они вообще закончились. Офферы по обоим стекам я получил, при этом с достаточно большой разницей в зп между ними, хоть и на джуна. По личным ощущениям получить оффер на Java джуна оказалось проще, так как даже не просили знаний тех вещей, которые требуются для .Net-а.

HuluMulu
() автор топика
Ответ на: комментарий от menangen

Почему тогда Java, если в основном приходиться переписывать одного окаменелого мамонта на другого?

HuluMulu
() автор топика

Java конечно.
8 не должна пугать - это тупо стандарт, после 8 ничего сильно толкового не вводили так что «просто брать и менять версию» смысла мало, особенно если у тебя на поддержке олимпиард внедрений на половине из которых никто не трогал «ту самую восьмерочку» с которой оно приехало в лохматые годы - явушка же для «один раз написал и забыл» а не для подпрыгивания по версиям :-)

rukez ★★★★
()
Ответ на: комментарий от menangen

Потому, что 80% работы на Java - legacy с Java 6, где постепенно только переписывают на Java 8, и это в 2022 !

Пардон муа, а зачем что-то переписывать с 6 на 8?
На 8 писать с нуля удобнее, факт, но что уже написано на 6 отлично работает и на 8 и дальше

rukez ★★★★
()

Java.

Вакансий больше, зарплаты выше. Если станет скучно на бекэнде, потом перейдешь на android разработку (если без смены языка или через kotlin, если готов менять всё, то ещё можно в фуллстека уйти), где тоже норм платят. Если захочется посложнее абстракций, можно уйти на Scala (вакансий мало, но тоже хорошо платят).

За C# меньше платят, а если надоест бекэнд, перепрыгивать будешь на unity (если не учить другой язык), а в геймдеве много требуют и мало платят. То есть и исходная точка не супер, и направления развития проигрышные.

KivApple ★★★★★
()
Последнее исправление: KivApple (всего исправлений: 2)

Что выбрать, Java/Spring или C#/.Net с прагматичной точки зрения?

Выбирай жизнь. Выбирай работу. Выбирай карьеру. Выбирай семью. Выбирай большие телевизоры, стиральные машины, автомобили, компакт-диск плееры, электрические консервные ножи. Выбирай хорошее здоровье, низкий уровень холестерина и стоматологическую страховку. Выбирай недвижимость и аккуратно выплачивай взносы. Выбери свой первый дом. Выбирай своих друзей. Выбери себе курорт и шикарные чемоданы. Выбери костюм-тройку лучшей фирмы из самого дорогого материала. Выбери набор «Сделай сам», чтобы было чем заняться воскресным утром. Выбирай диван, чтобы развалиться на нем и смотреть отупляющее шоу, набивая своё брюхо помойной едой. Выбери загнивание в конце всего, теряя последнее в жалком доме, когда не остаётся ничего, кроме удивления, что это за эгоистичные ублюдки, которых ты породил, чтобы заменить ими самого себя. Выбирай будущее. Выбирай жизнь… Но зачем мне все это? Я не стал выбирать жизнь… Я выбрал кое-что другое… Причины? Какие могут быть причины, когда есть C++

slackwarrior ★★★★★
()
Последнее исправление: slackwarrior (всего исправлений: 1)
Ответ на: комментарий от menangen

А лучше Kotlin и mobile

Котлин может и лучше, но работать с Android SDK - это ад.

а на бекенде котлин в реальности встречается практически никогда.

umren ★★★★★
()
Последнее исправление: umren (всего исправлений: 1)
Ответ на: комментарий от KivApple

Ну чистого бекэнда на C# мало, как правило сразу требуют знания фронта и их применение, да и тот же Blazor или Razor предполагает, что один разраб делает как фрон, так и бек, так что на C#/.Net под веб так и так придется реализовывать фронт. На одном из собеседований на .Net разработчика меня начали топить вопросами по TS и React-у, от чего я даже удивился и спросил, придется ли мне реализовывать фрон, на что мне ответили, что .Net разраб априори фуллстек.

HuluMulu
() автор топика
Ответ на: комментарий от stevejobs

И чтобы расти в зарплатах дальше - тебе нужно или совсем менять сферу деятельности (например, становиться фуллстеком, или менеджером)

Охренел что ли!?! Менеджеру платить больше разработчика???

anonymous
()
Ответ на: комментарий от HuluMulu

на что мне ответили, что .Net разраб априори фуллстек.

кулстори, интересное мнение

umren ★★★★★
()
Ответ на: комментарий от HuluMulu

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

untitl3d
()
Ответ на: комментарий от anonymous

Грамотный менеджер дорого стоит, а разрабы это расходный материал, их за забором очередь. Зачем тебе много платить в таком случае?

anonymous
()
Ответ на: комментарий от anonymous

Грамотный менеджер дорого стоит, а разрабы это расходный материал, их за забором очередь.

Очередь из грамотных разрабов?

amm
()
Ответ на: комментарий от HuluMulu

придется ли мне реализовывать фрон, на что мне ответили, что .Net разраб априори фуллстек.

«Априори» по-русски будет «в натуре»)). Но да, каждый работодатель имеет право на своё частное мнение.

amm
()
Ответ на: комментарий от amm

Грамотных единицы, он имел в виду очередь из «разрабов», прошедших курсы у инфоцыган. Да и среди менеджеров, аналитиков и прочих таких персонажей вагоны.

HuluMulu
() автор топика
Ответ на: комментарий от HuluMulu

Ну чистого бекэнда на C# мало

на что мне ответили, что .Net разраб априори фуллстек.

Чушь собачья, т.к. .Net появился когда людей с таким мнением в природе не было (не родились еще), а набирали по принципу «бэкэнд-фронтенд» и в бэкэнде можно было счастливо заниматься одним WCFом и слоем связи с базой :) Блазор и разор вообще появились не так давно, чтоб их считать мейнстримом.

П.С. И даже не начинайте тут про поздний ребрендинг майкрософта, т.к. до неткори всем прекрасно было известно что .Net == .Net framework, а это началось аж 20 лет назад :)

slackwarrior ★★★★★
()
Последнее исправление: slackwarrior (всего исправлений: 3)
Ответ на: комментарий от HuluMulu

Тогда тоже предположу, что он имел в виду не грамотных менеджеров, а эффективных.

amm
()
Ответ на: комментарий от slackwarrior

Точняк! Тут кто-то ещё забыл, что Net это не только ценный мех, но и выбор ЯП под свой вкус.

Not_a_Troll
()
Ответ на: комментарий от HuluMulu

Это все тоже инфосказочка для детей про эффективного менеджера, который руками джунов за еду понасоздает отличных Ъ-ынтерпрайзных решений. Такая же чушь для проезда по ушам, потому что... однажды манагеры будут происходить исключительно из бывших джунов за еду, которые старательно долбятся во все «бестпрактисы» придуманные не ими, но... не умеют думать вне бутылки :)

slackwarrior ★★★★★
()
Последнее исправление: slackwarrior (всего исправлений: 1)
Ответ на: комментарий от HuluMulu

Тебя сильно обманули. C# разработчик с фуллстэком получает совершенно другую з/п. MVC не в счет.

guten_morgen
()
Ответ на: комментарий от vertexua

Лет через 5-7 ты уже вообще будешь устраиваться на «software engineering» позиции, а не на «копатель на лопате Java средней мускулистости»

По факту все собеседования, которые у меня были, требовали «копателя на лопате Java средней мускулистости», и отбрасывали меня чаще всего именно потому, что с этой лопатой недостаточно знаком. Зажрались вы там совсем в своих гуглах.

byko3y ★★★★
()
Ответ на: комментарий от stevejobs

плюс синдром илиты - «вот мы смогли разобраться» - прямо как в C++

Уточни, на чем именно проявляется «синдром элиты».

byko3y ★★★★
()
Ответ на: комментарий от stevejobs

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

Научи, гуру. Я даже не представляю, с чего начать. Я вижу овердофига спроса на «15 лет опыта разработки на React», но при этом примерно ноль спроса на какое-нибудь «проектировщик распределенных баз данных». Даже в фейсбуке. Вся проектировка зачастую сводится к выбору из узкого спектра модных технологий/готовых решений. И зачастую ошибочная, поскольку моде пофигу специфика вашей организации. Соответственно, как я написал в статье, самый востребованный скилл — это не «умеющий решать сложные задачи», а «умеющий убеждать, что решена какая-то сложная задача». А для этого даже не нужны хард скилы. Эталонные «решальщики» — это какие-нибудь Илон Маск или Стив Джобс с твоей авы. Это я о том, что например, ни один из них не разработал ни одной оригинальной технологии, они всю карьеру продавали чужие разработки или просто старый засохший кал правильным людям в правильной упаковке.

byko3y ★★★★
()
Последнее исправление: byko3y (всего исправлений: 2)
Ответ на: комментарий от anonymous

Надо еще сказать, что знать X языков это круто, но «рок звезды» от программирования как раз кроме одного любимого инструмента ничего другого не используют, они вообще странные. Жаль я не рок звезда, приходится изучать сразу много в ширь

Про каких рок-звезд идет речь? Мне просто кажется, что ты под этим термином подразумеваешь что-то сильно более узкое, чем подразумевал бы я. Например, какого-нибудь Торвальдса, который является ярким представителем необучаемых ретроградов, выставляющих этот изъян характера как выдающуюся фичу. И таки не возразишь, поскольку очень даже прокатывает... Ну, по крайней мере у Торвальдса получается, за какого-нибудь IronBug я говорить не буду, поскольку в индустрии на самом деле спрос на таких людей очень маленький — полученные решения потом некому поддерживать.

byko3y ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.