Faun_
Были попытки освоить высокоуровневку, но и тогда она вызывала похожую растерянность(мозг у меня реально как-то по другому устроен)
Это нужно с самого детства развиваться. Мне вот книжки покупали и клали в шкаф. Когда я до них дорастал (мог понимать), тогда я их читал (иногда несколько лет проходило с покупки до чтения). Потом домой ещё комп купили заграницей и привезли (1993 год, 386-й комп). Так что были и книги, и комп для практики. Я ночами просиживал за компом, ковырялся в DOS'е, который, если сломается, то чинить его негде. Раньше не было Интернета, сервисов по ремонту компов, всё только по знакомствам делалось. Ни у кого компов не было в городе, только на работах всяких, и то там стояли 286-е и 486-й один (ну типа сеть, а этот в роли сервера (если его можно так назвать ещё было, тогда и сети были не развиты)).
Первый язык был у меня - это
QBasic, какой-то диалект бэйзика. На нём я и написал свою первую программу где-то в 1999. Не “hello, world” имеется в виду, а такую, которой я потом пользовался два-три года. Ей подавал базы от ICQ, а она сохраняла весь текст оттуда в файл. То есть берёшь базу на мегабайт и программа тебе с неё сохраняет 200 килобайт чистого текста. Эти базы были бинарные, поэтому надо было отследить начало каждого сообщения по бинарному признаку, да и концовка сообщения тоже в руки просто так не шла (я уже не помню, как я её определял). И вот эта программа вытаскивала текст из баз от ICQ98, а потом вышла ICQ99 и в ней поменяли формат баз. И моя прога перестала работать, не находила ничего в таких базах. А все уже стали переходить на новую аську. Пришлось программу дорабатывать, то есть снова эти базы открывать в HEX-режиме и читать эти последовательности, чтобы понять, как начинаются сообщения. Потом в эту программу уже понадобилось встроить меню, которое бы давало выбрать тип базы - ICQ98 или ICQ99. Всё это было сделано и работало тоже какое-то время. А потом вышла ICQ2000b, с её базами я вообще не понял, как обращаться. В итоге для ICQ2000b я не смог добавить вариант в программу. Ну короче, эта программа мне дала дофига информации. У нас там были общие компы и там стояла аська везде. И какая-нибудь баба свою аську туда добавит, посидит, потрындит, а потом аську свою запаролит на вход и типа всё в безопасности. Я подходил, просто аськины базы напрямую копировал себе (они-то не защищены были ничем, как на ладони всё - Windows 98, там не было разных прав у пользователей, пользователи различались только видом рабочего стола), а потом дома своей прогой прогонял и всё читал, все секретики. Ну там за пару лет сообщений нормально накапливалось в одном аккаунте, а аккаунтов было десяток или около того. Особенно смешно админов было читать, которые хвастались антивирусами новыми.

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

У неё нет инструмента, который можно взять и прочитать всё, прямо сквозь пароль.
А потом уже я стал думать про всякие C++ и подобные и стал тоже искать способ изучить это всё хотя бы базово. И с первого раза тоже ничего не получилось. Я в
Borland C++ пытался программу написать и не мог понять, как работать с потоками вывода. Не мог понять, что такое поток. Так первая волна изучения C++ захлебнулась. И потом пацан (брат моего сокурсника) мне сбросил электронный курс по C++ из вуза, где он учился на программиста, и курс мне сам не помог, но я понял, что есть какие-то материалы специальные в вузах, по которым можно учиться, которые для этого специально и сформированы - для обучения программированию. Тогда уже я пошёл в магазин и купил справочник по C++. Стал его изучать, но это был просто справочник, да ещё и от Шилдта. Этот справочник дал мне понимание, что не все красивые книжки являются хорошими. Так я стал дифференцировать книги по их качеству материала. И потом в 2008 я купил уже книжку K&R2 (классическая книга по C) и она пришла мне по почте (всего 500 рублей за книгу + доставку). И так я начал программировать уже серьёзно (начал вести отсчёт от того года, сбросив период бейзика). После изучения языка по книге я понял, что всё равно не могу ничего написать на нём, так как чего-то не хватает. То есть ты пишешь программу: как писать - ты знаешь, а что писать - ты вообще понять не можешь. Оказалось, что не хватает знаний о проектировании программ. Я изучал другие языки в это же время (параллельно), чтобы получить полноценный набор инструментов в своём чемоданчике; это как художник набирает себе разные кисточки и краски в свой портфель или как сантехник набирает разные пассатижи и молотки для выполнения любой работы. Есть низкий язык - даёт скорость и бинарники небольшого размера; есть высокий язык - даёт простоту разработки и лёгкость изменения программы; есть язык обслуживания - даёт автоматизацию всех процессов при разработке. И так, изучая поэтапно ещё несколько языков, я уже стал искать материалы о проектировании программ и изучать архитектуру существующих успешных программ с открытым исходным кодом, чтобы понять, как их делали. Сам питон - типичный проект с открытым исходным кодом, имеющий разветвлённую архитектуру. Интересно наблюдать за ним, как он меняется во времени, как его перестраивают, почему в нём добавляют то или иное, а какие-то вещи выбрасывают. При этом я смотрел, как это происходит: как добавить что-то, чтобы все это приняли; как выбросить что-то, чтобы у всех ничего не сломалось в их программах, которые это используют. Все эти элементы я отслеживал и учился у себя их воспроизводить. Делал программы в которых всё это проделывал, по максимуму документировал что-то в какой-нибудь мелкой программке, чтобы понять края документации, докуда нужно документировать. Я полностью копировал программы, которые у меня в системе стоят. Полностью копировал их документацию. То есть ты мою программу от системной не отличишь, потому что она выглядит как системная. Делает что-то своё, а выглядит так же, как и все проги, которые в системе стоят. Это вот результат того, что я учился на реальных программах.
И сейчас я уже нахожусь на стадии моделирования программы, написания технического задания, документирования программы внутри (для разработчиков) и снаружи (для пользователей), создании сайта программы. Нельзя просто создать программу, нужно её ещё куда-то выложить - это дистрибуция. А чтобы её выложить, её там надо понятно описать. Потом у программы меняется версия, из-за чего сайт, который её описывает, надо менять с учётом того, что есть теперь старая версия и есть новая версия программы. И эти версии могут иметь разные фичи, соотвественно, поэтому и абсолютно разные описания. И за всем этим нужно уметь следить, чтобы можно было легко через год вспомнить, что и где в какой программе и на каком сайте.
Поэтому когда ты говоришь, что по курсам научишься ООП, я на это смотрю, как на кучу пацанов, которых я видел десятками. Они изучали ООП, чтобы научиться разрабатывать программы, в то время как ООП - это какая-то одна из парадигм, которую ты изучаешь на каком-то одном слое изучения при обучении, которое состоит из пары десятков слоёв. ООП нужно знать, но оно не научит тебя разрабатывать, потому что это мелочь. Для разработки нужно кучу слоёв пройти от самого низа до самого верха. И потом вот это всё будет использовано, чтобы сделать одну полноценную программу, которая, я тебе секрет открою, состоит из маленьких полноценных программ, которые состоят из мелких полноценных программ.