Как правильно учиться Java-программированию: история одного тьютора
Все началось больше десяти лет назад. Решив стать программистом, я начал изучать несколько языков, чтобы в конечном итоге найти «свой» язык.
В Java я влюбился с первого взгляда! Я с головой погрузился в программирование: я посвящал написанию кода по 10-18 часов каждый день. С каждым днем получалось все лучше и лучше.
Я устроился на первую работу, затем на вторую, но никогда не прекращал активно учиться. Довольно быстро я стал ведущим Java-разработчиком. Я достиг своей цели.
Я был счастлив…почти. Мне казалось, что я упускаю какую-то часть своей самореализации.
Я активно искал, чего же мне так не хватает. Подсказкой стало призвание моих родителей. Обучение! Теперь я понимаю, что унаследовал от них желание преподавать.
Отрасли нужны новые программисты, а новым программистам нужны наставники. Поэтому я стал Java-тьютором. Признаюсь, преподавать мне нравится не меньше, чем программировать. Может, даже больше.
С тех пор прошло несколько лет. Все это время я наблюдал, как мои ученики и другие люди учатся программировать. Многие из них допускают одни и те же ошибки: не в коде, а в самом процессе обучения.
Это ценный опыт: теперь я знаю, какие ошибки существуют, как их не допустить, как их исправить.
Я нашел много полезных интернет-ресурсов, которые рекомендую своим ученикам. Они подходят всем, кто решил серьезно заняться Java-программированием. В этой статье я расскажу об этих ресурсах. Однако, главная цель этой статьи — предотвратить распространенные ошибки в обучении.
Давайте по порядку.
Распространенные ошибки и методы борьбы с ними
1. Слишком много теории в самом начале
Итак, вы начали изучать язык программирования.
Что нужно сделать в первую очередь? Прочитать много теоретического материала, а затем сесть писать программу? Не совсем. Нужно прочитать совсем немного и сразу приступить к написанию кода.
Вспомните детский сад или начальную школу. На уроке рисования вам читали лекцию о том, как нужно рисовать? Я уверен, что нет. Вы и другие дети просто взяли в руки карандаши и начали рисовать. В лучшем случае, учитель показал, как правильно держать карандаш и объяснил, что из красного и синего получается фиолетовый. Или школьные спектакли: вам дали роль огурца или брокколи. Не думаю, что исполнителям таких ролей объяснили систему Станиславского.
Та же история и с программированием. Просто начните писать код. Теория важна, но не в самом начале обучения.
2. Желание получить все и сразу
Этот параграф снова о «вреде теории». Некоторые студенты погружаются в нее довольно глубоко: им хочется уже с первого задания понимать каждое слово в System.out.println. Это непосильная задача. Всему свое время. Лучший способ изучить теорию Java — это учиться поэтапно, постепенно увеличивая сложность. Несколько месяцев спустя вы с лёгкостью справитесь с задачей, которая сегодня кажется непосильной.
Сначала изучите основы Java Core, а уже потом начинайте читать книги и документацию — так чтение будет даваться вам намного легче.
3. Слишком мало практических заданий
На первых этапах обучения нужно освоить написание кода — я настаиваю на этом.
Новичкам лучше решать много маленьких и простых заданий, чем несколько сложных. Нет, я не говорю, что нужно совсем избегать сложных заданий.
Конечно, сложные задания тоже нужны. Одна сложная задача на 10–20 простых — вот идеальное соотношение. Где взять все эти задания? Об этом расскажу позже.
4. Слишком сложные задания, работа над которыми занимает целую вечность
Некоторые новички просто не знают, как прекратить работу над слишком сложной задачей. Если у вас что-то не получается, займитесь чем-нибудь более простым и вернитесь к сложному заданию позднее. Но если решение нужно вам прямо сейчас, смотрите 5-й пункт.
5. Неумение задавать вопросы
Есть новички, которые вообще ничего не спрашивают. Они боятся задать глупый вопрос, боятся выглядеть глупо в глазах опытных программистов. Есть и другие: они постоянно задают вопросы в стиле «Эй, ребят, здесь что-то пошло не так!».
Итак, что же делать, если что-то пошло не так? Задавать вопросы! Спросите на форумах—например, на Javaranch или stackoverflow. Спросите у своего наставника, если он у вас есть.
Как сформулировать вопрос? Обязательно подробно опишите проблему и покажите свой код. Затем опишите, что вы делали с этим кодом, как пытались его исправить и что из этого вышло. Я уверен, вам помогут. Каждый, абсолютно каждый программист бывал в такой ситуации.
6. Ошибка самоучек: невнимание к фактическим ошибкам в коде
Когда самостоятельно учишься программировать, довольно сложно понять, насколько хорошо работает твой код. Вдруг он выдает идеальный результат только при определенных условиях? Вдруг вы что-то упустили из виду? Если у вас есть наставник, который все проверит, то все в порядке. А если нет? Научитесь задавать себе вопрос «а что, если?» и проверять, как программа работает в разных условиях. В будущем этот навык поможет вам писать модульные тесты.
Тем не менее, в последнее время учиться программированию становится все легче и легче. Появляется все больше онлайн-курсов и ресурсов, на которых можно выполнить упражнение и тут же автоматически его проверить. Я приведу ссылки на такие ресурсы ниже.
7. Отладка кода? Извините, это не для меня!
Дорогой новичок-разработчик, тебе придется заниматься отладкой. Тем более, что с помощью современных IDE это довольно просто. Стоит один раз научиться отладке и у вас появится навык, полезный для обучения и будущей работы. Начинайте заниматься отладкой с первого месяца обучения.
8. Обучение ради обучения
Пока вы учитесь программировать, помните: вам нужно не просто пройти тест и забыть. Да, его нужно пройти, но полученные знания пригодятся вам в будущем. Поэтому расслабьтесь и приготовьтесь бесконечно поглощать информацию и много кодить.
9. Вы пишете код, не придумав решение задачи
Как этого избежать? Попробуй взять в руки бумагу и ручку, юный падаван. Если вы столкнулись с задачей и не можете сходу придумать решение — подумайте, что конкретно нужно сделать. Вы же не просто пишете код — вы разрабатываете решение. Возьмите ручку и бумагу и напишите примерный алгоритм. Кстати, некоторые компании на этапе собеседования предлагают выполнить тестовое задание на бумаге.
10. Страх экспериментов
Некоторые программисты привыкают решать определенные задачи одним и тем же способом, даже если знают другие варианты решения этой же проблемы. Если вы тоже привыкли идти по проторенной дорожке, попробуйте следующее:
A. Решите проблему обычным, проверенным способом и проверьте, получилось ли.
Б. Попытайтесь решить ту же проблему по-новому. Это не пустая трата времени. Представьте, что решаете уже другую проблему. У вас уже есть правильное решение, теперь можно вдумчиво и неспеша попробовать найти новое. Научившись чему-нибудь новому, возвращайтесь к уже выполненным заданиям и пробуйте снова решить их с помощью новых знаний.
11. Потеря мотивации из-за трудностей
Это очень распространенная проблема среди самоучек и тех, кто учится медленнее, чем все остальные в группе.
Поймите, что программирование — это не ядерная физика.
Если приложить достаточно усилий, почти любой может этому научиться.
Вам кажется, что у вас ничего не выйдет? Скорее всего, еще слишком рано об этом думать. В Интернете есть тысячи историй людей, у которых раз за разом не получается достичь цели. Среди этих людей много программистов.
Полезные ссылки для каждого новичка в Java
Как вы уже поняли, я сторонник обучения программированию на практике. Соответственно, я всегда советую своим ученикам использовать как можно больше ресурсов с заданиями по Java-программированию. За последние два года я нашел несколько замечательных сайтов. Вот они.
CodeGym. «Это он», — подумал я, когда нашел CodeGym. — «Это тот самый курс, о котором я мечтал».
Этот курс Java Core, на 80% состоит из практики. Он поможет как новичкам, так и опытным программистам. Главное достоинство CodeGym — это его система упражнений. На сайте полно заданий: можно каждый день заниматься и улучшать свои навыки. На CodeGym около 1000 упражнений для разных уровней.
Делать упражнения в CodeGym можно с помощью IDE в браузере или используя плагин для IntelliJ IDEA, самой популярной Java IDE. Интеллектуальная система проверки проверит ваш код и укажет, что нужно исправить. Это особенно полезно самоучкам и ученикам, у которых есть наставник: ни один человек не может правильно проверить 10 программ у 20 учеников в день. А система проверки может.
CodeGym разделен на 40 уровней. Каждый уровень состоит из 15–30 заданий на написание кода, 10–20 уроков по Java и мотивирующих статей. Таким образом, решая задачи, вы проходите уровень за уровнем— это своего рода игра, в которую вам не надоест играть. Еще один плюс: у CodeGym веселые, полные юмора уроки, мне они очень нравятся.

