Практический и теоретический подход в изучении Java
Любой учебный процесс состоит из практики и теории. В программировании все точно так же – два подхода: практический и теоретический. У обоих есть свои плюсы и минусы. В этом посте вы узнаете больше о каждом из них и решите, какой подход лучше использовать для изучения Java.
Итак, приступим.
Теоретический подход
Само название говорит о том, что вы начнете с теории в этом подходе, который предполагает изучение Java с самых основ, начиная с довольно сложных тем, таких как JVM и работа с компилятором, а затем перейдем к синтаксису Java (переменные в циклы, методы, классы, концепции ООП и т. д.). Этот восходящий подход часто используется в официальных курсах программирования, специально предназначенных для колледжей или других учебных заведений. Идея состоит в том, чтобы дать вам прочную основу для основных навыков программирования, необходимых для того, чтобы начать создавать вещи и практиковаться в настоящих проектах в будущем.
Преимущества
- Когда у вас есть четкое понимание основных понятий, у вас, скорее всего, не будет пробелов в знаниях при изучении более сложных тем. Один из моих друзей, который использовал этот подход в обучении, перед каждым последующим шагом прочитал массу книг по предыдущим темам, чтобы ничего не упустить и получить полное представление о каждой теме.
- Хотя время от самого начала до вашего первого реализованного проекта обычно занимает время, в долгосрочной перспективе ваши знания в конечном итоге ускорят ваш процесс в будущем. Кроме того, это поможет вам более внимательно относиться к деталям во время кодирования, чтобы избежать всевозможных ошибок.
Недостатки
- Студентам трудно понять, как связаны между собой то, что они узнали. В течение дня не возникает проблем с написанием функций, пока ученики не начнут создавать программное обеспечение, выходящее за рамки отдельных функций или классов. Здесь начинаются основные проблемы.
- Новичкам сложно понять, как применить на практике все полученные знания. Без немедленного применения их на практике огромное количество теории может просто пройти мимо, не задерживаясь в вашей голове. Это еще одно доказательство того, что программирование – это больше практика – многие вещи трудно объяснить теоретически. То же, что и с плаванием – не поймешь, как плавать, пока не попробуешь.
- Теоретический подход медленный. Вам может потребоваться целая вечность, чтобы овладеть всеми необходимыми навыками, и я все еще умалчиваю о том, что концепции ООП иногда меняются во время вашего обучения, поэтому вам нужно начинать все сначала. Когда вам приходится потратить месяцы или даже годы на теорию, не создавая за это время каких-либо интересных вещей, вам становится скучно, вы теряете мотивацию и с большей вероятностью откажетесь от нее.
Практический подход
Основная идея практического подхода – учиться, выполняя или, другими словами, разрабатывая отдельные части реальных проектов. Многие независимые ученики используют практический подход, поэтому они начинают создавать вещи, будь то игры или интерактивные веб-страницы, сразу же с того момента, как они начинают изучать программирование. Здесь могут помочь учебники, опубликованные на YouTube видео – следуя инструкциям, вы можете в конечном итоге создать что-то значимое.
Преимущества
- Практический подход позволяет создавать реальные программы в мгновение ока. Чем быстрее вы можете что-то создать, тем больше вы воодушевляетесь.
- Само кодирование позволяет узнать о различных компонентах на практике, они не обязательно будут написаны в книгах или упомянуты в курсах. По мере того, как вы узнаете о них, вы получаете четкое представление о том, что вы хотите изучать дальше, а что нет, что вам интересно, а что нет. Исходя из этого, вы делаете свой осознанный выбор и продолжаете учиться, следуя своему выбору.
Недостатки
- Практический подход не акцентирует внимание на основах, поэтому студенты, которые стремятся создать что-то как можно скорее, часто пропускают основы. По этой причине они в конечном итоге создают свои собственные проекты, не имея четкого представления о том, как работает их код. Еще один недостаток практического подхода заключается в том, что во многих учебных пособиях не хватает подробностей – учащиеся должны сами заполнять пробелы, но они не могут этого сделать. Небольшое отклонение от инструкций может привести к сбою проекта и трудностям в диагностике проблемы.
- Не приобретая фундаментальных знаний, учащиеся теряют общую картину и не понимают, что они на самом деле делают.
Кто из них победитель?
Итак, вы дошли до этого абзаца, чтобы узнать, какой подход стоит выбрать. Но дело в том, что один подход не исключает другого. Другими словами, здесь нет чисто практического или теоретического подхода – они считаются отклоненными в ту или иную сторону. Но по-прежнему важно комбинировать их оба при обучении кодированию и смешивать их в правильной пропорции. Учитывая тот факт, что программирование – это практическая деятельность, я рекомендую уделять практике не более 80%, тогда как теория займет 20%.
Если вы хотите работать над реальными проектами в будущем, нет смысла изучать только концепции или теорию Java. Вам нужны базовые навыки программирования, чтобы начать создавать вещи, так же как вам нужна мотивация для продолжения обучения, которую можно получить с чувством завершенности. Помимо этого, фундаментальные навыки помогут вам понять и отладить код, будь то ваш собственный код или код, написанный другими программистами. Прочный фундамент важных навыков также поможет вам программировать в нестандартных ситуациях без необходимости читать учебное пособие.
Комбинируя подходы снизу вверх и сверху вниз, вы всегда можете переключаться между ними. Если вы чувствуете, что не понимаете, что делает ваш код, вернитесь к основам и восполните пробелы в своих знаниях. Если вам наскучила теория, попробуйте создать что-нибудь маленькое, будь то простая веб-страница или игра. Применение полученных знаний на практике и отработка усвоенных концепций дадут вам чувство завершенности.
Я считаю, что каждый студент, который начинает изучать программирование, должен придерживаться подхода 80/20. Знания легко изучать, но навыки требуют повторной практики, чтобы вы могли использовать их в реальных проектах.
Курсы Java с хорошим балансом между теорией и практикой
Итак, учитывая важность сочетания теории и практики, я решил дать вам список источников, где вы можете почерпнуть теорию, и источников, где вы можете практиковаться. Чтобы улучшить свои навыки, вам понадобятся и то, и другое. Начните с курсов, посвященных основам языка Java, а затем переходите к практическим программам, чтобы применить все, что вы узнаете, на практике.
Источники для получения практического опыта
CodeGym
Я считаю CodeGym полезным для начинающих программистов, которые хотят больше сосредоточиться на обучении сверху вниз. Это курс на Java, который на 80% основан на практике. Он содержит 1200 практических задач, поэтому вам придется написать много кода, что на самом деле хорошо, чтобы применить полученные ранее знания на практике. В курсе есть автоматический валидатор (validator) вашего кода и советы по решению проблем. Но не отчаивайтесь от такой большой практической работы в процессе обучения – компания внедряет новейшие методы обучения, включая визуализацию, рассказывание историй и геймификацию (это внедрение игровых форм в неигровой контекст), чтобы вы были в восторге от обучения.
GeeksforGeeks
GeeksforGeeks – это обучающая платформа, на которой вы можете улучшить свои навыки работы с основными языками программирования, такими как C, C ++, Java и Python. Здесь вы можете работать в интерактивной среде IDE, которая позволяет манипулировать кодом и сразу же тестировать его. Помимо этого, вы сможете получить хорошо написанные, продуманные и хорошо объясненные решения для выбранных вопросов и подготовиться к собеседованию с рекрутерами или владельцами компаний, чтобы в конечном итоге получить работу программиста.
Codecademy
Codecademy – это новое слово в изучении кода. Компания изобрела отличную систему, которая позволяет выбирать все, чему вы хотите научиться, от создания веб-сайтов до анализа данных. Этот курс разработан, чтобы познакомить вас с различными технологиями, включая Java, HTML, CSS и JavaScript. Если вы не знаете, с чего начать, вам будет предложено пройти тест, а затем вам укажут правильное направление. Помимо создания интерактивных веб-страниц, вы также сможете приобрести мастерство в области серверной разработки, чтобы стать специалистом по полному стеку.
Источники для получения теоретических знаний
Основы Java от Pluralsight
Этот теоретический курс посвящен основам Java, чтобы дать начинающим прочную основу, прежде чем они смогут перейти к более продвинутым концепциям. Этот вводный курс научит вас эффективно работать с Java и научит вас осваивать поток управления, объектную ориентацию и коллекции, а также синтаксис и потоки в Java. Итак, вы получите навыки, необходимые для создания собственных приложений Java.
Полный мастер-класс по Java
Этот курс от Udemy идеально подходит, если вы полный новичок в программировании на Java, если вы знаете другие языки и хотите изучать Java, или если вы хотите получить работу Java-разработчика. Он научит вас с самых основ и перейдет к более сложным темам, таким как лямбда-выражениям, многопоточность (принцип построения программы), обобщению и другое. Структура соответствует пошаговому методу обучения, поэтому процесс обучения будет плавным. По завершении курса вы будете готовы читать и писать программу на Java и чувствовать себя уверенно на любом собеседовании.
Заключение
Посмотрим правде в глаза: жизнь – это бесконечный процесс обучения. Программирование – не исключение. В кодировании практически невозможно понять все – всегда есть чему поучиться, хотя бы из-за высокоразвитой среды. В программировании, как и во многих других сферах, есть два подхода: теоретический и практический. Конечно, вы можете выбрать один из них, исходя из ваших целей и предыдущего опыта. Тем не менее, я бы рекомендовал комбинировать их во время тренировок и придерживаться оптимальной пропорции 20/80, где теория будет занимать 20% вашего времени, а практика – 80%.