Эллеонора Керри
41 уровень

Эффективное обучение программированию

Пост из группы JavaRush
823628 участников
Обучение программированию с нуля — непростой технологический процесс. Особенно если учишься самостоятельно в сети: ты пытаешься найти оптимальный способ, тратишь время и усилия на поиск адекватной информации, слушаешь-читаешь-смотришь, пытаешься писать первые программы, ошибаешься, не знаешь где именно, ничего не понимаешь, заходишь в тупик… 90% попыток заканчиваются ещё толком не начавшись. Очень часто после таких усилий человек сам себе ставит диагноз «это не моё» и обучение программированию забрасывается.

Причины?

  • Недостаточное количество практики: не в теории должен разбираться программист в первую очередь. В первую очередь программирует программист, обучение такого специалиста должно строится именно на практике и тут хоть кол на голове теши! «Вот пойму, что к чему, а потом сделаю задачу» — это не о программировании!

  • Новичок в силу отсутствия опыта не может отличить важную информацию от второстепенной, часто тонет в деталях или зарывается в сложные темы потому что кто-то умный в интернете сказал, дескать «не будешь уметь программировать алгоритмы сортировки, программистом тебе не быть”. Затем теряется в них и… всё.

  • Отсутствие системного подхода - попытка хватать информацию со всевозможных источников , бесконечное хождение по кругу.

  • Попытки сразу же во всём досконально разобраться прежде, чем начинать программировать.

  • Формальный подход: особо не вникая и не пытаясь решить задачу самостоятельно больше одного раза, люди ищут в интернете чужое решение. На самом деле “списывание” может быть полезно, в обучение основам программирования часто входит разбор чужого кода. Но именно разбор, и именно после того, как человек совершил несколько подходов к проблеме самостоятельно.
И ещё один момент:
  • Потеря мотивации. Только вот это — не причина, а следствие всего вышеперечисленного. Тут-то и происходит сбой. Человек решает, что всё пропало, он зря потратил время и ничего у него не выйдет. Так что не стоит и стараться.

Как продвинуться в обучении программированию?

  1. Найти основной источник информации, проработанный, хорошо структурированный, наполненный только самой нужной информацией и нескучный (это важно!). Следовать этому источнику;

  2. Уметь находить дополнительные источники информации, и пользоваться ими по необходимости. При этом не распыляться;

  3. Постоянно программировать: решать много практических заданий и иметь возможность проверять корректность решений;

  4. Заниматься регулярно, не забрасывать учёбу надолго;

  5. Не пытаться охватить всё сразу, двигаться по циклу, с постепенным наращиванием сложности;

  6. Научиться читать чужой код;

  7. Научиться находить ответы на вопросы в интернете, но не злоупотреблять этим;

  8. Общаться с собратьями по будущему счастью: желательно, чтобы рядом был ещё хотя бы один студент - программист, обучение онлайн без общения идёт гораздо менее эффективно;

  9. Общаться с более опытными программистами;

  10. Не сдаваться!
“Ха, легко сказать!” — скажете вы. И добавите: “Спасибо, Кэп!”. Самые простые советы обычно сложнее всего реализовать. Но… вы читаете эти строки и уже попали на сайт JavaRush. А сайт JavaRush содержит одноименный курс, который именно по этим канонам и построен! Давайте в этом убедимся.

JavaRush — нестандартный подход к обучению

  • JavaRush — это отлично структурированный курс по языку Java. Он состоит из коротких лекций, представленных в форме занимательных диалогов, которые перемежаются многочисленными практическими заданиями. Курс вы проходите от имени персонажа, которого нужно “прокачать” с 0-го по 40-й уровень, как в игре жанра РПГ. Решаете задачу — получаете баллы, которые можно потратить на открытие следующей лекции.

    Но на самом деле качается не персонаж, а ваше умение программировать. Курс содержит всю необходимую информацию по Java Core (ядро языка Java, именно его должен досконально знать будущий Java Junior Developer) и немного больше. На этом месте можно поставить галочку напротив первого пункта из списка выше.


  • На JavaRush есть специальные лекции, в которых методисты курса рекомендуют те или иные книги, видеоролики и прочие источники информации. Кроме того, администрация курса, а также продвинутые студенты часто пишут статьи с рекомендациями, которые призваны облегчить понимание сложных тем. Это закрывает пункт 2.

  • Чтобы стать программистом, нужно программировать. Правило простейшее, да и звучит предельно логично. Тем не менее, на удивление часто забывают, что обучение на программиста — это в первую очередь практика написания кода, а затем уже — всё остальное.

    Создатели JavaRush это поняли давно, так что практика лежит в самой основе курса. В нём — 1200 задач! Это тот самый ценный опыт программирования, которого так не хватает всем тем, кто пытается стать разработчиком ПО.

    Однако самих по себе задач мало, их ещё нужно решить и понять, что решение правильное.

    Для этого на JavaRush реализована система мгновенной автоматической проверки решений. Вы решаете задачу, нажимаете на одну кнопку — и сразу же получаете результат (правильно или неправильно решена задача). Более того, умная система рекомендаций подскажет, в чём именно вы ошиблись (если вы ошиблись, разумеется).

