Блог пользователя Logvinov_Leon

Автор Logvinov_Leon, 13 лет назад, По-русски

Здравствуйте. Решил выучить java(пока в целях спортивного программирования). Друзья говорят что есть задачи в которых этот язык превосходит C++. Не могли бы вы подсказать хорошие и доступные в электронном формате книги а также удобную среду программирования. Заранее спасибо.

  • Проголосовать: нравится
  • +11
  • Проголосовать: не нравится

13 лет назад, # |
  Проголосовать: нравится -35 Проголосовать: не нравится
лучше его вообще не начинать(по крайней мере в сп)
  • 13 лет назад, # ^ |
    Rev. 2   Проголосовать: нравится +41 Проголосовать: не нравится

    .

    • 13 лет назад, # ^ |
        Проголосовать: нравится -26 Проголосовать: не нравится
      ну мне кажется, ему, как например и Egory он нужен для работы, создания проектов - это как бы другое дело
      • 13 лет назад, # ^ |
          Проголосовать: нравится +11 Проголосовать: не нравится
        ИТМО всё на Джаве пишет.
        • 13 лет назад, # ^ |
            Проголосовать: нравится -11 Проголосовать: не нравится

          ну парень же не в итмо)

          ну дело хозяйское, но не вижу, чем принципиально java лучше с++, и если уж учить, то по мне так с++, а если знаешь, то больше ниче для счастья не надо(опять же, по крайней мере в сп)

          • 13 лет назад, # ^ |
              Проголосовать: нравится +3 Проголосовать: не нравится
            Ну просто я к тому, что язык не решает. Удобнее на Джаве человеку будет писать -- пусть пишет.
          • 13 лет назад, # ^ |
              Проголосовать: нравится 0 Проголосовать: не нравится
            В итмо какая-то другая java? =)
          • 13 лет назад, # ^ |
              Проголосовать: нравится 0 Проголосовать: не нравится
            На заре существования CF тут была серия джавасрачей.
            Плюс java #1 - объемная библиотека, содержащая очень много различных функций (длинная арифметика, геометрия)
            Плюс java #2 - не дает выстрелить себе в ногу, в отличие от. Код вида int x = 37[a]; или if (a = 1) просто не скомпилируется
            Основной минус java - в целом несколько более медленная работа, так что на некоторых контестах (TC, CF, южный четвертьфинал и NEERC к ним не относились на моей памяти) код на java во избежание TL приходится вылизывать по оптимальности.
            • 10 лет назад, # ^ |
                Проголосовать: нравится +3 Проголосовать: не нравится

              Я перешел на Java после 6 лет С++, так как на работе стал на Java писать. Но открылся мир удивительного :)

              По поводу скорости. Все контесты, которые я готовил, я писал решение на Java. Причем, нормальное решение — Java style, а не перегонку из С++. Тогда если есть такое решение, то ТЛ выставляется соответственно. Если авторы будут этому следовать, то проблем не должно быть.

      • 13 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        Изначально - да, по работе надо было
        Сейчас я вспоминаю спортивное программирование на С++ как темную эпоху :) Хотя я бы вообще С# предпочел (нормальный, и чтобы кто-нибудь еще мой плагин для него переписал :) )
13 лет назад, # |
  Проголосовать: нравится -9 Проголосовать: не нравится
C C++. xD
13 лет назад, # |
  Проголосовать: нравится +5 Проголосовать: не нравится
Я вот не читал книжек - мне друзья все объяснили.

Вообще полезно ознакомиться с постом Максима Буздалова про ввод-вывод и про коллекции в одном из давних тредов. Ну и сдавать как можно больше задачек
13 лет назад, # |
  Проголосовать: нравится +11 Проголосовать: не нравится
 Bruce Eckel, Thinking in Java (4th Edition)
13 лет назад, # |
  Проголосовать: нравится +8 Проголосовать: не нравится
коварный у меня сегодня день для написания постов про Java - все минусуют=)) но попробую еще...
1. библией Java Developer'a изначально становится книга "Хорстманн К. С, Корнелл Г. - Java 2. Том 1. Основы"
2. несомненно далее идет вышеупомянутое творение Брюса Эккеля
3. потом можно пройтись по "П. Ноутон, Г. Шилдт - Руководство по Java 2 " и сравнивать трех авторов
ну а уж потом куда пойдешь)) 
13 лет назад, # |
  Проголосовать: нравится +12 Проголосовать: не нравится
Тема действительно не раз поднималась, и советы по книгам были, например, здесь. Все же придерживаюсь мысли, что лучшее (и довольно краткое) введение в язык у Арнольда, Гослинга и Холмса (увы, на русском вышло только 2ое издание, на английском же существует The Java Programming Language 4th ed).
Что касается среды разработки, для спортивного программирования представляется удобным eclipse (хотя, конечно, найдутся сторонники и IDEA, и NetBeans - но можно же попробовать и выбрать самому). Со средами разработки, вероятно, лучше знакомиться, используя Tutorial'ы на официальных сайтах: здесь для eclipse, здесь для netbeans.
13 лет назад, # |
  Проголосовать: нравится +6 Проголосовать: не нравится
