Как постичь искусство программирования?
Этот текст написан в Сообществе, в нем сохранены авторский стиль и орфография
Здравствуйте, коллеги!
Сразу оговорюсь, подобный вопрос я искал на сайте и нашёл для себя полезную информацию. Но хочу обсудить этот вопрос более предметно.
Я сейчас работаю в IT. Начинал с помощника сисадмина, ныне работаю в хелпдеске. Желаю перейти в разработку на Java (backend). Сейчас обучаюсь. Чувствую, что тяжело что-то представлять. Тяжело в голове строить какие-то абстракции, модели и т.п. У меня плохо развито абстрактное мышление. Логическое мышление тоже не самого высокого уровня.
Что я начал делать: начал пытаться решать задачи на логику. Но такие задачи требуют смекалки и способность догадаться (что логично) до какого-то решения, оперируя данными. Но я не знаю с чего начать и чем закончить. В принципе, с любыми задачами у меня так. Вижу текст, прочитал. А с чего начать и чем закончить — вот и приехали… Тупик…
Вопрос 1. Как развить абстрактно-логическое мышление? Ряд моих близких говорят, что такое мышление — врождённая особенность и если его нет, то это не развить. Я в корне не согласен и моё мнение противоположное.
Вопрос 2. Как изучить методику программирования? Это ключевой момент. Многие твердят, что нужно учить не язык программирование, а учиться программировать. Но как? Язык — это инструмент, хорошо. Как же овладеть самим искусством программирования? Что нужно делать? Какие книги почитать? Я пробовал начать с «Грокаем алгоритмы» и с книги Никлауса Вирта по алгоритмам, но мало что понял. Читаю и, как говорится, «Смотрю в книгу, а вижу фигу»…
В прошлом окончил ВУЗ по IT-специальности, потом пошёл в армию, потом жизнь потаскала по различным местам, затем я попал в хелпдеск. Сейчас хочу всё-таки заняться программированием. Ещё в студенческие годы баловался в Delphi и вёрстке, это было чертовски интересно.
Что касается точных наук. Физику и геометрию не понимал вообще. Правда, они мне были не интересны и я не прикладывал сил для их изучения. С алгеброй пободаться мог. До 10 класса, когда пришёл новый учитель, интереса к этой науке не было. Потом в ВУЗе был классный преподаватель. И благодаря этим классным педагогам я научился решать квадратные и биквадратные уравнения, различные неравенства, разобрался с тригонометрией, векторами, производной и первообразной, немного понял логарифмы и интегралы. Но, несмотря на это, в основном, я действовал какими-то шаблонными наработками и методами. Стоило изменить задание — и я в растерянности. Не было базы, не было наработано нужного мышления. Тем не менее, если я в алгебре мог что-то сделать, и даже хорошо, то в геометрии я был как беспомощный котёнок, я её не понимал совершенно. Во многом из-за того, что сам на неё забил из-за отсутствия интереса. И при всём при этом, несмотря на мои успехи в алгебре в этих темах, я никогда не умел решать задачи. Не знал с чего начать и чем закончить. Для программирования это буквально трагедия.
Также многие говоря, что чтобы научиться программировать, нужно программировать, как бы не было банально. Но как? Что писать, когда ты не знаешь что именно писать и как писать? Повторять за другими? Ну, перепечатал код в IDE — и в голове ничего не отложилось.
Благодарю заранее за критику, ответы и советы.