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

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

Вы когда-нибудь задумывались, почему специалистов-проектировщиков больше, чем инженеров-программистов? Об этом знают многие ИТ-специалисты и фрилансеры. На вакансию дизайнера в течение часа после ее публикации подали заявки более 50 человек, а специалистов в сфере программирования может вообще не оказаться. Это связано с тем, что профессионалы в области дизайна продуктов используют всемирно известное программное обеспечение, которое помогает обрабатывать фотографии, видео, всевозможные изображения и иллюстрации, а также создавать 3D-модели. Это основано на том факте, что все команды и функции в программном обеспечении представлены значками и различными визуальными изображениями - вы можете увидеть их примеры на рисунке ниже.

Их количество и эти визуальные образы помогают формировать когнитивные способности человека на основе шаблонов, облегчающих понимание всех видов работы с программами. У программистов нет шаблонов. Они учатся, понимая существующие алгоритмы. Хорошо, если они уже реализованы. Их можно запускать и тестировать, чтобы убедиться, что код работает и процесс вычислений идет так, как задумано программистом. Опытные программисты используют математические статьи для реализации различных алгоритмов. Они работают с псевдокодом и математическими выражениями, которые не всегда можно понять. Чтобы мы также могли обрабатывать различные математические концепции, методы и алгоритмы, у нас есть метод, который поможет нам понять и улучшить свои навыки и способности. Здесь на первый план выходят три техники, которые мы назовем методом, который будет полезен всем программистам, как новичкам, так и опытным, для работы над алгоритмами.

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

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

ТРИ ТЕХНИКИ

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

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

Третий метод - разбить проблему, формализовать ее и раскрыть структуру данных этого алгоритма. Процесс разделения задачи состоит в том, чтобы идентифицировать базовую вычислительную процедуру или повторяющиеся вычислительные шаги. Сложные вычислительные процессы легче понять по частям, шаг за шагом. Формализация - это процесс перехода от абстрактного к конкретному. Чаще всего высокий уровень абстракции математических функций может привести к остановке, которая затем приведет к тому, что задача не может быть понятна и, как следствие, ее невозможно реализовать в программном коде. Кроме того, Николаус Вирт сказал: «Структура данных плюс алгоритм равны компьютерной программе», поэтому всегда необходимо разделять алгоритм и структуру данных в этом процессе.

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

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

Интересный факт - это первый алгоритм, который Дональд Кнут рассматривает в своей знаменитой книге «Искусство программирования». И еще мне очень нравится цитата (одна из моих любимых) Билла Гейтса о тех программистах, которые действительно читают алгоритмы и работают с ними.

Если вы думаете, что вы действительно хороший программист… прочтите «Искусство компьютерного программирования» Кнута… Вам непременно следует отправить мне резюме, если вы можете прочитать все.

Билл Гейтс

Я использую вышеуказанный метод; мы начнем работать с алгоритмом Евклида, изучим его и реализуем на языке программирования Python.

Итак, НАЧАТЬ:

  1. Этот алгоритм имеет следующую блок-схему. Сначала изучите алгоритмические конструкции алгоритма. Затем попробуйте реализовать это самостоятельно. Уверяю, в этом нет ничего сложного.

Здесь мы продемонстрируем письменную форму алгоритма Евклида.

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

3. Наконец, мы продемонстрируем, как эту задачу можно разбить, формализовать и раскрыть структуру данных для облегчения усвоения. Во-первых, разделение проблемы на более мелкие части выявляет лежащую в основе вычислительную процедуру или повторяющиеся вычислительные шаги. В этом примере мы видим, что пункты 3,4,5 (в таблице) являются основной вычислительной процедурой. Во-вторых, формализация - здесь мы взяли конкретные натуральные числа m = 24 и n = 16; это формализация. И в-третьих, в структуре данных здесь две переменные, которым присвоены натуральные числа. Теперь мы закончили выполнение нашего метода из трех техник, которые мы применили к алгоритму Евклида. Кажется, это было не так уж и сложно.

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