Я изучаю программирование и нашел наиболее эффективный способ обучения
Этот текст написан в Сообществе, в нем сохранены авторский стиль и орфография
В этом посте я хочу описать свой, эффективный лично для меня способ изучения различных тем по программированию. После множества экспериментов, пробок разных подходов и методов я, в итоге, пришел к способу, которым пользуюсь уже давно и который подходит не только для программирования, а в целом для изучения чего-либо.
Коротко о себе, меня зовут Руслан, мне 16, с 14 лет занимаюсь программированием, с 15 начал более осознанно продвигаться по части backend-разработки на Java. Сейчас готовлюсь к прохождению собеседования на позицию junior-разработчика и для этого много повторяю теорию и изучаю что-то новое. Хочу поделиться тем, как я это делаю и почему нахожу такой подход простым и в то же время очень эффективным.
Мой способ
Программирование — это знание очень большого объёма информации и умение его применять. Перед изучением любого направления и языка всегда советуют составлять так называемый roadmap, поэтапную дорожную карту к пути становления младшим разработчиком. Сначала мы изучаем базовые вещи про программирование в целом, потом переходим к выбранному языку, дальше к библиотекам, фреймворкам, базам данных и т.д. Это все надо изучать как на теории, так и на практике. Из каждого угла мы слышим совет, что не стоит углубляться в теорию и больше уделять время практике. Действительно, без практики теория бесполезна, но и в практику без теории лезть, по моему мнению, дело очень рискованное и трудное. Можно просто потерять время впустую, пытаясь работать с вещами, не зная, как они устроены.
Так что мой выбор — это баланс между теорией и практикой. Сначала изучаю основную теорию про технологию, не углубляясь в подробности и детали, а потом пытаюсь работать с этим. В случае неудачи снова возвращаюсь к теории.
Теперь про то, как я изучаю теорию, а потом практикуюсь.
Теория
К примеру, возьмем Apache Kafka. Я нашел статью/видео и начал все учить поэтапно. Прочитал про архитектору Kafka, про кластеры, брокеры и топики. Дальше в статье идет уже следующий раздел. Я это замечаю, останавливаюсь и не иду дальше до тех пор, пока не удостоверюсь в том, что точно все правильно понял. Для этого я просто начинаю про себя рассказывать все, что запомнил. Допустим я без проблем рассказал про брокеры, но на топиках понимаю, что начинаю путаться или что что-то забыл, упустил. Возвращаюсь обратно, перечитываю и снова про себя все рассказываю, пока не получится. Перехожу к следующему разделу и та же система. Так, я лучше всего усваиваю информацию.
Многие предпочитают записывать в тетрадку, блокнотик, но мне лично данный способ не сильно зашел. И вот, статья прочитана, каждый раздел в статье был мною много раз пересказан, теперь можно в целом все разделы еще раз прогнать за раз, удостовериться, что все точно хорошо и правильно усвоено. Откуда брать теорию для меня не столь принципиально. По настроению могу открыть видео на YouTube или статью где-нибудь на просторах интернета.
Практика
С высокой вероятностью на видео/в статье информация была подкреплена примерами и кодом. Мне не нравится, к примеру, во время просмотра видео тупо повторять и переписывать код. Я лучше досмотрю видео, удостоверившись, что я все понял, выключу его и начну писать все то же самое только уже сам. Частенько сталкивался с тем, что просто переписываю код, запускаю его, оно работает, я радуюсь жизни и счастливый иду дальше по пути, на деле ничего так и не поняв.
А что собственно писать? Вот я изучил Apache Kafka, но как мне ее применить? Я лично либо придумываю какую-то свою идею, где можно было бы использовать Kafka, либо начинаю исследовать проекты других, смотря, как люди его используют, и могу позаимствовать идею у них, опять же не занимаясь переписыванием их кода. Иногда можно обратиться к ChatGPT, который может предложить действительно интересную практику для изученной технологии.
У кого спросить совета
Основную часть я рассказал, но хотел бы затронуть еще одно, что помогает мне в изучению вообще любой сферы. Когда я начинал изучать программирование, я стал искать и лазить по различным сообществам, телеграмм каналам, сидеть в них и знакомиться с очень интересными людьми, иногда даже уже профессиональными программистами, у которых можно спросить совета, что я часто делал и делаю. Я считаю, что никогда нельзя бояться задавать вопросы и спрашивать советы. У меня в друзьях также много таких же, как я тех, кто только вкатывается в IT, и с которыми мы иногда делаем совместные проекты, обсуждаем различные темы, спрашиваем друг у друга советы и помогаем с проблемами. Весело и полезно.
На этом в целом-то все. Безусловно, каждому свое, для кого-то, возможно, мой подход покажется слабым и не подойдет. Главное, не бояться пробовать и всегда двигаться только вперёд. Спасибо за внимание!