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

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

Первоначальное беспокойство по поводу оценок

«Если вы получите оценку« Еще нет »более 6 раз по всем оценкам, вас могут попросить выйти из программы». - Правила оценки

Мое восприятие оценок на собеседовании изменилось с того дня, как я начал курс подготовки. Говоря об оценках, я сейчас более расслаблен. Фактически, в последние несколько месяцев я очень беспокоился, когда слышал об опыте других студентов при проведении оценок. Чтение о честном опыте студентов и особенно об оценках и о том, как они готовились к ним, заставило меня немного нервничать, когда я, наконец, решил присоединиться к LS.

Хотя само прохождение курса 101 не было слишком сложным, мне нужно было многое понять, когда я наконец добрался до страницы «Правила оценки» на 109. В частности, приведенные ниже рекомендации показались мне немного неприятными. вначале:

  • 90% владения недостаточно
  • любая оценка ниже A- не является автоматической сдачей
  • Д вас могут попросить покинуть программу, если вы не сдали экзамен после трех пересдач

По правде говоря, эти правила не так страшны, как звучат, эти правила существуют, чтобы вы могли более серьезно относиться к обучению и практике. Я помню, как мне приходилось думать о том, как я могу справиться с оценками, чтобы уменьшить свое первоначальное беспокойство. Для этого я тратил 4 часа в день на учебу и просыпался в 7 утра, чтобы практиковаться с обычным учеником, и еженедельно посещал 109 учебных групп, проводимых Элизабет (продвинутый студент) или Далтоном (TA). Я переписывал заметки, практиковался в объяснении кода словами и вслух. Я также практиковался в Codewars (7 кю-6 кю) в качестве дополнительных упражнений перед прохождением теста.

Интервью Оценка 109 Опыт

Предвкушать собеседование и сидеть на нем - это, пожалуй, одно из самых нервных переживаний. Я помню, как проснулся в 6:30 утра в день прохождения собеседования, от кошмара опоздания и неподготовленности к собеседованию. Я решил, что у меня еще есть время, чтобы в последнюю минуту разогреться на учебном занятии Далтона, и я это сделал. По иронии судьбы он также мой 109 интервьюер.

10 утра было моим тестом на собеседовании 109. Первый вопрос, заданный мне, был простым, и, возможно, я не слишком много думал и продолжил свое решение, я забыл реорганизовать свой код. Интервьюер указал, что я оставил ненужное присвоение переменной, что меня смущает. В остальном первый вопрос был довольно простым.

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

Прежде чем я смог перевести дух и подготовиться к третьему, возможно, самому сложному вопросу, интервьюер объявил, что интервью окончено. Нет третьего вопроса? Я рад! Интервью длилось всего 25 минут, включая получение инструкций, написание и объяснение моего решения, получение комментариев и предоставление отзывов.

В тот же день в 15:00 я получил свою последнюю оценку «пятерка». Крису понравилось, что я потратил много времени на изучение проблемы, тестирование крайних случаев и задал уточняющие вопросы. Он также чувствовал, что я никогда не выходил из-под контроля, несмотря на некоторые незначительные ошибки. Видя это, я знаю, что моя тяжелая подготовительная работа окупилась.

Интервью Оценка 129 Опыт

Достаточно практики в формулировании основных концепций объектно-ориентированного программирования, и вы будете готовы к тесту на собеседовании. Это действительно так просто!

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

Приступая к тесту на собеседовании 129, я был вполне уверен, что достаточно потренировался, чтобы хорошо объяснить любые концепции объектно-ориентированного программирования. И действительно, первая часть теста прошла, как и ожидалось, и прошла без особых усилий.

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

Мне потребовались паузы и несколько попыток, прежде чем я наконец заставил это работать. С другой стороны, мое решение показалось мне странным. Тем не менее интервьюер подтвердил, что я успешно решил ее. И вскоре после этого интервьюер объявил, что интервью окончено, на отметке 25 минут.

В конце концов, я получил оценку 129, но это было близко. Я понял, что на этот раз во время собеседования был намного более взволнован, и на мгновение подумал про себя: «Вполне вероятно, что я застрял бы и мне пришлось бы снова сдавать тест!» Урок здесь в том, что независимо от того, насколько уверенно вы идете на экзамен, вам обязательно столкнутся неожиданные проблемы. Будьте готовы разобраться с такими случаями под давлением.

Общие ожидания от собеседований

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

Вы будете вынуждены работать под давлением

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

Ожидается, что вы разберете проблему

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

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

Вы будете иметь дело с ошибками, которых не совершали раньше

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

Поэтому, вероятно, было бы хорошо научиться исправлять ошибки на более раннем этапе. Один из способов, который я нашел чрезвычайно полезным, - это сделать шаг назад и вывести некоторые значения. Возможно, вместо того, чтобы запускать все тестовые примеры, вы запустите только один. Или попробуйте поместить в код несколько p something для вывода некоторых значений. Такие простые действия могут помочь вам увидеть, где произошел сбой в коде, и выяснить, почему некоторые значения не возвращаются так, как вы ожидали.

Системный подход

LS всегда говорит о «систематическом подходе». Но как это выглядит и как это сделать?

Систематический подход к решению проблем означает, что у вас есть общий рабочий процесс, который вам удобен, и у вас есть план действий на случай, если что-то пойдет не так (ваш код выйдет из строя или вы застрянете). Как правило, вы знаете где искать и имеете общее представление о том, как их исправить.

Например, при просмотре хэша с вложенными хешами вы застряли, не зная, как получить доступ к этим значениям во вложенных хэшах:

computers = {
  dell1: { name: 'Dell A', price: 100 },
  hp1:   { name: 'HP B',   price: 200 },
  asus1: { name: 'Asus C', price: 300 },
  #...
} # Example of nested hashes
computers.select do |computer, hsh|
  # stuck: how can I access the price value within the nested hash?
end

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

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

  • Написание псевдокода (или произнесение вслух)
  • Играем с irb
  • Тестирование крайних случаев
  • Решение проблемы с irb
  • Вывод каждой строчки кода
  • Задавая себе вопросы
  • Задавая интервьюеру уточняющие вопросы
  • Сделаем шаг назад, чтобы выяснить, где ломается код

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

Использование irb часто бывает полезным в ситуациях, когда вы работаете в напряжении. Понимание решений можно получить, поиграв в irb с некоторыми методами и расчетами, пытаясь при этом получить некоторые ожидаемые возвращаемые значения. Я не буду вдаваться в технические подробности здесь, но работа в irb упрощает выработку логического подхода и помогает выявить ошибки, которые вы, возможно, не заметили.

Кроме того, уточняющие вопросы, такие как «будет ли ввод пустым массивом», «требует ли вопрос, чтобы я выполнял X» или «разрешено ли мне изменить строки с X на Y в коде», дает более ясное представление о том, как подойти к проблеме. более эффективно. Это также поможет вам лучше контролировать ситуацию. Все это поможет вам действовать более систематично в случае неожиданной проблемы, возникающей во время собеседования.

Резюме

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

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

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