Хороший программист — это не тот, кто знает, как решить проблему, а тот, кто знает, как решить проблему эффективным способом.

Если вы хотите стать программистом или уже им являетесь, возможно, вы где-то видели эту популярную цитату.

«Каждый в этой стране должен научиться программировать компьютер, потому что он учит думать». — Стив Джобс

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

Вы должны иметь возможность видеть их с разных точек зрения. Это поможет вам решать проблемы быстрее и эффективнее.

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

Но здесь мы поговорим о проблемах программирования.

Хороший программист — это не тот, кто знает, как решить проблему, а тот, кто знает, как решить проблему эффективным способом.

Что я имею в виду под приведенной выше фразой? Возьмем практический пример.

Предположим, нам нужна программа, которая выдаст нам первые "n" четных чисел.

Поэтому мы выберем первое решение, но не эффективное:

Приведенный выше код работает, но неэффективно.

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

Например, запустить цикл (2 x input) и выполнить проверку if-else, которой можно легко избежать.

Как избежать цепочки операторов if-else в коде JavaScript? Прочтите эту статью:



Теперь давайте посмотрим оптимизированную версию задачи:

Видите, мы заменили проверку if-else. И теперь цикл будет выполняться только n раз.

Когда я сравнил эти два подхода, второй подход оказался в 3 раза быстрее первого.

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

  • Сколько времени это занимает, посчитайте его временную сложность
  • Каких шагов можно избежать, не влияя на результат алгоритма?
  • Сколько памяти требуется?

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

«Практика делает человека совершенным»

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

Спасибо за прочтение. Оставьте свои комментарии или предложения!

Дополнительные материалы на PlainEnglish.io. Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Подпишитесь на нас в Twitter, LinkedIn, YouTube и Discord.