Skip to content

Latest commit

 

History

History
168 lines (131 loc) · 11.2 KB

video3.md

File metadata and controls

168 lines (131 loc) · 11.2 KB

Рекомендуемые подходы обучения на курсе

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


В 1980 году National Training Laboratories в США провели исследования эффективности разных способов обучения.
Выяснилось, что у лекций и чтения книг крайне низкая эффективность — всего 5-10%. Дальше идет просмотр видео лекций и прослушивание аудио.

Максимальная эффективность в 90% — это обучение людьми других людей — менторинг и немедленное применение полученных знаний на практике.

Я хочу подчеркнуть этот момент.

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

На нашем курсе мы:

  • обсуждаем занятия с коллегами и преподавателями в Slack - эффективность 50%
  • выполняем практические домашние задания по каждой пройденной теме - 75%
  • помогаем коллегам и разрабатываем собственный выпускной проект - 90%

О проверке домашних заданий

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

Это самый эффективный способ научиться программировать!

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

В ревью укажут именно твои ошибки в стиле, структурах данных, алгоритмах и кодировании. До вечера вторника участники шлют ссылку на свой GitHub-репозиторий с домашним заданием занятия, проверка делается ассистентами, результат пишется в Slack. Получается эффективно и оперативно.

После проверки можно исправить замечания и пройти ее еще раз.

В конце стажировки делается ревью вашего выпускного проекта.

Участие на стажировке: ожидания и реальность

Давайте кратко обсудим, чем курс TopJava является и чем он не является, что следует от него ожидать и чего не следует.

1-й тип ложного представления о стажировке:

Я увижу, как с нуля строится web-приложение A с использованием технологий B, просмотрю видео по темам, этого будет достаточно

Почему такой подход не верный: TopJava - это стажировка, поэтому НЕ рассчитывайте пройти ее на диване с пакетом поп-корна. Тебе придется на ней РАБОТАТЬ (выполнять ДЗ, самостоятельно решать какие-то задачи, читать логи, дебажить, ходить на StackOverflow и даже думать об этом, засыпая)

2-й тип ложного представления о стажировке:

Меня научат шаблонам работы с технологией А, и я смогу их применять в любой ситуации

Почему это тоже не вполне верный подход: Используемые на стажировке технологии представляют собой инструменты, которые позволяет сделать что-то проще. Мы поделимся практикой их использования, неочевидными особенностями и т. п., покажем "грабли", на которые вы рано или поздно наступите. Нет гарантии, что, устроившись на работу, вы увидите точно такие же подходы. Все проекты и команды индивидуальны: используются различные инструменты и различные решения. Столкновение с технологиями, с которыми ты ранее не был знаком, - это нормальная часть жизни любого программиста. Нужно быть к этому готовым.

Хорошее представление о решении проблем дает поиск на StackOverflow, где почти на любую проблему дается большое количество вариантов решения. Поиск решений и выбор лучшего - это основная работа Java-разработчика, и мы максимально постараемся этому научить: каждый раз в конкретной ситуации вы должны будете САМИ думать, что применять и как. Выполняя домашние задания, вы должны приложить все усилия, чтобы самостоятельно найти решение. Далее в начале следующего занятия вы также посмотрите разбор решения, подготовленного Григорием Кислиным.

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

я хочу проходить стажировку с проверкой ДЗ, чтобы мне рассказали, как нужно правильно выполнять задания

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


Любое знание стоит воспринимать как подобие семантического дерева: убедитесь в том, что понимаете фундаментальные принципы, то есть ствол и крупные ветки, прежде чем лезть в мелкие листья-детали. Иначе последним не на чем будет держаться — Илон Маск

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

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


Основные навыки программиста, которые необходимо развить на курсе

Давайте перечислим набор навыков, которые вам необходимо развивать в ходе курса и которые необходимы любому программисту:

  • умение и привычка искать информацию, чтобы иметь больший выбор из доступных вариантов технологий и подходов к решению задачи, умение пользоваться StackOverflow;
  • умение пользоваться дебаггером в Intellij Idea;
  • умение пользоваться DevTools в браузере;
  • определенный кругозор и опыт для того, чтобы придумывать поисковые запросы.