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





Абсолютно. Многие рабочие места требуют именно java. Изучив Java и убедительно изложив это в своем резюме, вам не придется спорить с HR и рекрутерами, которые не имеют большого представления.
И поскольку оба они более или менее одинаковы, за исключением нескольких мест, это очень хорошая окупаемость инвестиций. Не говоря уже о том, что это открывает возможности использования других фреймворков.
Если вы хотите программировать на Java, изучите Java. Это действительно так просто.
Шаблоны, алгоритмы и дизайнерские идеи не будут настолько отличаться, чтобы изучение языка само по себе было достаточным вознаграждением.
Однако Java достаточно хорошо работает на гораздо большем количестве платформ, чем C# (хотя и с изменяющимся моно), поэтому, если вы хотите погрузиться в независимый от платформы код, вы можете попробовать Java. Вы заметите, что это немного грубее по краям, но не похоже на C++ или C.
-Адам
Я в основном занимаюсь Java, но кое-где немного поработал с C#. ИМО, между ними недостаточно разницы, чтобы действительно получить большую выгоду от расширения горизонтов программирования. Обычно, когда я хочу выучить новый язык, я хочу найти что-то, что заставит меня взглянуть на программу с другой точки зрения. Перспектива Java в основном такая же, как у C#. Есть несколько различий в том, как работают некоторые из функций языка высокого уровня, и API-интерфейсы различаются в некоторых местах, но в целом Java и C# являются статически типизированными объектно-ориентированными языками с управлением памятью.
сходство между C# и Java позволяет довольно быстро познакомиться с Java. принципы те же, и вы получаете конкурентное преимущество при поиске работы или выполнении собственных проектов, выбирая платформу, более подходящую для проекта (на основе коммерческой стороны проекта и масштабируемости, потому что вы может масштабировать Java на серверах Linux сколько угодно без дополнительных затрат на лицензии).
Я довольно хорошо знаю Java, и мне пришлось выучить C# для рабочего проекта. Это было очень безболезненно, и в процессе я многое узнал о языках и то и другое.
Java также предложит целую вещь «напиши один раз, запусти везде» и откроет путь к выполнению проектов интеграции на основе серверов unix / linux.
Синтаксическая разница между ними невелика, хотя вы получаете много кода, специфичного для .NET, например тегов [], которых вы не найдете в Java. Но я считаю, что API и подход к разработке совершенно разные. Серверная часть каждого из них сильно отличается от другого, и в .NET некоторый эффективный и хорошо работающий код может не подходить для Java, и наоборот.
Я работал в обоих случаях, ограничение, к которому вам придется привыкнуть, если вы работаете на Java, есть в IDE. Ни одна из имеющихся IDE не может сравниться с Visual Studio по скорости разработки и простоте развертывания. (ИМО в любом случае).
Я получил много от работы над несколькими проектами Java. Вы узнаете много разных техник и методологий программирования. В частности, я бы посоветовал работать с J2EE, разница, безусловно, даст вам ощущение работы с другим языком и другой технологией.
Ответ на этот вопрос больше зависит от вашей личной ситуации, а не от сходства языков. Если у вас есть время для изучения Java, это хорошо, но есть ли что-то более ценное, чем вы могли бы заняться за это время.
Если вы концентрируетесь на том, чтобы идти по пути Microsoft, изучать Java нецелесообразно, тратя время на изучение C# еще глубже или на изучение продукта Microsoft, который может сделать вас более ценным, например, новые элементы в платформе .NET 3.5.
В мире .NET более чем достаточно для изучения без изучения языков, которые не связаны с точки зрения их использования в большинстве корпоративных сред.
Быть специалистом широкого профиля дает вам более широкий взгляд на развитие, но, будучи специалистом, вы напрямую зарабатываете деньги.
Здесь есть два соображения.
Если вы хотите учиться, чтобы работать в среде Java, то изучение Java, очевидно, является шагом в этом направлении. В некоторых отношениях он должен быть довольно простым, поскольку существенные различия между C# и Java относительно незначительны. В зависимости от того, какие именно технологии вы используете, могут быть некоторые различия в реализации в используемом стеке поддержки, но в терминах необработанного языка разница очень небольшая.
Однако, если вы хотите изучать Java для дальнейшего личного развития, я бы сказал, что ваше время лучше потратить на изучение чего-то, что может немного растянуть вас. Такие языки, как Python, Ruby или Erlang, действительно расширят ваш кругозор как программиста. Каждый из них требует немного другого мышления, чем вы найдете в Java или C#.
Я собираюсь дать другой ответ, чем остальные. Если вы пишете приложения для платформы Windows, я не вижу никакой пользы. Причина, по которой я говорю, что это ваша «работа», зависит от знания этой платформы. Я могу только предположить, что ваша работа зависит от этого, иначе зачем вам в нее вкладываться (надеюсь, что это имеет смысл).
Я предлагаю не ПРЕКРАТИТЬ учиться, а УЗНАТЬ что-то другое, что даст вам совершенно иную точку зрения. В частности, я бы посоветовал изучить что-нибудь динамическое или функциональное. Может быть, F#, например, или попробуйте Ruby или Python. Я думаю, что это лучшее вложение времени.
Мои 0,02 доллара.
-Кейт
Будучи более свежим [кто хорошо знает C# и не очень много JAVA], я предлагаю вам это.
Если вы ищете работу:
Инвестируйте себя в изучение различий C# и Java. Это потому, что это повысит вашу ценность и сократит ваше время на поиск работы.
Если вам нужен проект [который должен быть выполнен на Java]:
Тогда, очевидно, вы должны учиться правильно!
Если вы ищете новую технологию:
Не тратьте время на Java, выбирайте Python, Ruby или Erlang. Это потому, что 80% и C# и java одинаковы, и вы собираетесь изучить только оставшиеся 20% (максимум), что я считаю пустой тратой времени.
ой концепции для обоих одинаковы ??
Я считаю, что изучение любого языка, независимо от того, должен ли он быть Java или C#, изучать его самым полным и лучшим, потому что будут сотни людей, знающих 50% и 60%, и вы не сможете изменить ситуацию, если вы знаете 50 или 60 % просто используйте оставшиеся 40% или 50%, чтобы выделиться среди других на вершине. Скорее любой язык на 100%
FlySwat, может ли Mono в Linux запускать любую программу C#, написанную с помощью Visual Studio?