CodinGame. Решение заданий на CodinGame — это хороший способ улучшить навыки программирования. Этот сайт предназначен для людей, которые как минимум уже знают основы программирования (на Java или на других 22 языках). Есть и сложные задания для опытных разработчиков.
У CodinGame есть IDE для браузера (как и у CodeGym). С ее помощью можно писать код и компилировать его в том же окне — так вы видите результаты в режиме реального времени. Это не онлайн-курс, а сложные упражнения, связанные с реальной разработкой игр. Сделав упражнение, вы получаете визуальную обратную связь: видите небольшое изменение в игре.
На Codewars можно оттачивать мастерство программирования, соревнуясь с другими разработчиками. Это полезный и интересный сайт для продвинутых Java-программистов. Здесь вы найдете сложные задачи, а не уроки.
Сначала вам дается восьмой кю (уровень мастерства). Добравшись до первого кю, вы достигнете вершины мастерства.
Вывод
Программируйте ежедневно, уделяйте этому много времени. Используйте приведенные выше сайты с упражнениями. Иногда изучайте теорию. Задавайте много вопросов. Начинайте программировать! Даже не сомневайтесь.
Как выучить Java за 5 месяцев и получить свой первый оффер?
Это вообще реально? Стоит ли это делать? Какие шансы найти работу Java разработчиком сейчас, когда идёт война? Обо всём этом будем говорить на вебинаре. Рассмотрим, каких специалистов ищут, что предлагает рынок IT, как быть конкурентным в данных условиях. Что должен знать будущий Java специалист и какие технологии ему нужно упорно учить, чтобы удовлетворять современным требованиям разработчика уровня Intern/Junior?
Рассмотрим всё, начиная от «хочу стать программистом» до первого job-оффера. Также мы расскажем вам истории успеха новичков, которые начали свой путь в профессию с чистого листа полгода назад.
План вебинара:
- Кто такой Java разработчик и стоит ли в 2023 году выбирать эту специальность? Обзор профессии и её спрос на сегодняшний день.
- Обзор стека Java разработчика.
- Насколько хорошо нужно владеть джавой?
- Какие дополнительные технологии следует изучить в зависимости от специализации?
Целевая аудитория:
Данный вебинар будет интересен как новичкам, желающим разобраться в специальности Java Developer, так и тем, кто уже имеет определенную базу знаний по Java и готов к поискам первой работы.
Условия участия: бесплатно. Для получения приглашения на онлайн-трансляцию заполните регистрационную форму.
Покупай подписку с доступом ко всем курсам и сервисам
Библиотека современных IT знаний в удобном формате
Выбирай свой вариант подписки в зависимости от задач, стоящих перед тобой. Но если нужно пройти полное обучение с нуля до уровня специалиста, то лучше выбирать Базовый или Премиум. А для того чтобы изучить 2-3 новые технологии, или повторить знания, готовясь к собеседованию, подойдет Пакет Стартовый.
- Все видеокурсы на 3 месяца
- Тестирование по 10 курсам
- Проверка 5 домашних заданий
- Консультация с тренером 30 мин
- Все видеокурсы на 1 год
- Тестирование по 24 курсам
- Проверка 20 домашних заданий
- Консультация с тренером 120 мин
- Все видеокурсы на 6 месяцев
- Тестирование по 16 курсам
- Проверка 10 домашних заданий
- Консультация с тренером 60 мин
Как выучить Java за 5 месяцев и получить свой первый оффер?


