Другое

Программирование как этап решения задачи на компьютере

Lorem ipsum dolor

Частая проблема молодых программистов — это страх пойти дальше после изученной теории и первой написанной фразы всех программистов: «Привет, мир!». Как только возникает проблема посерьезней, то вопрос: «Как решать задачи по программированию?» не дает покоя. На самом деле проблема кроется в страхе решить задачу, а не в самой поставленной задаче. От незнания «как это сделать?» наступает мандраж по всему телу и возникает острое желание все бросить. Знакомо?

Как решать задачи по программированию 

Для того чтобы не происходил стресс перед поставленными задачами, нужно «градус сложности» повышать постепенно. Условно: после фразы «Привет, мир!» не нужно бежать сразу в сложную энтерпрайз разработку, а можно написать «Привет, мир! Как дела?» и дать «миру» возможность ответить при помощи формы обратной связи.

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

Для этого для себя нужно четко очертить условные границы:

  1. Что я уже могу решить.

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

  3. Что это вообще такое, я знать не знаю, о чем идет речь, и понять не могу, что вы от меня хотите.

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

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

Ведь все решенные задачи из «второго» пункта после решения переходят в «первый», а значит, становятся частью вашего опыта. Следовательно, по ним у вас не будет возникать вопроса: «Как решать такие задачи по программированию?».

Но с какой бы задачей и проблемой вы ни столкнулись в программировании, самое главное это не впадать в панику и не «забиваться в угол», а просто не стесняться спросить у более компетентных профессионалов. Вы же помните:

«Не стыдно задавать вопрос, когда не знаешь. А стыдно не знать и не задавать вопрос, но при этом делать вид, что знаешь».

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

Страх всегда преодолевается действием. Поэтому не так страшна задача, пока вы не начали ее решать. А как только начнете и будете находить решения, то сами заметите, как начнете «окрыляться» и двигаться вперед. Больше практики — меньше страха. От простого к сложному, от сложного к еще более сложному, но главное только вперед.

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

Конкретные шаги, как решать задачи по программированию

Универсальным подходом к решению задач по программированию является популярный в среде разработки«метод Пойа». Впервые этот метод стал известен еще в 45-м году, но на тот момент он никак не относился к программированию. Он предлагал общие шаги к решению любой задачи.

Но в последнее время этот метод широко используется программистами и профессорами информатики. Потом данный метод приобрел определенный IT-статус.

Метод Пойа гласит, что любую задачу можно решить в 4 шага:

  1. Понимание сути поставленной задачи.

  2. Разработка плана конкретных действий.

  3. Осуществление плана.

  4. Взгляд назад на проделанную работу.

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

Понимание сути поставленной задачи

Допустим, вы получаете задачи по программированию, ваша первая мысль: «Как решать такие задачи?». Это верная мысль. Но она имеет подвох. Очень часто вы примерно представляете, как можно решить подобную задачу, и начинаете сразу писать код.

Пишете код. Через какое-то время вы упираетесь в тупик, что-то начинает не получаться. Вы бежите за помощью, вам помогают и подсказывают правильное решение. Оказывается, что вы изначально все начали делать неправильно и нужно много всего переделывать, а еще лучше начать все сначала. Но вы-то уже неделю трудитесь над задачей! Бывало такое? 

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

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

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

Разработка плана конкретных действий

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

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

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

Осуществление плана

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

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

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

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

Взгляд назад на проделанную работу

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

Это тот самый этап, на котором можно зафиксировать свой опыт и поставить галочку: «Сделано!».

Итог

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

А еще нормально не понимать, как решать задачи по программированию. Потому что именно в такие моменты вы и приобретаете опыт, за который вам будут платить деньги как профессиональному программисту.

 

Схожие статьи

Важнейшие аспекты информационной безопасности: 3 основы
Другое

Важнейшие аспекты информационной безопасности: 3 основы

Другое

CI и CI+: в чём разница между этими технологиями защиты контента?

Оператор goto: что это, зачем необходимо и где применяется
Другое

Оператор goto: что это, зачем необходимо и где применяется

Хэш — что это и как хэш-функция помогает решать вопросы безопасности
Другое

Хэш — что это и как хэш-функция помогает решать вопросы безопасности

×