Бывают трудности "разбить" задачу. Как этому научиться?
Сейчас изучаю Java и чувствую, что бывают трудности "разбить" задачу. Один из примеров: есть калькулятор, который принимает на вход цифры, есть switch, который использует данные (цифры) и проводит мат. операции, и есть цикл, который вызывает команду "Повторить команду", но куда вставить цикл у меня нет идеи. Поспрашивал у знакомых, а они советуют, что нужно развивать логическое мышление. Что делать?
Ну да, вот именно развивать логическое мышление, только с акцентом на программировании. Вообще, всё программирование, и проектирование — про декомпозицию прежде всего, про умение разбивать задачу на множество слабо связанных подзадач.
Подходов тут много, я сторонник классического академического подхода, можно через алгоритмы -- изучайте учебники Кнута, Вирта, Лафорэ, "Грокаем алгоритмы", принцип "разделяй и властвуй" в частности.
Но если не получается на совсем низком уровне кода, непонятно как "скомбинировать" простые команды
чтобы получить правильный результат, это верный признак, что вы пока не выработали уверенный
универсальный навык кодирования, а это вообще ключевое в профессии программиста.
Такой навык достигается например решением достаточно большого числа (200-300)
задачек постепенно растущей сложности.