Подтвердить что ты не робот

Зная С++, сколько времени требуется, чтобы изучить Java?

Я компетентный разработчик на С++. Я понимаю и использую полиморфизм, шаблоны, STL, и у меня есть четкое представление о том, как работают потоки. Для всех практических целей я не занимался разработкой Java. Я уверен, что некоторые из вас были в подобной ситуации в какой-то момент, когда вам приходилось изучать Java. Сколько времени вам понадобилось, чтобы стать компетентным программистом на Java?

4b9b3361

Ответ 1

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

Если вы хорошо знакомы с С++, вам может понадобиться прочитать список основных различий (например, все динамически привязано), а затем начать практиковать в среде (просто загрузите Eclipse). Небольшие различия - это то, что вам нужно будет скорректировать.

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

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

Просто сделай прыжок. Если у вас есть инстинкт, это не должно быть проблемой.

Ответ 2

Я пошел наоборот. Начинается с Java, затем переместится на C и С++. Для моего личного опыта было намного легче изучать Java, чем C/С++ (особенно С++).

Java во многих отношениях означает С++ со многими из undefined и ненужными сложными частями, удаленными или упрощенными. ИМХО, он имел большой успех с этой целью. В результате это очень простой язык для изучения и использования. Особенно для тех, кто знаком с С++.

Фактическое время, которое потребуется, очень зависит от человека, изучающего язык. Тем не менее, я уверен, что для того, чтобы стать компетентным на Java, потребуется меньше времени, чем на С++.

Ответ 3

Не должно быть слишком плохо. Синтаксис и классы должны быть очень легкими для понимания. Есть некоторые отличия, но ничто из этого не является слишком сложным.

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

Ответ 4

Если вы уже являетесь компетентным программистом (особенно на С++), то Java не займет много времени, чтобы учиться вообще. Книги, которые я бы рекомендовал (по порядку) всем, кто хочет изучить Java, следующие:

Вы можете обнаружить, что вы быстро прокручиваете Head First Java довольно быстро, учитывая свой опыт. По этой причине я предлагаю вам проверить это из библиотеки и снять с нее, прежде чем переходить к мышлению на Java.

Также проверьте Sun Учебники по Java.

Ответ 5

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

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

  • В бизнес-приложениях обычно вы работаете с базами данных. Там вы можете:

    • plain JDBC
    • SQL mapper (iBatis), обертка вокруг многословного и повторяющегося JDBC
    • Решение ORM (Hibernate) с собственной философией
  • С пользовательскими интерфейсами для рабочего стола у вас есть две конкурирующие платформы:

    • Свинг, часть JRE
    • SWT/JFace, из фонда Eclispe, создан IBM, с поддержкой собственного интерфейса.
  • С веб-фреймами слишком много упоминаний, с различными идеями представления пользовательского интерфейса, конфигурации, структуры папок/пакетов и т.д.

  • DI (инъекция зависимостей) распространена в бизнес-приложениях либо сторонними структурами, например Spring, либо как часть стандарта EJB3. Но я не думаю, что он когда-либо используется во встроенной настройке.

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

Ответ 6

С++ для Java: 1 неделя. Java до С++: 1 месяц.

Ответ 7

Еще в 1995 году, когда я это сделал, мне потребовалось около полудня, чтобы устроиться с инструментами и основными идеями, через день или два, чтобы получить язык, неделю, чтобы получить более неясные части языка (там в то время было меньше) и месяц, чтобы получить библиотеки (в то время их было меньше).

Теперь я бы предположил, что инструменты и базовый язык потребуют столько времени, сколько от нескольких недель до месяца для неясных частей языка (зависит от того, какие части вы нажмете и когда). Основные библиотеки будут составлять от месяца до двух месяцев (java.lang, java.util и несколько других). Остальные библиотеки классов 6 месяцев навсегда в зависимости от того, что вам нужно изучить, и как часто их обновлять: -)

Ответ 8

Я знаю С++, и мне приходилось работать с Java один раз и забирал его через 2 недели. Конечно, было немало сюрпризов, но это было легко.

Ответ 9

Я бы пошел шесть-восемь недель.

Ответ 10

Я думаю, что есть два подхода к значению термина "компетентный Java-программист". Если речь идет о лексемах, синтаксисе и терминах ООП, я начал полностью понимать Java до 2 (двух) дней обучения. Но во-первых, вы будете очарованы невозможностью стрелять в собственную ногу;) Но если это случай внедренной системы классов (например, пакетов), ссылок API, советов и трюков и т.д., Требуется около полугода, чтобы почувствовать себя дружелюбным к Java. Я думаю.

Ответ 11

Я тоже сначала изучил С++, а затем Java. Это заняло очень мало времени, поскольку я уже знаком с концепциями OOPS. На начальном этапе обучения я был действительно доволен новыми понятиями в Jave, как сборщик мусора. Я ссылался на The Complete Reference от Герберта Шильдта, и это помогло мне быстро получить синтаксис.

Ответ 12

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

Мне рекомендовали Мышление в Java (там есть электронная книга бесплатно), но никогда не было достаточно постоянным, чтобы читать ее. Я не пишу ракетно-научный код на Java, и для этого достаточно навыков.

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

Вы также можете попробовать Java Black Belt - ответы меня часто меня удивляют. После нескольких тестов мне интересно, как мои программы даже компилируются, что говорит о том, что я, вероятно, не самый компетентный Java-программист:)

Ответ 13

Как бы вы определили компетентность? На мои деньги, большинство профессионалов (как в них делают это за деньги) Java-программисты никогда не смогут достичь компетентности.

Ответ 14

Я начал с С++ и изучил С#/. NET. Это не заняло много времени. Поскольку С#/.NET развивается очень близко к Java (они использовали многие базовые методы Java, такие как GC, эталонные классы, JIT,...) Я думаю, что это не так сложно изучать Java.

Ответ 15

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

Хотя для изучения языка Java требуется относительно короткое время, обучение использованию доступных библиотек (коллекций, io и т.д.), вероятно, займет значительно больше времени.

Ответ 16

Не нужно больше, чем через день или два, изучать язык, но вам может потребоваться потратить несколько недель на библиотеку классов: как использовать коллекции, пакет concurreny, отражение, протоколирование, swing/awt, динамические прокси, MBeans и т.д.

Ответ 17

я изучил С++ в возрасте 15 лет и стал профессиональным программистом. Но когда я искал работу, была доступна только работа для разработчиков java. Я думал, что мне сложно изменить свой язык. Так что просто для пробника. Я загрузил java-компилятор и просто для удовольствия набрал какой-то код, и я обнаружил, что он не сильно отличается от С++, и только после 6 часов исследований и обучения я стал разработчиком Java. Так что очень легко переключаться между С++ и java.