JavaRush /Java блог /Random /Как правильно изучать Java
Зеленая лягушка
26 уровень
Москва

Как правильно изучать Java

Статья из группы Random
Как правильно изучать Java  - 1
Добрый день, уважаемые джаварашевцы и джаварашатессы! Почти перед каждым, пришедшим учиться на JR, встает вопрос как правильно учиться? И вот прямо сейчас, без регистрации и СМС, я поделюсь своим опытом по этой теме. Придя на JR большинство ставят перед собой задачу — изучить Java до уровня, позволяющего устроиться на работу Java-прграммистом. Сам я еще не изучил Java до такой степени, да и по ИТ-специальностям никогда не работал. Но уже порываюсь вас учить. Кто-то (напр., Иисус) скажет, что это грех гордыни. Иные (напр., Фрейд) скажут, что это завышенная самооценка относительно размера собственного МПХ. Но это не так. Ведь учить я вас буду не Java, а как его изучать. Да и не учить буду, а поделюсь собственным опытом. Как мы все знаем, know-haw (знаю как) дает огромное преимущество перед теми, кто не знает как. Вот и вы это преимущество получите.

Первоочередные задачи советской власти

Как правильно изучать Java  - 2
Как я уже писал, задача большинства — изучить Java до уровня, позволяющего устроиться на работу Java-прграммистом. Она порождает следующие основные вопросы. Что учить? В какой последовательности учить? Как учить? В принципе, сам курс JavaRush является ответом на вопросы "что учить?" и "в какой последовательности учить?" Но ответом далеко не полным, о чем джаварашевцы и джаварашатессы начинают догадываться уже к пятому уровню. Соответственно, очень важным становится ответ на вопрос, а что еще, дополнительно к курсу JR надо изучать? Также необходимо ответить на воросы, что значит знать язык Java? Нужно ли знать еще что-нибудь кроме Java, чтобы быть Java-прграммистом? На вопрос, что значит знать язык Java? Можно дать три ответа:
  1. Знать синтаксис языка;
  2. уметь написать что-нибудь работающее на Java, что подразумевает знание возможностей языка, а также целей и случаев их использования;
  3. уметь писать Java-программы.
Первому варианту знания учат уровни 1 - 10 JR. Второму — весь остальной курс JR. Третьему — стажировка и самостоятельное написание программ с одновременным осваиванием дополнительных технологий, необходимых для такого написания, но не преподаваемых на JR.

Курс молодого бойца

Как правильно изучать Java  - 3
Что еще кроме Java и JR необходимо изучить, что-бы стать java-программистом? В ответе на этом вопрос можно выделить три составляющие. Во-первых, одновременно с прохождением курса необходимо изучить несколько книг. Эти книги дополняю скудный теоретический материал курса, способствуют его пониманию и помогают прохождению. Они описаны в следующем разделе. Во-вторых, если мы утверждаем, что java это язык для написания "больших" бэк-энд бизнес-приложений, то такая писанина невозможна без освоения дополнительных технологий. Об этих технологиях здесь, чуть ниже. Андроид-разработку не рассматриваю, т.к. не компетентен в ее изучении. Да, на java можно писать "небольшие" приложения и пользовательские приложения с интерфейсом. Но все же она не для этого, по моему скромному мнению. Поэтому эти варианты тоже не рассматриваются. В-третьих, для становления профессионалом необходимо учиться, учиться, и еще раз учиться (© В.И. Ульянов(Ленин)). Какую литературу для этого использовать в первую очередь скажу в разделе "Коммунизм — это Советская власть плюс электрификация всей страны". Рассмотрим "во-вторых" подробнее. Всегда есть данные! Их надо где-то хранить. И хранят их энтерпрайз-приложения в базах данных. Поэтому необходимо получить хорошее представление о работе с базами данных. Для первого знакомства часто хорошо подходят книги из серии HeadFirst. Есть в этой серии и книжка Линн Бейли "Изучаем SQL". Дополнительно можно освоить книгу Алана Бьюли "Изучаем SQL". Для оттачивания мастерства есть хороший сайт http://sql-ex.ru/, содержащий задачи по SQL. Фронт-энд технологии бэк-энд разработчику не сильно нужны, но представление о HTML\CSS иметь необходимо. Здесь на помощь опять придет серия HeadFirst в лице книги "Изучаем HTML, XHTML и CSS" Элизабет Фримен и Эрика Фримена. Изучать SQL, HTML и CSS можно с любого уровня JR. Программа, написанная на java должна как-то работать с базой данных и с веб-интерфейсом. И тут не обойтись без технологий jdbc (это про базы данных) и servlets/jps (это про работу с веб-интерфейсом). К сожалению, я не могу подсказать хороших книг на русском языке по этим темам. Для знакомства с этими темами можно посмотреть Базовый курс по JDBC и Java EE для начинающих. Это более сложные темы и изучать их следует после освоения SQL, HTML и CSS. Энтерпрайз-приложения пишутся с помощью так называемых фреймворков. Одним из наиболее популярных является Spring. По этому фреймворку есть хорошая книга Spring 4 для профессионалов Шефер К., Хо К., Харроп Р. Осваивать Spring стоит после освоения тем, указанных выше в этом разделе. Вся область знаний "во-вторых" может изучаться одновременно с прохождением JR. Это зависит о уровня подготовки и наличия свободного времени. Если есть время и достигли соответствующего уровня понимания, учим параллельно с JR. Нет - оставляем на "после JR". Определившись с ответами на вопросы что и в какой последовательности учить, обратимся к ответу на вопрос как?

