Как закрепить изучение Java: история одного репетитора

О мальчике

Это было более десяти лет назад… Я решил стать настоящим мальчиком-программистом. Я искал язык, который был «моим», пробовал некоторые из них.

Однажды я попробовал Java и влюбился в нее! Позже я постоянно кодировал как сумасшедший, и мои навыки разработчика быстро росли. Я учился от 10 до 18 часов каждый чертов день…

Что ж, я устроилась на первую работу, потом на вторую… и не прекращала интенсивного обучения. Как следствие, я довольно быстро превратился в старшего разработчика Java. Я достиг своей цели.

Я был счастлив, но… не полностью. Казалось, что я упустил часть головоломки самореализации.

Я искал его, и вы знаете, что. Я нашел его в чашке чая моих родителей. Обучение! Теперь я предполагаю, что унаследовал ген учителя.

Скажем, индустрии нужны новые программисты, а новым программистам нужны учителя среди профессиональных разработчиков. Так я стал им. Репетитор по Java. И, должен признаться, я получаю удовольствие от обучения не меньше, чем от хорошего кодинга. Или даже больше.

С тех пор прошло несколько лет. За это время я старательно собирал распространенные ошибки или, вернее, «неправильные шаги» моих учеников и других людей, которые учились программировать. Я имею в виду не ошибки в коде, а неправильные концепции обучения.

Это был действительно полезный опыт, который дал мне больше понимания того, как избежать и исправить ошибки.

Я также нашел много полезных интернет-ресурсов для своих студентов. Конечно, они подходят всем, кто серьезно относится к изучению Java. В этой статье я собираюсь упомянуть эти ресурсы. Но в первую очередь эта статья о том, как избежать распространенных ошибок в обучении.

Итак, давайте попробуем говорить по одному.

Распространенные ошибки и как с ними бороться

51fb5a6946f45.jpeg

1. Слишком много теории с первых шагов

Итак, вы начали изучать язык программирования.

Что вы должны сделать в первую очередь? Много читать, а потом писать программу? Не за что, товарищи. Почитайте немного, а потом кодируйте, кодируйте и еще раз кодируйте!

Вспомните свой детский сад или начальную школу. Урок рисования… Вы тогда слушали или читали лекцию о том, как рисовать? Я почти уверен, что ответ «нет». Ты и другие дети просто взяли свои мелки и… рисовали. В лучшем случае ваш учитель может показать вам, как держать карандаш, или рассказать что-нибудь о том, что «красное и синее — это фиолетовое». Или вы участвовали в спектакле, играя Огурец или Брокколи… Я не думаю, что ваш учитель драмы объяснял вам тогда систему Станиславского…

Та же история с программированием. ПРОСТО НАЧНИ. КОДИРОВАНИЕ. Теория важна. Но позже.

2. Попытка получить все сразу

Ты прав. Этот абзац снова о «вредной теории». Некоторые студенты так глубоко погружаются в него, пытаясь понять каждое слово в System.out.println в своем первом задании. Но они просто не могут сдвинуться с места. Всему свое время, друзья мои. Лучший способ овладеть теорией Java — изучать ее циклически, постепенно увеличивая сложность. Через несколько месяцев вы легко разберетесь с темой, которая так пугает сегодняшнего Вас.

Я рекомендую начать читать книги/документацию после уверенного изучения основ Java Core. В этом случае они пойдут как художественные книги.

3. Недостаточно практических заданий

58d01e4da34427555ea3b828731c3123.jpg

Я настаиваю на том, что на первых этапах вашего пути разработчика вам нужно научиться программировать.

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

Конечно, вам нужно. Хорошее соотношение: 1 сложная задача на 10–20 простых задач. Где брать задания? Я собираюсь рассказать вам позже.

4. Зацикленность на сложных задачах на века

Некоторые ученики просто не знают, как бросить задание, которое они не могут решить. Мой совет — решить сейчас десяток других задач, а после вернуться к своей неразрешимой. Но если вы действительно ДЕЙСТВИТЕЛЬНО хотите получить решение прямо сейчас… см. 5-й абзац.

5. Неумение задавать вопросы

Есть студенты, которые не хотят ничего спрашивать. Они боятся, что их вопрос глупый и какой-нибудь неизвестный опытный программист их затроллит. И есть другие, которые задают вопросы в «Эй, ребята! Здесь что-то не так!’ стиль.

Итак, что-то пошло не так, ну что делать? Задайте вопрос! Спросите своего наставника, если он у вас есть, или форумы, такие как Javaranch или stackoverflow.

Как сформулировать вопрос? Обязательно дайте конкретное описание проблемы и покажите свой код. Затем опишите последовательность ваших манипуляций с кодом, ваши попытки исправить это и результаты. Вы получите помощь, я обещаю. Каждый программист был в вашей ситуации. Поверьте, каждый.

6. Самоучки: невнимание к актуальным ошибкам в коде

Во время самообучения очень сложно понять, насколько хорошо работает ваш код. А если на каких-то данных он дает идеальный результат, а вы что-то не учли? Если у вас есть наставник, у которого есть время все проверить, это просто прекрасно. Что, если нет? Научитесь задавать себе вопрос «а что, если» и протестируйте программу на разных данных. В будущем этот навык поможет вам научиться писать модульные тесты.

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

