Автор оригинала: FreeCodeCamp Community Member.
Энди Тиффани
Prep – это мнемонический, который я создал, чтобы помочь вам запомнить шаги, связанные с решением проблем кодирования доски. Это стоять за Параметры, Вернуться, Е Риска, Псевдокод.
MneMonic – это новый, но базовая техника тестирована битва. Это, по сути, это дружественная версия Тестовое развитие Это хорошо подходит к кодированию проблем.
Давайте направимся к нему и выучить подготовку через примерную проблему. Мы будем использовать JavaScript, но эта техника работает только для любого языка программирования.
Ваш интервьюер просит вас написать функцию, которая принимает предложение и возвращает самое длинное слово. Что вы делаете?
«P» для параметров
Большинство проблем включают в себя запись функции. На этом шаге вам необходимо определить, какие параметры должны принимать вашу функцию. Тогда вам нужно дать им значимые имена.
Ключевые слова, такие как «принимают в себя» или «принимают» в заявлении о проблеме здесь. Если это неясно, вы также можете попросить интервьюеру для разъяснения. В вашем случае утверждение «принимает предложение», говорит вам, что функция должна принять один параметр String.
Итак, вы определили Тип вашего параметра. Но что вы должны назвать это? Это может звучать просто, но хорошее название является важнейшим навыком программирования, и это практикуется.
Вы можете позвонить вам «SentenseString», но призвать его «предложение», более лаконичнее и до сих пор делает его ясным, мы имеем дело со строкой.
Поскольку это ваш первый шаг, вам также нужно придумать значимое имя для самой функции. В вашем случае «длинный слой» оба кратко и описательно. Теперь, когда вы решили это, вы можете написать оболочку для вашей функции, как это:
«R» для возврата
Что эта функция Возвращение ? Это число? Логический? Строка?
Помните: значение Возвращение функции не совпадает с тем, что она может отображаться в операторе печати/журнала.
Еще раз, вы можете посмотреть на заявление о проблеме для разъяснения. ” Возвращает самое длинное слово «говорит вам, что вы возвращаете слово, И вы знаете, что слова строки. Давайте сделаем этот кристалл четким, создавая переменную для представления этого возвращаемого значения и оснащена функцией, чтобы вернуть его. Даже если вы еще не возвращаете правильный ответ, вы установлены, чтобы вернуть правильный тип. Вы создали заполнитель, который будет проще сделать следующие шаги.
“E”, например,
Даже для разработчиков экспертов статический код сложнее понимать, чем запущенный код. Вы хотите сделать свой код Runnable и «живым» как можно скорее. Вы можете дышать жизнью в вашей функции с примером вызова теста.
Вы знаете, что если ваша функция принимает предложение, «я видел бегемота», – это Должен Верните строку «Hippopotamus» после того, как он будет правильно работать. Но на данный момент вы просто хотите увидеть вашу стоимость заполнителя с последнего шага, чтобы подтвердить, что ваш код работает нормально и правильно настроен.
Последнее «P» для псевдокода
Хотя заманчиво просто погрузиться и начать кодирование сейчас, было бы слишком легко догнать подробности, которые могут отвлечь вас от большей картины. Вам нужно сначала разработать стратегию, и псевдокодирование это просто тактика для этого.
Псевдокод представляет собой серию точных утверждений, написанных в разговорных языках, которые описывают то, что вам нужно сделать.
Вы закончили подготовить. Теперь вы можете код!
Четыре шага в подготовке помогли вам четко отдать проблему и подумать о том, как ее решить. По правде говоря, точное обрамление составляет половину битвы. Большинство интервьюеров уже будут впечатлены, чтобы увидеть ваш методический подход. На данный момент ваша цель состоит в том, чтобы просто написать код, который сделает ваши примеры и анализы. Вы сделаете это, кодируя каждый из ваших псевдокодных шагов.
Вы знаете, что у вас есть рабочее решение, когда вы можете запустить свой код и увидеть правильный выход.
Вы сделали это через самую трудную часть сейчас. Вы можете вздохнуть с облегчением, которое вы по крайней мере получили рабочее решение. На данный момент есть еще два вопроса, чтобы подумать:
- Есть ли какие-то краевые случаи, которые сломали бы код? Например, вам нужно учитывать предложения, которые имеют период в конце их? Вы будете писать больше тестовых случаев для этих краевых чехлов, а затем исправить код при необходимости.
- Можете ли вы сделать очиститель кода или более эффективным сейчас? Вы должны обсудить идеи с интервьюером, чтобы они знали ваши мысли, прежде чем рисковать нарушать решение.
Вот и все! На первый взгляд этот процесс может показаться чрезмерно механическим, но доверяйте мне, он станет вторым природой – очень похож на шаги в обучении водить. Даже после программирования более 12 лет это все еще примерно в последовательности, которую я следую, когда я решаю проблем. Я более скорее буду использовать формальные рамки тестирования вместо операторов журнала, как мы здесь сделали, но шаги одинаковы либо.
Теперь вы попробуете! Вот несколько проблем на новичком уровне, с которыми вы можете практиковаться, примерно в примерно по возрастанию сложности:
- Предположим, у вас есть множество строк, таких как [«ADIOS», «BYE», «CIAO»]. Ваша задача – написать функцию, называемую Total_Character, которые принимают такой массив в качестве параметра и возвращает суммируемое количество символов по всему строками в массиве.
- Напишите функцию, чтобы перевернуть монету N раз, которые возвращают количество раз «головы».
- (От бесплатный код Champ ) Мы передадим вам массив двух чисел. Верните сумму этих двух чисел, и все номера между ними. Самое низкое число будет не Всегда приходите на первом месте. Попробуйте сначала использовать Prep, чтобы сначала установить это, но затем не стесняйтесь подтвердить вашу настройку и закончить его здесь Отказ
Prep уже помог несколько Первый шаг кодировка Учащиеся ACE их кодирующие интервью, и я надеюсь, что это может вам помочь. Счастливое кодирование!
Если вам понравилось, нажмите на? Ниже так другие люди увидят это здесь на среднем.
Оригинал: “https://www.freecodecamp.org/news/before-you-code-remember-to-prep-for-your-coding-interview-2ccfb58147db/”