Как правильно взять почту, телеграф и телефон

Как правильно изучать Java  - 4
Первое и самое важное — методология учебы. Чтобы усвоить материал его надо понять, запомнить и уметь применять. Начав проходить JR, необходимо сразу изучить книгу «Думай как математик» Барбары Оакли. И применять все правила, в ней описанные. Прочел первую главу, вторую изучаешь по правилам первой. Третью по правилам первой и второй и т.д. Курс JR и книги, которые изучаешь, изучай как учит Барбара Оакли. Прочитанное поможет понимать изучаемые темы. Например, запоминанию и пониманию материала способствует не повторное перечитывание материала, а попытки воспроизвести его самостоятельно. Это значит, что приведенные в тексте примеры надо один раз прочитать добившись общего понимания происходящего, а потом воспроизвести самостоятельно. При этом, при возникновении затруднений не лезть сразу за готовым ответом, а искать его самостоятельно — вспоминая и находя. Если воспроизвести получается, значит тема в основном понятна. Если не получается воспроизводим еще раз, работая помидорами. Подробнее о помидорах позже. Во-вторых, поставь программу Anki на компьютер и смартфон. Весь материал, требующий запоминания нужно учить с помощью программы Anki . По каждой теме формируется набор вопросов — ответов и повторяется по графику Anki. Пример: Уровень 20. Урок 3 5 вопросов Anki загружено В: Что такое сериализцая объекта? О: Сериализация объекта это способность объекта сохранять полную копию его и любых других объектов на которые он ссылается, используя поток вывода(например, во внешний файл). Источник: Уровень 20. Урок 3 В: Алгоритм сериализации объекта в файл? О: 1) сериализуемый объект должен имплементировать интерфейс Serializable; 2) создаем объект типа FileOutputStream, передав ему в параметрах имя файла; 3) создаем объект типа ObjectOutputStream, передав ему в параметрах объект типа FileOutputStream; 4) у объекта типа ObjectOutputStream вызываем метод writeObject, передав ему в параметрах сериализуемый объект. Источник: Уровень 20. Урок 3 В: Что такое интерфейс-маркер? О: Интерфейс, который не содержит никаких данных и методов. Используемый только для того, чтобы «помечать» (маркировать) классы. Источник: Уровень 20. Урок 3 Если так не учить, то пройденное будет забываться через два-три урока. Сколько времени, нужно заниматься таким повторением? Думаю, что пока период повторения не станет более полугода. После этого тему можно перестать повторять. Конечно это не гарантирует эффекта "фотографической памяти", но запомнится материал очень хорошо. Касательно книг. Материал на JR подаётся очень скупо. И это "фича а не баг". Для получения дополнительной информации по темам хорошо подходит двухтомник Хорстманна "Java. Библиотека профессионала", десятое издание. Там следует читать соответствующие разделы по мере прохождения курса. На первых уровнях можно прочитать первые три главы из книги Лафоре "Алгоритмы и структуры данных Java". Там про массивы и простые алгоритмы сортировки. Обязательно нужно решать проекты в конце глав. Эти проекты являются отличным примером правильных задач на усвоение материала. В отличии от HeadFirst, где задачи плохие. Также одновременно с курсом и даже опережая его желательно прочитать "Изучаем Java" Кэти Сьерры и Берта Бейтса из серии HeadFirst. Это даст хорошее общее представление о языке. Учиться лучше "помидорами". Эта методика позволяет лучше сосредотачиваться, учитывать время затраченное на учебу, мотивировать себя, привлекать подсознание к решению задач. Именно "помидоры" позволяют реализовать принцип: лучше увеличить количество попыток сделать что-то, чем продолжительность одной попытки. Это основные принципы "как?". В книге "Думай как математик" есть еще много полезного.

Коммунизм — это Советская власть плюс электрификация всей страны

