Как изучить программирование и развить абстрактно-логическое мышление?

Здравствуйте, коллеги!

Я сейчас работаю в IT. Начинал с помощника сисадмина, ныне работаю в хелпдеске. Желаю перейти в разработку на Java (backend). Сейчас обучаюсь. Чувствую, что тяжело что-то представлять. Тяжело в голове строить какие-то абстракции, модели и т.п. У меня плохо развито абстрактное мышление. Логическое мышление тоже не самого высокого уровня.

Что я начал делать: начал пытаться решать задачи на логику. Но такие задачи требуют смекалки и способность догадаться (что логично) до какого-то решения, оперируя данными. Но я не знаю с чего начать и чем закончить. В принципе, с любыми задачами у меня так. Вижу текст, прочитал. А с чего начать и чем закончить — вот и приехали... Тупик...

Вопрос 1: как развить абстрактно-логическое мышление? Ряд моих близких говорят, что такое мышление - врождённая особенность и если его нет, то это не развить. Я в корне не согласен и моё мнение противоположное.

Вопрос 2. Как изучить методику программирования? Многие твердят, что нужно учить не язык программирование, а учиться программировать. Но как? Язык - это инструмент, хорошо. Как же овладеть самим искусством программирования? Что нужно делать? Какие книги почитать? Я пробовал начать с "Грокаем алгоритмы" и с книги Никлауса Вирта по алгоритмам, но ничерта не понял. Читаю и, как говорится, "Смотрю в книгу, а вижу фигу"...

Благодарю за ответы и советы.

33
реклама
разместить
2 комментария

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

Думаю на второй вопрос чуть добавлю. Что бы результат по программированию у вас был, прежде всего вам нужна исключительно личная задача, одна попроще и одна помасштабнее. Желательно что бы был живой заказчик. Только таким способом, при личной заинтересованности у вас появится достаточно мотивации не впоиске оптимального пути решения, но в поиске решения вообще. А там где решение там и дофамин и позитивное подкрепление. А после того как что то заработает, можно уже сделать ревизию и посмотреть что можно было сделать лучше. Или показать товарищам.