Вкратце, вопрос в том, станут ли эти вещи понятнее программисту по мере его продвижения в карьере. Стали ли сложные темы, как перечисленные выше (OpenGL, MySQL, продвинутые html-сайты), легче читать, писать и понимать по мере того, как вы узнаете больше, или они просто усложняются? Как вы можете бороться с этим чувством, что вы муравей в мире программирования, и эта штука может вас раздавить?
Я собираюсь пойти немного другим путем, чем другие респонденты; Я считаю, что на самом деле чтение и написание кода становятся проще, чем больше, и я продемонстрирую это на простой аналогии.
Вспомните, когда вы впервые начали заниматься спортом. В самом начале, когда вы изучали первый вид спорта, базовая координация простых задач одного вида спорта, вероятно, казалась действительно сложной. По мере того, как вы становитесь немного более опытным, вы начинаете осваивать простые задачи, чтобы вам больше не приходилось думать о них, и вы заметили, что есть более сложные задачи, на которые вы могли бы обратить внимание (например, смотреть, как другие игроки предсказывают) их поведение).
Затем, когда вы попробовали свои силы в другом виде спорта, вы, вероятно, обнаружили, что не сильно отстали, когда начинали. Поймать баскетбол очень отличается от ловли бейсбола, но кому-то, кто освоил один из них, будет гораздо легче подобрать другой, чем человеку, который никогда не делал ни одного раньше. Имея опыт занятий вторым видом спорта, вы обнаружили, что первый вид спорта дает вам как специфические, так и общие навыки. Специальные навыки (ловля баскетбола) полезны только в своей области, но общие навыки (отслеживание быстро движущегося объекта, приближающегося в трехмерном пространстве и разработка плана для борьбы с ним) делают вас лучше во всех связанных областях.
Какое это имеет отношение к программированию? Первая строка кода, которую вы читаете, открывает вам мир, построенный на определенных правилах. Вы изучили эти правила (синтаксис и идиомы этого языка) как особые навыки, но вы также узнали некоторые ценные общие навыки: понимание того, как работают компьютеры внутри, и как выражать свои намерения так, как компьютер может их понять. Каждый новый язык, который вы изучаете, дает вам новые специфические навыки, но он также усиливает ваши общие навыки и помогает вам увидеть шаблоны, просматриваемые через все компьютерные языки, такие как залежи минералов, наслоенные вдоль стены каньона. Когда вы по-настоящему познакомитесь с несколькими разными языками, вы начнете распознавать «форму» практически любого кода, если простите за неопределенность, даже если вы ничего не знаете о языке, на котором он написан.
Например, все три языка, которые вы упомянули (MYSQL, OpenGL, C ++), имеют некоторые общие особенности:
- Можно вычислить отдельные части алгоритма по отдельности, а затем объединить их в полное решение.
- Компьютер обычно требует некоторой общей подготовки, прежде чем вы сможете приступить к работе над конкретной проблемой (создание таблицы, инициализация холста или загрузка общих библиотек)
- Более ранние операторы имеют приоритет и влияют на более поздние операторы, т. Е. Компьютер запускается в верхней части кода и работает вниз
Чем больше вы программируете, тем больше вы понимаете, что независимо от того, каков шар, он все равно просто приближается к вам, и вы знаете, что с ним делать, не думая об этом слишком много. Все программирование - это попытка выразить свои намерения так, чтобы компьютер мог их понять; выучите достаточно, и вы начнете читать намерения вместо кода.
PS- Каждый раз, когда вы, наконец, начинаете чувствовать, что знаете свой путь, вы сталкиваетесь с чем-то, что абсолютно ломает ваш мозг и заставляет вас чувствовать себя новичком. Это то, что мы любим в этой работе, всегда есть чему поучиться.