Также помимо условия задачи вы получите требования к ней. Требования — это более подробное условие, в котором пошагово расписано, что именно должна делать ваша будущая программа. Ставьте галочку напротив третьего пункта.
  • Практические задания на JavaRush

    • Часть задач охватывает теоретический материал идущей перед ней лекции.
    • Ещё одна часть рассчитана на повторение ранее пройденной теории (на предыдущих уровнях).
    • Третьи задачи — это “задачи из будущего”, они даются по материалам следующего одного-двух-трех уровней. Да-да, вам не показалось. Это сделано намеренно. Хотите решить задачу сейчас, но вам не хватает знаний? Гуглите! Это чрезвычайно полезный навык для программиста. Ну а если вы хотите двигаться последовательно, просто отложите задачу и вернитесь к ней через пару уровней, когда дойдёте до необходимой теории. На этом месте можно поставить галочки напротив пунктов 5 и 7.
    • Бонусные задачи. Эти задания повышенной сложности для самостоятельного обучения и на развитие алгоритмического мышления. Ещё одна галочка к пункту 7!
    • Мини-проекты. Это задачи, разбитые на несколько подзадач, в результате постепенного решения которых вы создадите относительно сложные и большие программы. Например, игру “Сокобан” или онлайн-чат. Такие задачи появятся примерно в середине курса.
    • Набор кода — задания для начинающих. Иногда будущему программисту нужно просто набить руку и почувствовать код. Для этого вы просто “списываете” с образца.
    • Разбор чужого кода и поиск ошибок. Ну, вы поняли. Такие задания тоже есть, и тут можно поставить плюс напротив пункта 6.
    • Видеоролики. Иногда полезно переключиться на другую деятельность. На JavaRush такой деятельностью служит просмотр видеороликов об айтишниках.
  • Помощь в решении задач

    Как мы уже упоминали выше, обучение программированию онлайн не должно напоминать одиночное плавание на плоту среди океана. Вам нужно общаться. Для этого на JavaRush в первую очередь есть раздел “Помощь”. Если вы уже очень долго застряли на какой-то задаче из курса или не можете понять сложную тему, задавайте вопрос в специальном разделе. Вам обязательно поможет кто-то из студентов, разработчиков или администрации ресурса. Кроме того, у нас есть раздел “Группы”, где можно общаться с другими студентами курса. А ещё, когда почувствуете в себе силы, будет очень полезно заходить в раздел “помощь” для того, чтобы помочь кому-то с учёбой. Тут вам придётся разбираться в чужом коде. Ставим галочку напротив пунктов 8 и 9 и ещё одну напротив 6!


  • В курс JavaRush вплетено большое количество мотивационных лекций, а ещё — наши выпускники, которые уже работают программистами, иногда присылают нам свои истории успеха. Судя по комментариям под этими историями, они действительно мотивируют людей не забрасывать обучение. ТУт можно поставить галочку напротив пункта 10.
Итак, мы смогли поставить галочки напротив всех пунктов (местами даже по нескольку раз). “Неправда, четвёртый пункт пока открыт”, — заметит внимательный читатель. Так и есть! Однако создатели курса JavaRush приложили все усилия, чтобы вы смогли поставить галочку и под этим пунктом. Дело за вами! И… удачи в этом непростом деле — изучении программирования!
Комментарии (2)
  • популярные
  • новые
  • старые
Для того, что бы оставить комментарий вы должны авторизироваться
Алексей 15 уровень
13 апреля, 18:31
К 2030 году до 800 млн человек может потерять работу из-за роботов и автоматизации. По прогнозам, уже к этому сентябрю работы лишатся 2%, а к 2020 навыки 50%-70% индийских программистов станут совершенно неактуальными на рынке труда, при этом большую часть смогут легко заменить алгоритмы. И чем дальше, тем больше таких прогнозов, ты только будешь нарабатывать опыт, а тебе уже кричат, ты не нужен. Так стоит ли?
Сергеев Виктор 40 уровень, Санкт-Петербург
13 апреля, 18:51
кто-то должен писать эти алгоритмы, создавать и обслуживать роботов, разворачивать автоматизацию и так же поддерживать её. На самом деле если посмотреть на уже сделанный рывок, то вы увидите насколько доступнее стало программирование для обычного человека. В то же время востребованность в специалистах не падает, а наоборот растет. Очень много вещей уже автоматизированно. Сравните java с тем же ассемблером, очень много автоматизированно, но разьве java разработчики уже не требуются? Автоматизироваться могут шаблоны кода, а вот писать новый код, тем более поддерживать старый или создавать новый на костылях старого. Это все таки пока творческий процесс.