7. Отладка кода? Извините, ребята, это не для меня!

Это для тебя, мой дорогой студент-разработчик. Конец истории. Отладка в современных IDE очень проста. Научитесь делать это один раз, и вы получите жемчужину навыка для обучения и будущей работы! Начинайте отлаживать не позднее окончания первого месяца обучения. Или даже быстрее.

8. Обучение ради обучения

Пока вы учитесь программировать, помните: это не просто для того, чтобы сдать тест и очистить мозг после него. Ну и за прохождение испытания тоже, но в первую очередь за свое будущее. Так что расслабьтесь и… приготовьтесь к бесконечному поглощению информации и еще большему бесконечному кодированию.

9. Начните писать код, прежде чем думать о решении

Как этого избежать? Попробуй старую добрую ручку и бумагу, мой юный падаван. Если вы столкнулись с задачей и не нашли решения сразу, прежде чем приступать к коду, подумайте, что именно вы собираетесь делать. Вы программируете не только во время написания кода, но и в большей степени при разработке решения. Возьмите ручку и бумагу и напишите примерный алгоритм. Кстати, некоторые компании предлагают абитуриентам ребусы на бумаге.

10. Боязнь экспериментов

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

А. решить проблему проверенным способом, проверить его работоспособность.

Б. попытаться решить ту же проблему по-новому. Вы не тратите время зря, считайте, что решаете очередную задачу. Основная концепция: не бойтесь, у вас уже есть правильное решение! Также рекомендую возвращаться к некоторым заданиям после прохождения нового материала и решать их, используя свои новые знания.

11. Потеря мотивации из-за трудностей

Это очень характерно для студентов-самоучек или тех ребят, которые учатся в группе и отстают, потому что усваивают все немного медленнее.

Что делать? Поймите, что программирование — это не ракетостроение.

Почти каждый может это сделать, если приложит достаточно усилий.

Вы думаете, что не можете? Скорее всего, вы проверяете это слишком рано. В конце концов, зайдите в интернет, там тысячи историй тех, кто сразу не смог достичь цели. Среди этих людей вы встретите много программистов.

Как вы уже поняли, я апологет практического обучения программированию. Соответственно, я всегда советую всем своим постоянным ученикам, или тем, кто берет у меня несколько занятий, или особенно тем, кто учится в Интернете самостоятельно, использовать как можно больше ресурсов с задачами по Java-кодированию. За последние два года я нашел несколько замечательных сайтов. Они здесь.

CodeGym. Однажды я нашел CodeGym. «Вот оно, — подумал я, — это курс, о котором я мечтал».
1. условия.png

Этот курс Java Core на 80% основан на практике. Это действительно полезно для студентов, изучающих Java, от новичков до уверенного выше среднего. Лучшая особенность JavaRush — это система практики. На сайте полно заданий для улучшения навыков каждый день. Думаю, в нем около 1000 задач для разных уровней.

Вы можете использовать браузер CodeGym IDE для их решения или плагин для IntelliJ IDEA, самой популярной Java IDE на данный момент. Умная система проверки проверяет ваш код и дает рекомендации, если что-то пойдет не так. Это очень важно для самостоятельных студентов, например, для студентов с наставником, потому что ни один дышащий не может правильно проверить 10 программ 20 студентов в день. Однако система проверки может это сделать.

CodeGym разделен на 40 уровней. Каждый уровень включает около 15–30 заданий по кодированию, 10–20 лекций по Java и мотивационные статьи для поднятия настроения студентов. Итак, вы проходите курс уровень за уровнем, решаете свои задачи — это своего рода игра, так что вам никогда не будет скучно, я думаю. И последнее: лекции здесь веселые и полные юмора. Мне понравилось их читать.

CodinGame. Решение CodinGame tasks — действительно хороший способ улучшить свои навыки программирования. Этот сайт предназначен для людей, которые уже знают хотя бы основы языка программирования (Java и еще 22). У него также есть некоторые серьезные проблемы для опытных разработчиков.

кодирование.png

CodinGame имеет браузерную IDE (а также CodeGym). Он позволяет кодировать и компилировать в одном окне, и вы можете видеть результат — игра меняется в режиме реального времени. Это не онлайн-курс, а сложные упражнения, связанные с реальными играми. После их решения вы получаете визуальную обратную связь, небольшое изменение в этой игре.

Кодовые войны где разработчики достигают мастерства кода через вызов. Так что это хороший сайт для студентов, изучающих Java от среднего до продвинутого уровня. Это действительно приятно. Здесь вы найдете сложные задачи, а не лекции.

Кодовые войны.png

Во-первых, у вас есть кю 8 (ранг), и вы пытаетесь улучшить его до кю 1 (самый высокий ранг). Тренируйтесь ката в додзё и достигните своего наивысшего потенциала.

Выводы
Начинай кодить! Не стесняйтесь. Много кода. Кодируйте каждый день. Используйте коллекции задач с проверкой. Иногда читаю теорию. Задайте несколько вопросов. Код. Код. Код.

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *