Hello, world!
Я - студент второго курса направления, выпускающего учителей физики и информатики(да, и такое бывает).
Мне не представилась возможность сознательного, обдуманного выбора профессии, я просто хотел связать свою жизнь и работу с IT - просто потому, что мне это было всегда интересно.
Мы неплохие физики, но обучение IT в нашей провинции отвратительно, обладает неоправданно разорванными, сумбурными и местами неактуальными программами. Меня никогда не покидало желание знаний намного более глубоких, чем те, что даются нам на парах, и я на правах волонтёра хватался за разные проекты и задачи - написаний кода, администрирований, технических поддержек, обслуживаний и прочего, в чём я мог быстро разобраться.
Начинаю раскрывать сущность вопроса: у меня есть некоторый абсолютно бесполезный стек начальных знаний о разных IT - технологиях. В процессе изучения каждой меня преследовало ощущение, что я всегда начинаю не с начала, с чего-то не того, что у меня пробелы или полные, абсолютные незнания нужных смежных областей. Приведу примеры вопросов, возникавших в моей голове:
- Изучил синтаксис C# и научился писать консольные приложения .NET Core. В процессе обучения приходилось лезть и править конфигурации, написанные с помощью XML. Что это такое, где про него прочитать, как его хорошо изучить?
- Столкнулся с ООП в процессе изучения C#. Это не очень сложно, но есть желание узнать в полной мере внутреннее строение некоторых методов, как они вообще создаются и работают?
- Может, я вообще не с того начал? Может, для полного понимания надо было начать не с объектно-ориентированного языка? Нужны ли C и C++ для постижения дзена?
- А как вообще работает компилятор? Как условный WriteLine заставляет пиксели на экране складываться в нужную для вывода информацию в C# или как это делает print в Python? Как создаются и работают инструменты языка программирования?
- Microsoft Learn рассказал мне, что есть и какие-то другие типы программирования - например, функциональный F# и прочие подобные вещи. Зачем они нужны, в какой момент начать их изучение?
- Люблю Линуксы, страшно нравятся Линуксы. Бесконечно ставлю их, настраиваю их, нахожу мелкие кусочки информации о том, как работает та или иная в операционной системе вещь. А как это всё работает в целом? Как вообще работает операционная система? Узнал, что существуют дистрибутивы, где у тебя есть чуть ли не голое ядро и ты собираешь систему сам под свои нужды. А как работает это самое ядро? Что оно такое? Как начать самому собирать системы, где и как этому научиться? Что скрывается за графическими оболочками?
- А как работают программы с операционными системами? Почему программы Windows не работают с Linux и какими хитростями линуксоиды все-таки заставляют их работать?
Этот список можно продолжать бесконечно.
Раскрываю сущность вопроса:
Желаю в будущем разбираться: как работают и взаимодействуют железо и операционные системы? Как работают приложения с операционными системами, какими языками и в каком случае пользоваться для создания тех или иных приложений? Как интегрировать свои приложения с различными веб-технологиями и т.д.?
Есть ли в изучении всего этого какой-то маст-хев-супернеобходимый начальный стек, какая-то первая ступенька каких-то знаний - или несколько таких "ступенек" для начинающего разработчика, дорожная карта или несколько дорожных карт, описывающих самое начало обучения любой системной разработке или разработке приложений?
Заранее благодарен каждому за каждый ответ и отдельно за каждый развернутый ответ. Каждая крупинка информации очень и очень важна.