JavaRush /Java блог /Архив info.javarush /Трудности при изучении Java
grishin
27 уровень
Харьков

Трудности при изучении Java

Статья из группы Архив info.javarush
Сегодня я получил вопрос от одного из новичков на javarush.ru: «Я на джавараше новичок и интересует мнение старожилов. Стоит ли покупать платный курс и оправдывает он себя?»
Трудности при изучении Java - 1
Пока писал ответ, понял, что получается целая статья :-) Написал её на одном дыхании, наверное, потому что не столько человеку хотел ответить, сколько для себя искал понимания в правильности своего пути.

Итак, мой ответ-статья

Добрый день! Правильно сделали, что написали. Выскажу свое мнение. Джавараш является альтернативой стажировкам/обучению в ИТ-компаниях. Если у вас низкие шансы на попадание в одну из таких программ при текущей вашей ситуации (возраст, уровень знаний, предыдущий опыт и прочее), то джавараш будет хорошим подспорьем, а может даже единственным шансом попасть в отрасль. Главное преимущество джавараш — это большое количество практических задач. На них хорошо набиваешь руку. Очень полезно также обсуждать задачи, помогать другим в поиске решения — это один из основных навыков программиста — уметь читать чужой код. Но не могу сказать, что после того, как вы оплатите подписку, уровень ваших знаний сразу неуклонно пойдет вверх. Материал лекций специально подается в таком виде, чтобы немалую часть информации вам приходилось искать самому — таким образом у вас вырабатывают ещё один необходимый навык — по любому вопросу лезть в интернет. Т.е. если что-то будет непонятно — придется корпеть, а это может занимать немалое время — день, два, три, неделю — и соответственно будет откладываться достижение верхних уровней курса. Опишу свой случай. Сейчас мне 41 год. Я начал изучать джаву в феврале 2014-го. К джавараш присоединился в октябре. До того момента успел почитать Шилдта, ООАП и Паттерны проектирования из серии HeadFirst, порешать простые задачки на javaranch.com, послушать разные видеоуроки — т.е. уже немало продвинулся в изучении Core Java. Задачи начал решать в ноябре и до начала января прошел 24 уровня. Но почувствовал, что слишком быстро лечу, накопилось несколько не совсем понятых (недопонятых) тем. Кроме того, в январе я для разнообразия переключился на изучение HTML/CSS/Javascript, походил на собеседования в феврале интенсивно, попробовал немного QA — в общем, отвлекся от изучения непосредственно Java. А сейчас вот опять вернулся. Но сейчас я ставлю себе целью не пройти максимально быстро уровни, а систематизировать то, по чем уже галопом пробежался раньше. Чтобы знания устаканились и появилась ясность :-) Пока не читаю новые лекции — курю некоторые темы, решаю оставленные на потом бонусные задачи. Так вот, самое сложное при изучении Java, как по мне — это найти правильные книги/туториалы/видеоуроки, которые раскроют и донесут сложную тему так, чтобы не оставалось неясностей. В какой-то момент при изучении ты обязательно сталкиваешься с каким-нибудь вопросом, который в той книге, которую ты читаешь, описан так, что ты никак не можешь его понять, что-то в нем остается неясным, а автор об этом не пишет. Тогда ты берешь другую книгу, ищешь видеоурок, видеолекцию, статью, обсуждение на форуме — и так перебирать можно долго, пока не найдешь то, что нужно, что действительно покажет тебе вопрос с другой стороны и уже не останется темных мест. Для меня например, одной из таких непростых тем является тема потоков. Читал я про неё во многих местах, все никак не мог понять до конца, пока не решил почитать официальные оракловские туториалы — честно, это было для меня настоящим откровением. Нигде так просто, так доходчиво и сразу по делу про них не написано. Каждое слово наполнено смыслом и написано совершенно не напрасно — ты просто читаешь и просто понимаешь, от простого к сложному. Впитываешь, так сказать, чистые знания :-) Тут немного добавлю, что оракловские туториалы не просто по другому написаны, в них была одна фраза, которой не было ни у Шилдта, ни у Хорстманна, и которая буквально стала для меня ключом к пониманию потоков (streams). Вот эта фраза — «The Java platform stores character values using Unicode conventions». Не буду здесь вдаваться в подробности, может, попозже напишу об этом ещё одну статью, здесь же о другом. О том, что часто при изучении Java не хватает правильной подсказки — мол, смотри здесь и да пребудет с тобой Сила. На мой взгляд, это настолько важный вопрос для ускорения процесса обучения, что джавараш стоило бы проработать его тщательнее, чем это сделано на данный момент. Можно мониторить, какие темы чаще всего являются «камнем преткновения» для учащихся. По каждой такой теме можно предлагать вниманию максимально полный список источников и устраивать голосование с обсуждением, какой из источников лучше всего помогает в понимании темы. Такое мое пожелание к администрации javarush.ru :-) Тем более, я ещё не принял участие в опросе на тему «Как улучшить javarush.ru» — дам в нем ссылку на этот мой опус. В общем, подытожу. По жизни, каким бы делом ни занимался, я всегда опирался на знание основ, базы. В Java базой является Core Java. Технологиями ты не сможешь пользоваться, не зная основ. Ведь фактически, что такое, например те же сервлеты — это просто java-классы, помещенные в определенную папку, в ту папку, которую предусматривает веб-сервер. И что сервлет делает — вызывает метод другого java-класса, помещенного в другую папку, которую тоже предусматривает веб-сервер. Вся технология сервлетов, если упрощенно, сводится к тому, чтобы правильно разместить классы по папкам, а остальное — Core Java. Поэтому, если у вас стоит четкая цель научиться Java — не сомневайтесь, оплачивайте курс и дерзайте. Дорогу осилит идущий. Решайте задачи, разбирайтесь в сложных темах, общайтесь в обсуждениях. Надеюсь, статья не будет воспринята как заказная рекламная. Все изложил от души, как есть :-) И ещё дам свой совет относительно первой книги по Java — на мой взгляд, это должна быть книга Хорстманна и Корнелла «Java. Библиотека профессионала». Ни в какое сравнение с ней не идет книга Шилдта «Java. Полное руководство». Пишу об этом, потому что сам начал изучать джаву с Шилдта, и считаю, что если бы кто-то мне тогда подсказал, то я бы минимум на месяца два-три быстрее продвинулся в изучении. Так сказать, восстанавливаю историческую справедливость :-) Дело в том, что Шилдт "идет по верхам", не объясняя очень многие моменты, которые сами по себе неочевидны. Хорстманн и Шилдт — это по сути два учебника одного типа, но Хорстманн при том же объеме подает материал гораздо глубже и "по делу". Шилдт просто "гонит объем", лишь бы что-нибудь написать, лишь бы было похоже на Java. Приведу маленький пример. У Шилдта нет слов о том что "/" с целыми числами — это целочисленное деление. Вместо этого он дает пример использования основных операторов деления, который мало того, что бестолковый по своей сути и занимает целую страницу, так ещё и не облегчает новичку понимания — из него не сразу становится понятно, о чем хотел сказать автор. Хорстманн ставит своей целью максимально выверенным текстом донести максимум информации. Можете просто сравнить страницы 98-99 Шилдта 8-е издание (Это 3 подраздела "Основные арифметические операторы", "Оператор деления по модулю" и "Составные арифметические операторы с присваиванием") и страницу 69 Хорстмана 9-е издание (подраздел "Операции"). Указанные подразделы в двух учебниках — об одном и том же, только у Шилдта это 2 с четвертью страницы, а у Хорстмана — 1/3 страницы. При этом у Хорстмана — понятнее и без лишней воды. И так везде, очень много, поверьте, моментов не раскрыто у Шилдта. Это как если провести аналогию с велосипедами, то Шилдт — это китайский ашан-байк, а Хорстманн — качественный брендовый маунтинбайк уровня Скотта или Кадейла. Один из основных советов начинающим велосипедистам — не покупать китайский хлам, иначе — отобьешь себе изначально желание кататься на велосипедах. Шилдт, как я понял, изначально сделал себе имя на книгах по С, С++ и С#, а Java — уже решил на волне популярности просто "подмахнуть не глядя". Не ходите дети в Африку Не начинайте изучать Java с Шилдта... Как-то так :-)
Комментарии (114)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Дмитрий Уровень 2 Expert
26 марта 2019
Задачи начал решать в ноябре и до начала января прошел 24 уровня What ??? Не заставляйте других чувствовать себя тупыми))
Alex D Уровень 8
5 сентября 2018
возраст - цифра, не более. все остальное - наши страхи и загоны. ни когда не поздно начинать учиться. в нормальных странах вопрос на собеседовании сколько вам лет ЗАПРЕЩЕН (за редкими особыми исключениями), тк возраст не влияет на проф уровень.
Олег Ананьев Уровень 32
15 августа 2018
Я, наверное, отличусь от всех присутствующих) Мне 51 и я решил вернуться в программирование. которое забросил в 33 года. И еще тогда я был сисадмином: С,PERL, PASCAL. Парни, ошибаются те, кто клюет в возраст - он в процессе обучения совсем не при чем, надо только относиться к обучению правильно и не лениться. Очень помогает физическая нагрузка, контрастный душ и для меня, например, обучение с 5 - 6 утра (до работы) с соответствующим ранним отбоем 5 дней в неделю и один день в выходные - 8 -10 часов. Конечно, никаких расслаблений с пивком или чем покрепче ))). Уже целый год в таком режиме обучение идет тяжело, со скрипом, но идет. Наверное, также, как и у всех. Читаю много, ищу "истину", JavaRush на практике помогает понять очень многие моменты, которые в теории и на курсах "Специалиста" просто не смог осмыслить. Чувствую, что с такими темпами мне нужен еще один год на практику. Есть несколько собственных проектов, которые хотелось бы запустить. Найти бы для этого ментора... По книгам. Мне приходится об одном и том же читать O`Relly, Шилдта, Эккеля и из Инета мануалы. Хорстмана, к сожалению, еще не читал. Наверное, придется 2-3 месяца на него выделить. В разных моментах суть материала доходила только из какого-то одного источника. Сравнивать их между собой, как мне кажется, не очень корректно - это уже индивидуальное впечатление по доходчивости изложенного материала в том или ином источнике.Иногда даже одно корректное слово. сказанное на ютубе каким-то пацаном, превращается в откровение не смотря на массу перечитанного материала по этой теме. Желаю успехов)
15 августа 2018
Мне 36, о возрасте не думаю, мозг это единственная мышца, которая не стареет)). По профессии я QA, пришло время изучить авто тестирование с использованием java, а там до программера недалеко). Заходит непросто, как и говорит автор приходится шерстить разные источники. А про возраст париться не надо, да тяжело, но какие перспективы открывает эти старания....особенно удаленная работа..) лежишь под пальмой кодиш..)))
Илья Уровень 10
7 августа 2018
Про шилда точняк сказано. Читал ее это муть кромешная. Википедию гораздо лучше читать чем гребаного шилда
Ratio Уровень 7
3 августа 2018
Залили на диск книгу Хорстманна и Корнелла «Java. Библиотека профессионала» https://drive.google.com/file/d/1kpkEGs0uY-uPmel52hOi4rzdkk1-JIvU/view?usp=sharing
Igor Уровень 18
22 июля 2018
Сам тоже начал читать Шилдта в дополение к JavaRush. Перед этим я проходил CS50 и для изучения С я тоже читал Шилдта. Было доходчиво и вообще книгу считаю удачной. А вот с Java тоже не плохо и пока все понятно, но чего-то не хватает. Надеюсь, по совету автора, найду это у Хортсманна и Корнелла. Спасибо за статью.
Александр Уровень 6
30 июня 2018
Интересное мнение со стороны) Очень удивлен возрастом автора, т.к. везде в один голос кричат, что чем дальше, тем труднее изучать что-то новое. Сам по этому поводу переживаю (мне 26 лет), за стойкость и постоянное желание автора учиться и совершенствоваться снимаю шляпу)). Что касается опыта изучения, Java для меня второй язык, первым стал Python, который я освоил благодаря нескольким курсам на stepic.org и книге Лучано Рамальо "Python. К вершинам мастерства".
MegaJR Уровень 7
17 января 2017
Спасибо за рекомендации по первой книге! Уже нашел в вк и скачал, начну скоро изучать)
Medniy Уровень 33
6 августа 2016
Здравствуйте, посоветуйте нормальный курс по сервлетах, (желательно видео), чтобы было куча примеров, желательно чтобы можно было в конце курса на примерах сделать что-то свое…