Стоит ли изучать Java, когда вы уже хорошо знаете C#?


6

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

Примечание: Просьба предоставить четкие, прямые рекомендации, а не обсуждение, чтобы поддерживать соответствие рекомендациям SO.

0

Абсолютно. Многие работы требуют java специально. Изучив Java и убедившись в вашем резюме, вы не должны спорить с HR и рекрутерами, у которых нет такой подсказки.

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


8

Если вы хотите запрограммировать на Java, изучите Java. Это действительно настолько просто.

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

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

-Adam


4

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


0

Сходство между C# и Java позволяет вам быстро узнать java. принципы одинаковы, и вы получаете конкурентное преимущество при поиске работы или выполнении собственных проектов, выбирая, какая платформа более подходит для проекта (на основе коммерческой стороны проекта и важности масштабируемости, поскольку вы может масштабировать java на серверах Linux столько, сколько вам нужно без дополнительных затрат на лицензии).


0

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

Java также предложит целое «написать один раз, запустить везде» и открыть путь к выполнению проектов интеграции на основе unix/linux.

+2

* cough * Mono * Cough * 23 сен. 082008-09-23 23:53:58

+1

FlySwat, может ли Mono на Linux запускать любую программу на C#, написанную с помощью Visual Studio? 08 ноя. 092009-11-08 23:08:13


5

Синтаксическая разница между двумя невелика, хотя вы получаете много специфического кода .NET, например [], которые вы не найдете в Java. Но я нахожу, что API и подход к разработке совершенно разные. Задний конец каждого очень сильно отличается от другого и в .NET. Некоторый код, который эффективен и работает хорошо, может не подходить для Java, и наоборот.

Я работал над обоими ограничениями, с которыми вам придется привыкнуть, если вы работаете на Java, находится в среде IDE. Ни одна из IDE не сравнится с Visual Studio для скорости разработки и простоты развертывания. (ИМО в любом случае).

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


0

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

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

Существует более чем достаточно, чтобы учиться в мире .NET без изучения языков, которые не связаны с их использованием в большинстве корпоративных сред.

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


1

Здесь есть два соображения.

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

Однако, если вы хотите научиться Java для дальнейшего развития своего персонажа, я бы сказал, что ваше время лучше потрачено на изучение того, что еще больше растянет вас. Язык, такой как Python, Ruby или Erlang, действительно расширит ваши горизонты как программиста. Для каждого из них требуется несколько иной настрой, чем в Java или C#.


5

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

Мое предложение - не останавливаться на обучении, но УЗНАТЬ что-то еще, что даст вам совершенно другую перспективу. В частности, я бы предложил научиться чему-то динамичному или функциональному. Возможно, например, F # или попробуйте Ruby или Python. Я думаю, что это лучшие инвестиции во времени.

Мои $ .02.

-Keith


3

Быть свежее [кто знает C# хорошо и JAVA не так много], я предлагаю вам это.

Если вы находитесь в поисках работы:

инвестировать себя в изучении различий C# & Java. Это связано с тем, что это увеличит вашу стоимость и сократит время, чтобы найти работу.

Если вы нуждаетесь для проекта [будет сделано в Java]:

Тогда, очевидно, вы должны научиться правильно!

Если вы находитесь в поисках новой технологии:

Dont тратить время на Java, пойти на Python, Ruby или Erlang. Это потому, что 80% и C# и java одинаковы, и вы будете изучать только оставшиеся 20% (для максимума), которые я считаю пустой тратой времени.