Обсуждение

Изучение Java с нуля

Тема в разделе "Обсуждение инфопродуктов", создана пользователем Rusmaug, 25 фев 2015.

?

Сколько надо времени, чтобы с нуля изучить Java на уровне должности Java Junior.

  1. 1 месяц

  2. 3 месяца

  3. 6 месяцев

  4. 1 год

  5. 5 лет института

Результаты будут видны только после голосования.
  1. 25 фев 2015
    #1
    Rusmaug
    Rusmaug ЧКЧлен клуба
    Всем привет!

    В настоящее время увлекся темой под названием "изучение программирования на Java с нуля".

    Буду благодарен, если кто-то расскажет о своем опыте/пути. Какие технологии посоветуете в первую очередь изучить (и курсы по ним) ?! Может у кого есть собственный план по изучению и он вкратце о нем расскажет...
     
    7 пользователям это понравилось.
  2. 6 мар 2015
    #2
    ramirez_ua
    ramirez_ua ЧКЧлен клуба
    Приветствую!
    Вариантов - много. У каждого свой выстрелил. Вкратце подскажу порядок, который помог мне:

    1 - Core Java. Тут я считаю, надо не курсы, а книги. Притом желательно бумажные. Я тремя обставлялся.)). Расписывать пока тут не буду весь кор, там всего много надо знать для начала. Только некоторые аспекты:
    1.1 - abstract classes/interfaces - обязательно, после первого хелловорда. Правильное проектирование программ. Надо отвыкать все в мейне писать))) Паттерны начать рассматривать. для чего нужны и зачем.
    1.2 - Collections - используются везде.
    1.3 - JDBC. Рано или поздно, надо обязательно писать свой проект и работа с базой данных там обязательна.
    1.4 - Exceptions - надо было до БД ставить, но пусть тут побудет. Без исключений - все валиться будет
    1.5 - Threads - лично мне, на начальном этапе не понадобился.​

    2 - тут однозначно - Hibernate. Код для JDBC, который был ранее написан - удаляем и прикручиваем Hibernate. потихоньку пробуем и привыкаем пользоваться Git.

    3 - JSP. С этого этапа нужно начинать под веб программировать. на одном кор джава не уедешь. Я ещё JSF изучал, но он оказался тогда лишним. Изучать - я имею ввиду писать на ДжиЭсПи проект, а не просто читать. Естественно суда попадут смежные темы, такие как css,html,javascript. За одно понятие верстки страниц будет освоено. Это мы уже фронтэнд напишем для нашего проекта. Потихоньку смотрим, что такое maven.

    4. - тут уже варианты разные и надо смотреть кому, что нужнее. Я свой учебный проект в Spring добавил. Тогда так было нужно. Сейчас - занялся бы RESTful.
    В общем, 4 пункт - это или спринг или рестфул.

    По времени (очень субъективно):
    1 - месяц, полтора. Это уделять по 3-5 часов минимум ч/з день. желательно - каждый день. Это базовый фундамент.
    2,3 - они вместе - до месяца без напряга осилил.
    4 - темы слишком обширные и захватывающие смежные технологии. В общем тут уже не язык учится, а инструментарий/фреймворки. Кто до этого уровня дойдет - в принципе уже сам будет ориентироваться, что ему надо.

    Главное - программировать, программировать, программировать. Только чтения книжек, смотр курсов, копипастинг заданий и решений - пустая трата времени. Ндо самому писать код. и писать постоянно. Это правило №0.
     
    2 пользователям это понравилось.
  3. 10 мар 2015
    #3
    Rusmaug
    Rusmaug ЧКЧлен клуба
    Спасибо за ответ)).

    А по источникам изучения можете подсказать?! На какие стоит обратить внимание?

    И можно подробнее этот момент:
    Как на начальном этапе изучения решить эту проблему? Суть в том, что толком ничего не знаешь и написать свой проект проблематично. Как решали эту проблему? Или тут подразумевается решение задач?
     
  4. 10 мар 2015
    #4
    ramirez_ua
    ramirez_ua ЧКЧлен клуба
    Сразу скажу, что путь субъективен. Что мне помогло - может не совсем подойти другому. Я просто рассказываю как я прошел этот период. Мои товарищи, кстати, аналогично его проходили. Да и я не знаю ваш уровень в программировании.

    Значит так, идем по порядку:

    1) "А по источникам изучения можете подсказать?! На какие стоит обратить внимание?" - тут, как я и указывал - начинать надо с книг. Другого пути не вижу. Особенно для тех, кто только открывает для себя джаву. Уж очень много надо понимать сущностей всяких. Для меня началом в джаве были "Java 2. Основы" и "Java 2. Тонкости программирования" Кея Хорстманна и Гарри Корнелла. Восьмое издание. Сейчас поновее есть. Шилдта "Java. Полное руководство" читал онлайн. Написано грамотно, но "в бумаге" небыло. Бумажные варианты оч.удобны, т.к. часто надо листать, так как не все понятно. Задачки с книги я никогда не печатал. Просто читал и старался понять код. Стесняюсб признаться - но шло туго. Пример: как сейчас помню - 5 глава (наследование) - пять раз подряд читал, пока понял более-менее. Основная проблема - это разобраться зачем те абстрактные классы, интерфейсы нужны и когда их использовать, а когда нет.
    В общем, читаем, читаем, познаём. Особенно первый том.

    2) "Как на начальном этапе изучения решить эту проблему? Суть в том, что толком ничего не знаешь и написать свой проект проблематично. Как решали эту проблему? Или тут подразумевается решение задач?"
    На начальном этапе - смотрим п.1. Читаем. Надо понимать, что такое классы, методы, переменные и т.д. После того, как код в книжке уже понятен - придумываем себе техзадание и с книжкой пытаемся реализовать его в проекте. Вот тут уже учимся писАть код. Без проекта - кажется, что все знаешь. Начинвешь писать - опа. Ничего не получается. Смотрим книжку. Там написано что и как реализовать. В общем - надо придумать хороший проект для закрепления/развития знаний. Который, по мере обучения можно было бы улучшать/добавлять новые фичи. Приведу пример своего маленького проекта, по которому сам учился - надо организовать базу данных студентов. Это очень удобный проект. Значит, сначала, мы просто создаем список студентом со стандартными операциями CRUD. Это даст нам возможность создавать студентов/удалять/изменять. Тут ничего кроме кор джава не используем. никакой графики. Все в консоли. Максимум - это запись/считывание рузультатов в файл (вот и фичу добавили))). Это научит пользоваться коллекциями/списками + научит операциям ввода/вывода с клавиатуры. Потом, на следующем этапе, развиваемся дальше - добавляем фичу. К примеру - проверку правильности ввода имен, оценок. Это в проект добавит ещё пару классов для проверки ввода данных. Уже усложнили. Работает - добавляем работу с базой данных. Читаем JDBC, прикручиваем MySQL к проекту, изменяем его под работу с БД - пробуем вносить данные. Тут уже читаем SQL и строим запросы к БД. Осилили - убираем JDBC и прикручиваем hibernate.
    Дальше можно пять страниц расписать. Но в общем - будет понятно. Кстати с второго этапа можно уже курсы просматривать. База уже есть как-никак. И все непонятные моменты спрашивать у гугла. там подскажут. Я, например, никак не мог понять суть Inversion of control. Забив в поисковик - почитав примеры кода с описаниями - разобрался. И так всегда надо - вышла непонятная ошибка - скопировал ее, ввел в поисковик - там решений тьма.

    В общем - вот так все у меня и получилось.
     
    4 пользователям это понравилось.
  5. 7 апр 2015
    #5
    Nike59
    Nike59 ДолжникДолжник
    Лучший способ, с точки зрения затрат времени и эффективности, это курсы, которые ведут подтвержденные достаточно долгим и успешным ведением подобных курсов профессионалы-практики. Ни книги, ни советы бывалых этого дать не могут, сколько ни кури специализированные, в основном англоязычные форумы. Только на курсах вам дадут правильное направление. Java невозможно учить в лоб по книгам. Этот язык практический - он осваивается так называемым методом "молевого сплава". Принцип в том, что не пытаемся сразу увязать отдельные серьезные понятия-бревнышки и "бревна" языка Java в жесткие плоты глубокого понимания сути языка, а пускаем "бревна" начиная с основ, просто так. Вот такая аналогия: Сплавщик идет на одном подвернувшемся "правильном" бревне (работающая небольшая практическая программа), затем, когда оно начинает тонуть (слишком глубока суть для начального понимания, изучающий на практике принимает на веру данное выражение, конструкцию языка, но потом проверяет и проясняет "пропущенное", получив новые знания), прыгает на другое бревно, указанное преподавателем, потом прыгает на третье и так далее. Так он движется вместе со всем потоком бревен. Вот так и на хороших курса. Делают то, что помогает продвинуться, задавая множество вопросов по непоняткам, пропуская некоторые очень важные вещи (по совету преподавателя) ради быстрого продвижения. Потом это проясняется, когда появляется опыт и чуйка. Как-то вот так. Книжки умные, в частности "Философия Java", на до читать потом, когда появляются практические знания и интуитивное понимание. Удачи в изучение Java! Всех благ.
     
    1 человеку нравится это.
  6. 9 апр 2015
    #6
    andreyI
    andreyI ЧКЧлен клуба
    Читаем книги, изучаем курсы, много практикуемся. Потом ознакамливаемся с "javatalks.ru / Вопросы на java-собеседовании" - снова учим. Обязательно необходимо знание коллекций (практическое знание, умение писать код не задумываясь - в том числе понимание бинарных деревьев, B*-tree), мультипоточности, паттернов, принципов ООП, работы с БД, обязателен как минимум технический английский. Очень понравился курс от coursera Скрытая ссылка по основам алгоритмов - если в университете этого не было или есть пробелы в знаниях - must have.
     
    1 человеку нравится это.
  7. 9 апр 2015
    #7
    rasswet
    rasswet ЧКЧлен клуба
    уровень англ какой для основ алгоритмов должен быть?
     
  8. 9 апр 2015
    #8
    andreyI
    andreyI ЧКЧлен клуба
    Там субтитры есть английские, вообще мне было интуитивно понятно, простой технический английский. Есть на рутрекере обе части + книга от лекторов, возможно где-то можно раздобыть и русские субтитры(по крайней мере это встречалось в обсуждении)
     
  9. 10 апр 2015
    #9
    rasswet
    rasswet ЧКЧлен клуба
    о, круто, надо будет поискать там ветку.
     
  10. 17 апр 2015
    #10
    Dima_1st
    Dima_1st ЧКЧлен клуба
    Java senior developer, 12+ лет опыта разработки.

    не знаю Hibernate и JSP.

    Вам для java нужно просто ориентироваться более менее в языке. И попробовать порешать задачки аля для теста SCJP.

    Далее, java применяется в совершенно разных места= вы можете придти на какой нить завод, пилить что нить для java me. Можете в банке работать пилить отчеты, а можете торговую систему пилить. Язык везде java - а вот стек технологий - небо и земля.
    Прочитайте пару базовых книг, посмотрите курсы, прочитайте про git/svn. Далее попробуйте поработать с maven, потом можно взять какой то проект с github и посмотреть на его потроха.

    Для трудоустройства нужно показать что ты не даун , есть какой то мозг, желание работать и не амбиции типа: я тут 2 книги прочел и знаю что в однокласниках платют 250+.

    Ну как то так. Любое незнание можно нивелировать ЗП. Люди учатся за деньги, а умные люди учатся за счет работодателя.
     
    4 пользователям это понравилось.