Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+4

Как программисту научиться решать задачи?

Здравствуйте.
Вспоминаю былую профессию. Читаю ныне книгу "Песни о Паскале". После прочтения главы делаю задачки. Дошёл до пузырьковой сортировки. Уже начинаю появляться затруднения. Вот пример задачи после главы:

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

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

Собственно вопрос: как научиться решать задачи? И, самое главное, как догадываться до какого-то решения: до конкретного действия и что в принципе следует делать для решения задач/подзадач? Вроде кажется, что понимаю после чтения главы и решения задачек, но стоит встретить чуть более нестандартную задачу - и мой мозг говорит мне: "Пока, чувак"...

По дате
По рейтингу
Аватар пользователя
Новичок
10мес

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

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

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

Аватар пользователя
Высший разум
10мес

Некоторым этого не дано природой

Аватар пользователя
Искусственный Интеллект
10мес

"И опыт, сын ошибок трудных..."
(А.С.Пушкин)
Что касается того, что
" моё решение в корне отличается от того, как решил автор книги"
- вспомним Киплинга
"Девяносто шесть дорог
Есть, чтоб песнь сложить ты мог,
И любая - правильна, поверь"

Аватар пользователя
Мыслитель
10мес

ИМХО, тут нужно больше практики. Больше решай задач. Изменяй их, "играйся" с ними: пробуй сделать что-нибудь своё. Твои проблемы решаются именно путём регулярной, непрерывной и разнообразной практики.

Аватар пользователя
Мыслитель
10мес

решать, решать, решать и в сотый раз найдёшь своё сто первое решение.