Как правильно изучать Java  - 5
Курс JR хорош, но глубина раскрытия тем мелка. Желающим нырнуть помогут 10 основных книг для изучения Java. Подробнее читаем здесь. Описывать эти книжки подробно не буду, кроме Блоха «Java. Эффективное программирование». На rutracker.org есть электронная версия второго издания с дополнительной редактурой Linneris. Лучше читать это издание.

Метод норвежских лыжников-астматиков

Как правильно изучать Java  - 6
Некоторым джаварашевцам и джаварашатессам 50 лет, или за 50 лет, или около 50 лет. Возраст создает дополнительные, естественные сложности, снижая способности к учебе. Уменьшаются когнитивные способности, быстрее настает утомление, снижается общий тонус организма. Гормональная перестройка организма вносит коррективы в настроение, самоконтроль, ослабляет волевое поведение. Люди в возрасте могут обратиться к врачам за фармакологической поддержкой с целью ослабить описанные возрастные эффекты. Усилить когнитивные способности и память можно с помощью так называемых ноотропов. За назначением соответствующих препаратов необходимо обращаться к неврологу, если есть жалобы на ухудшения запоминания и снижение когнитивных способностей. Ноотропы помогают, но чудес от них как и от остальных препаратов ждать не стоит. Для борьбы с возрастной гормональной перестройкой существует ГЗТ (гормоно-замещающая терапия). Для мужчин это в основном сводится к приему тестостерона. Но в качестве побочки есть большой шанс получить онкологическое заболевание и умереть в мучениях. Женщинам назначают свои гормоны. И последствия там не такие разрушающие. В любом случае, сказанное касается исключительно возрастных учащихся. Вся фармакология принимается строго по назначению врача и под его надзором.

Важнейшими из искусств на данном этапе для нас являются цирк и кино

Как правильно изучать Java  - 7
Учеба и особенно изучение точных наук является делом трудным и долгосрочным. К тому же специфика текущего исторического этапа и ИТ-специальностей превращает учебу из временного процесса в образ жизни. В образ жизни, требующий известного напряжения. Это надо осознать и к этому надо быть готовым. Вспомним Бодрийяра с его симуляциями и симулякрами. План местности не равен самой местности. План местности является искажением местности. Попадая под влияние рекламы ИТ-курсов и испытывая восторг от размеров зарплат программистов, следует помнить, что это симулякры, а не реальность. Непонимание разницы между ожиданием и действительностью повлекло появление мема "войти в АйТи". Мема, характеризующего поверхностный, "шапкозакидательский" подход. "войти в АйТи" не получится. Может получиться только долгий и напряженный труд. Научится программировать можно за 10 лет, не меньше. Сколько не геймофицируй процесс обучения, он не превратится в ненапряжное времяпровождение. Вот так не получится. Про изучение иностранных языков говорят, что они учатся попой. Сел на попу и учишь, учишь, учишь. Java учится также. Серьезно настроенным на учебу хочу порекомендовать замечательную книгу писателя и педагога Симона Соловейчика "Учение с увлечением". () Первый ее вариант вышел еще в 1976 году. С тех пор в окружающем нас мире очень много изменилось. Но не изменились люди, не изменилась потребность в знаниях. Знания теперь открывают еще больше дверей и горизонтов. По прежнему без знаний невозможно достичь многого и сделать что-нибудь значительное. Да, отдельные индивиды научились неимоверно красиво и фантастически необычно потреблять. Но ведь акты потребления не являются достижениями (© Ж. Бодрийяр). И важность знаний нисколько не уменьшилась за эти годы. Согласно некоторым ужасным и катастрофическим прогнозам современное общество идет к киберфеодализму. Но даже в таком будущем сегрегация будет проводится не только по богатству, но и по знаниям. Кушать будут только богатые и их интеллектуальная обслуга-технари. Так что учеба поможет подготовится к любому будущему. И к киберфеодализму, и к Миру Полудня. С уважением, Зеленая лягушка. P.S. На заглавной фотографии изображена одна из книжных полок автора статьи. P.P.S. Продолжение следует.
Комментарии (8)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
3 апреля 2019
Статья - что надо! Спасибо.
systemout Уровень 18
23 марта 2019
Java. Библиотека профессионала. Том 1. Основы. — Кей С.Хорстманн, Гари Корнелл Книга Хорстманна не продается нигде, чем можно заменить? Java SE 9. Базовый курс - Кей С.Хорстманн?
vinsler Уровень 35 Expert
18 марта 2019
На вопрос, что значит знать язык Java? Можно дать три ответа: Знать синтаксис языка; уметь написать что-нибудь работающее на Java, что подразумевает знание возможностей языка, а также целей и случаев их использования; уметь писать Java-программы. Вот с этим можно грубо поспорить. ))) Но не буду развеивать ваши мечты.