01.01.1960

19:00 — 21:00
Поделитесь материалом в соцсетях!
Рейтинг: 5 . Проголосовало: 2
Вы проголосовали:
Для голосования нужно авторизироватьсяЭто вообще реально? Стоит ли это делать? Какие шансы найти работу Java разработчиком сейчас, когда идёт война? Обо всём этом будем говорить на вебинаре. Рассмотрим, каких специалистов ищут, что предлагает рынок IT, как быть конкурентным в данных условиях. Что должен знать будущий Java специалист и какие технологии ему нужно упорно учить, чтобы удовлетворять современным требованиям разработчика уровня Intern/Junior?
Рассмотрим всё, начиная от «хочу стать программистом» до первого job-оффера. Также мы расскажем вам истории успеха новичков, которые начали свой путь в профессию с чистого листа полгода назад.
План вебинара:
- Кто такой Java разработчик и стоит ли в 2023 году выбирать эту специальность? Обзор профессии и её спрос на сегодняшний день.
- Обзор стека Java разработчика.
- Насколько хорошо нужно владеть джавой?
- Какие дополнительные технологии следует изучить в зависимости от специализации?
Целевая аудитория:
Данный вебинар будет интересен как новичкам, желающим разобраться в специальности Java Developer, так и тем, кто уже имеет определенную базу знаний по Java и готов к поискам первой работы.
Условия участия: бесплатно. Для получения приглашения на онлайн-трансляцию заполните регистрационную форму.
- Вебинары по схожей тематике
- Видеоуроки по схожей тематике
- Статьи по схожей тематике
Java — очень сложно, так говорят… Правда ли это?

Сложен ли Java именно с точки зрения программирования — вот о чем мы будем говорить в этой статье. Ситуация двояка. Постараюсь объяснить.
Java — простой язык

Сам по себе язык Java один из самых простых на рынке:
- Он использует стандартный Си-образный синтаксис — простой и понятный в использовании. Более того, Java создавалась как упрощенная версия языка С++, соответственно было выкинуто очень много лишнего — остались только самые простые и необходимые конструкции.
- Кроме того, язык Java следует принципу 100% обратной совместимости. Любой код, который вы написали 20 лет назад, без проблем скомпилируется на современной Java и будет работать. Поэтому вы спокойно можете учить синтаксис Java 1.2, 1.3, запустить код на современной Java 13, и все будет работать. Выучив этот язык один раз, вам не нужно каждые полгода разбираться в каких-то новых обновлениях. Не нужно забывать ранее полученные знания, так как они будут актуальны и для современного языка. А это очень удобно.
Резюмирую. Язык Java имеет простой синтаксис, он понятен и схож с другими языками программирования.
Но, не все так просто.
Java — это адски сложно
Теперь расскажу, почему Java все же сложна.
Язык Java оказался очень удобен для энтерпрайз компаний. Практически все глобальные системы написаны на Java. Чтобы программисты не писали одно и тоже, все имеющиеся наработки начали собирать и выносить в библиотеки и фреймворки. Со временем фреймворки становились все навороченнее и закрученнее. Сейчас Java-разработчик практически не пишет код без использования фреймворков. Почти каждая строчка современного кода — это обращение к какому-то фреймворку. Одна правильно написанная строка делает сразу огромное количество дел. Это удобно для профессиональных программистов — достаточно написать всего строку, а перед вами уже построился межгалактический бластер.
Да, это удобно, но не для новичков. Новичок, который знает только синтаксис, смотрит на эту строчку, видит, как что-то работает, но понять, почему это работает — не может. Соответственно чтобы разобраться в Java, нужно хорошо знать работу фреймворков, а они в последнее время стали очень сложными.
Вызывать фреймворк просто, кроме того, есть большое количество руководств и ютуб-лекций по использованию фреймворков и связки их друг с другом. По факту разработчик просто собирает то что ему нужно из нужных кубиков, а кубики — это фреймворки.
В чем же сложность Java? Сложность в огромном количестве знаний, которые требуются java-разработчику:
- как правильно построить архитектуру,
- какие фреймворки есть и куда их можно разложить,
- как они устроены в общих чертах,
- как их правильно связать друг с другом,
- какие они накладывают ограничения на вашу программу,
- как фреймворки повлияют на дальнейшее расширение и пр.
Это адское количество знаний!
Вы очень легко входите в язык, выучить его действительно просто. А вот стать мастером в Java — это уже очень сложный челлендж. Вы должны не просто уметь программировать, а понимать, как правильно использовать фреймворки. Как человек, который более 15 лет в java, могу точно сказать — что это совсем не просто. Примерно каждые полгода переходя на новый проект, я сталкивался с ситуацией, что не знаю большую часть используемых на данном проекте фреймворков.
Так что с одной стороны это — очень простой язык, а с другой Java — адски сложный.
Но есть большие бонусы, которые покрывают все эти сложности. Java — самый распространенный язык в мире. Все нужные функции уже написаны кем-то когда-то и вы можете это использовать. И если что-то нельзя сделать на Java, это нельзя сделать вообще. Java— последний оплот, который можно выбрать в том случае, когда задача слишком сложная. Настолько сложная, что вообще никто не верит в возможность ее выполнить. И в этот момент вы просто ощущаете себя владельцем мегапушки, которая победит всех А это не может не доставлять удовольствие.
Если вы хотите стать обладателем это самой мегапушки, приходите учиться на курсы Java.
