Стоит ли изучать Java, когда вы уже достаточно хорошо знаете C #? - PullRequest
6 голосов
/ 24 сентября 2008

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

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

Ответы [ 10 ]

8 голосов
/ 24 сентября 2008

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

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

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

-Adam

5 голосов
/ 24 сентября 2008

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

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

Мои $ .02.

-Keith

5 голосов
/ 24 сентября 2008

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

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

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

4 голосов
/ 24 сентября 2008

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

3 голосов
/ 21 октября 2008

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

Если вы ищете работу:

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

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

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

Если вы ищете новую технологию:

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

1 голос
/ 24 сентября 2008

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

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

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

0 голосов
/ 24 сентября 2008

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

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

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

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

0 голосов
/ 24 сентября 2008

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

Java также предложит вам возможность «один раз написать, работать везде» и открыть путь к реализации интеграционных проектов на основе Unix / Linux.

0 голосов
/ 24 сентября 2008

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

0 голосов
/ 24 сентября 2008

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...