Базовые знания быстро и приятно можно почерпнуть в Java Tutorial. Для СП достаточно прочитать несколько вводных глав, а работу с графикой, звуком, сетью и пр. — опционально из любопытства. Пишу в eclipse: при настройке под себя — всё прекрасно, при стандартных настройках бывают неудобные вещи вроде автоподстановки аргументов, но они выключаются, как правило, тривиальным чекбоксом в настройках. Настройки, впрочем, можно экспортировать в файл и на другой машине настроить среду его простым импортом.
Удачи в освоении) Ну и на сладкое старое доброе. =)
13 лет назад, # |
  Проголосовать: нравится +5 Проголосовать: не нравится
начал с того что прочитал Effective Java, очень целесообразно изложен материал и не так скучно читать.
  • 13 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Уверен что это для начинающего? :-)
  • 13 лет назад, # ^ |
    Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

    UPD: сдаётся, не туда попал. Сорри.

    Я наоборот на СП ресурсы пришёл чтоб потрениться в java, когда азы познавал. ;-)

    Мой метод был такой:
    - внимательно изучаем исходников из тюториалов, чужих решений и т.п. - ищем непонятные места;
    - читаем Java API Reference по мере необходимости познавая нужные классы/методы;
    - читаем Java Language Specification в свободное время, там много умный вещь;
    - пробуем писать, смотрим что получается.

    Желательно по крайней мере сначала писать не в IDE, а в (удобном каком-нибудь) блокноте, компилируя в командной строке. Когда понимание этого процесса приходит, скачиваем eclipse или netbeans - разница дело вкуса (почти).

    P.S. Насчёт существования спортивных задач для которых java лучше подходит... Сомневаюсь. Только если плохо знаешь C++ (как я)... Или если задачи A с помощью регэкспов писать хочется... ;-)

    • 13 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Вам, как профессиональному Java-программисту, тогда вопрос такой: какие книги/материалы подходят для изучения Java Enterprise Edition?

      На олимпиадном уровне я Java знаю, а Java EE нужно для того, чтобы найти работу. Сейчас в университете у меня раз в неделю есть практика в компании, где нас учат Java EE (то есть лекция + практическое (УЧЕБНОЕ!) задание), но этого мало, так как 1 наставника на группу из 20 человек явно недостаточно, чтобы узнать какие-то непонятные вещи. Поэтому хочу выучить самостоятельно, а читать первую попавшуюся книгу рискованно - может оказаться макулатурой.

      Таким образом, еще раз вопрос. Какие книги/материалы надо изучать, чтоб соответствовать следующим требованиям, цитата:
      "Список требований в объявлении... Не вполне адекватен. В общих чертах нужно:
      - твёрдые навыки в Java Core вообще, полезненьких классиках из J2SE API в частности - плюс желательно знакомство с J2EE (в первую очередь JPA в виде Hibernate или EclipseLink, Spring в общих чертах, GWT и IceFaces в различных проектах присутствуют) - вообще понимание что такое сервлет, томкат, хттп-запрос и ответ... ну короче, страшно сложные вещи;
      - представление об SQL (умение написать несложные запросы для MySQL или FireBird, или хотя бы Access вполне покатит);
      - познания в алгоритмах... Общие... Понимание временной сложности и затрат по памяти... Алгоритмы на графах или цифровые фильтры не понадобятся, почти наверняка... Некоторые алгоритмы обработки строк - могут;
      - довольно много обработки текста и данных вообще, поэтому желательно не бояться регэкспов, уметь придумывать автотестилки и вообще иметь бодрый склад ума... ;-)
      - уважение к Java Code Conventions и стилю оформления, принятому в чужом проекте - обязательны;
      - используются система контроля версий SVN и багтрекер RedMine... не думаю что это имеет смысл в требования писать."
      • 13 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        По SQL - Грабер, по регэкспам - Фридл очень хороши имхо
      • 13 лет назад, # ^ |
        Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

        Лучше лично отвечу... ;-)

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

        • 10 лет назад, # ^ |
            Проголосовать: нравится -8 Проголосовать: не нравится

          Ответьте уж лучше публично, если не сложно (мне, к примеру, тоже интересно).

      • 10 лет назад, # ^ |
          Проголосовать: нравится -8 Проголосовать: не нравится

        Это куда такие требования, если не секрет?

        • 10 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится

          Какое-то объявление на HeadHunter. Сложнее вспомнить сложно, учитывая что это было 2.5 года назад:)

  • 13 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Effective Java скорее о красивом и качественном коде, а не о самом языке. По крайней мере, не для изучения основ эта книга.
13 лет назад, # |
  Проголосовать: нравится -24 Проголосовать: не нравится
леня ,а здесь есть че-нить типо друзей и т.п.
13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

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

Среда разработки - это уже на вкус. Самых популярных три штуки - поставить каждую и самому посмотреть/выбрать не так уж сложно.

13 лет назад, # |
  Проголосовать: нравится +4 Проголосовать: не нравится
С чего начать изучение java? С чашечки крепкого кофе.
»
10 лет назад, # |
  Проголосовать: нравится +8 Проголосовать: не нравится

Из среды разработки — IntelliJ IDEA от Jetbrains. Ее подсказки частенько спасают от ошибок и желания называть переменные в одну букву. Хотя для начала, как выше и упоминали, стоит разобраться с командной строкой и блокнотом.