Как быть со сложными задачами?

Ребят, всем привет, мне 17 лет, и я начал заниматься программированием около года назад. Вопрос такой: довольно часто передо мной стоят задачи, суть которых довольно хорошо усваивается в голове, но возникает ступор, когда дело доходит до программтрования. Может ли кто-то посоветовать, как нужно разбивать задачу на подзадачи и выстроить хоть какой-то алгоритм или сделать еще что-то, чтобы с психологической части ушла нагрузка и появилось понимание, что и как нужно предпринимать. Очень надеюсь, что вопрос понятен, буду очень благодарен за ваши ответы :)
  • Вопрос задан
  • 410 просмотров
Пригласить эксперта
Ответы на вопрос 4
daemonhk
@daemonhk
ПсиХоПат
Разбивать на простые и изучать каждый по отдельности. Правда при этом нужен ментор, который подскажет как и что и убережет от задавания глупых вопросов на тостере и стаковерфлоу) Любая сложная система строится из мелких. Например, раньше я ненавидел верстать формы и подключать их, до тех пор пока не сделал это 100500 раз.
Ответ написан
@FreeBa
Есть ровно один способ достичь дзена в программировании. Заключен он в манифесте. Все остальные пути и методики обучения неэффективны.
Ответ написан
kissed
@kissed
Разработчик Android
Книги, это все конечно хорошо, но без практики ты далеко не уедешь. Очень рекомендую участвовать в соревнованиях по программированию, одна из лучших наших платформ - Codeforces. Там несколько раз в неделю проходят контесты, потом выкладывают разборы задач. Можно тренироваться и виртуально уже на прошедших контестах, можно просто на отдельных задачах.
Прокачивается все: и знание синтаксиса, стандартной библиотеки языка, структур данных, алгоритмов, и умение быстро оценивать-понимать-декомпозировать-решать поставленную задачу.
Имхо, для человека, называющего себя программистом, эта штука обязательна. Как чистка зубов.
Ответ написан
Комментировать
ApeCoder
@ApeCoder
Есть разные способы делить задачи на части - функции, объекты, правила и прочее.

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

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

Подумать из каких кусочков будет состоять решение, какие из них точно друг от друга зависят, а какие точно не зависят.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы