Рубрики
Без рубрики

Руководство по 4 ступеням о том, как подходить к решению проблем кодирования

Лично, ничто другое не может быть вполне выпущено, чем не в состоянии «простая» проблема кодирования. НАМЕКАТЬ: Этот WO … с меткой карьеры, JavaScript, программирование, CodeNewie.

Лично, ничто другое не может быть вполне выпущено, чем не в состоянии «простая» проблема кодирования. Подсказка : Это будет работать, если бы мы использовали функции стрелки.

function multiply(a, b) {
    a * b
}

?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?

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

Шаг 1

Сформулировать проблему на человеческом языке

О проблемах кодирования задача уже указана, иногда формулировка не хватает ясности. Так что мы делаем?

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

Позвольте мне привести пример определения и устранения проблемы на человеческом языке. Речь идет о детской игре И это требует функциональности см. Пример ниже:

/*

A kid's fruit counting game needs functionality.
We need this program to add the number of fruits the user provided 
at any one time and display that number.If the number is not
provided, give a message that says no fruit has been added yet.

*/

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

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

/*

A kid's fruit counting game needs functionality.

We need this program to add the number of fruits the user provided at any one time and display that number.

If the number = not provided, give a message that says no fruit has been added yet.

*/

Как дела с пробелами чувак?

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

Таким образом, в приведенном выше примере я распался проблему в отдельные заявления. Давайте перейдем к линии по линии.

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

  • Вторая строка, нам нужна эта проблема, чтобы добавить количество фруктов, которые пользователь содержится у кого-либо, и отображает этот номер.

  • Третья строка, если число равно предоставляется не предусмотрено, дайте сообщение, которое сообщает им, что ни один фрукт еще не добавлен.

Хороший! Так что я знаю, что кажется маленьким Но это может быть реальным доверительным усилителем, получая в этой положительной цикле обратной связи, напоминая вам, что перевод на читаемое решение компьютера уже в пьесе. Но это все еще на английском. Как только вы сделали это, это естественно сочится на шаг 2, который ……

Шаг 2

Итерация и перевести проблему

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

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

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


// A kid's fruit counting game needs FUNCTIONality.

function AddFruitNumber(any number of arguments go here, including none)

// We need this program to add the number of fruits the user //provided at any one time and display that number.

add nums provided by the user, then print(total number of fruits)

// If the number = not provided, give a message that says no //fruit has been added yet.

if number = undefined, print("No fruits added...gimme fruits!")


Окей круто. Что удобно в псевдокоде, заключается в том, что нет компилятора, ни стандарта. В этом случае не имеет стандартных работает хорошо для вас, потому что никто не говорит вам: «Эй, ты забыл отступить на строку 14. Псевдо-код не может сломаться и полностью до того, как вы их формируете. По сути, точка псевдокода – дать вашему мозгу шаг 1 при переводе ваших проблем в код. Так Теперь, когда у нас есть наш псевдокод вперед и далее!

Шаг 3

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

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

function addFruits() {
    let basketOfFruit = 0
    for(let i = 0; i < arguments.length; i++) {
      basketOfFruit +=arguments[i]
  }
  if(isNan(basketOfFruit) || basketOfFruit === 0) {
      return "No fruits added...gimme fruits!"
  } else {
      return basketOfFruits + " fruits have been added"
  }
}


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

Шаг 3.5.

Спросите помощь: пасхальный яйцо

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

Шаг 4.

Улучшить ваше рабочее решение

Решение кодирования вызов отлично и все, но решая его оптимально лучше! Таким образом, мы собираемся ревертировать наше решение.

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

Так что хороший способ отключить этот процесс, чтобы спросить себя, как еще я могу решить это? Каковы некоторые альтернативные способы? Не бойтесь экспериментировать и сломать вещи, у вас уже есть рабочее решение, поэтому сохраните копию его и экспериментируйте, давайте посмотрим на повторный код ниже, и я объясню позже:

function userAddsFruits() {
    let userBasketOfFruit = 0
    for(let i = 0; i < arguments.length; i++) {
      userBasketOfFruit +=arguments[i]
  }
  if(isNaN(userBasketOfFruit) || userBasketOfFruit === 0) {
      return "No fruits added...gimme fruits!"
  } else {
      return userBasketOfFruit + " fruits have been added"
  }
}


Давайте обратиться к чему-то здесь. Я не сильно менялся, давайте быть честным. Я только что переименовал функцию и переменные внутри нее, причина, по которой я сделал, чтобы сделать вещи более семантическими. Вы действительно должны думать о других ❤ ️. Изменение переменной для чего-то более значимого повышает читаемость вашего кода, попробуйте сделать переменные как можно более четкими, на случай, если другой программист хочет реализовать функцию или исправить ошибку в будущем.

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

const userAddsFruit = (...args) => {
  let userBasketOfFruit = 0;
  args.forEach((fruit) => (userBasketOfFruit += fruit));
  if (isNaN(userBasketOfFruit) || userBasketOfFruit === 0) {
    return "No fruits added...gimme fruits!";
  } else {
    return userBasketOfFruit + " fruits have been added";
  }
};

Неплохо вообще 💪

Вывод

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

  • Думайте вслух. (Отобразите свой мыслительный процесс)
  • Написать комментарии. (Помогает показать, как ваше мышление тоже)
  • Напишите семантические переменные, убедитесь, что они что-то значат.
  • Стиль кода важен, сохраняйте его последовательным.
  • Если вы застряли задайте вопросы, будьте любопытны.
  • Если вы не можете перевести свое решение Code для кода и не удалось ее решить. Объясните своему интервьюеру, как вы бы решили его на «человеческий язык». Лучше, чем ничего.

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

Оригинал: “https://dev.to/hector4213/a-4-step-guide-on-how-to-approach-solving-coding-problems-1cm9”