Коротше кажучи, питання полягає в тому, якщо ці програми стануть зрозумілішими для програміста, коли він просувається в кар'єрі. Чи складніші теми, перелічені вище (OpenGL, MySQL, розширені html-сайти), стають легшими читати, писати та розуміти, коли ви дізнаєтесь більше, чи це просто ускладнюється, коли ви проходите? Як ти можеш боротися з цим почуттям того, що ти мураш у світі програмування, і ця штука збирається розчавити тебе?
Я збираюся взяти дещо інший крок, ніж інші респонденти; Я вважаю, що читання та написання коду насправді стає простішим, оскільки ви робите це більше, і я продемонструю це простою аналогією.
Подумайте, коли ви вперше почали займатися спортом. На самому початку першого заняття, який ви засвоїли, основна координація простих завдань окремого виду спорту, мабуть, здавалася дуже важкою. Коли ви трохи досвідченіший, ви почали освоювати прості завдання, щоб вам більше не довелося думати над ними, і ви помітили, що існують складніші завдання, на які ви можете звернути увагу (як дивитися, як інші гравці прогнозують їх поведінку).
Потім, коли ви спробували свої сили в іншому виді спорту, ви, мабуть, виявили, що не відстали, коли починали займатися. Ловити баскетбол набагато інакше, ніж ловити бейсбол, але хтось, хто оволодів одним із них, набагато простіше буде забрати іншого, ніж людина, яка ніколи раніше не робила жодного. З досвіду занять другим видом спорту ви виявили, що перший спорт дав вам як специфічні, так і загальні навички. Конкретні навички (ловити баскетбол) корисні лише у своїй галузі, але загальні навички (відстеження швидкоплинного об’єкта, що наближається до тривимірного простору, та розробка плану для вирішення цього питання) роблять вас кращими у всіх суміжних областях.
Що це стосується програмування? Перший рядок коду, який ви прочитали, відкриває вас світу, побудованому за певними правилами. Ви засвоїли ці правила (синтаксис та ідіоми цієї мови) як специфічні навички, але ви також засвоїли деякі цінні загальні навички: розуміння того, як комп'ютери функціонують всередині, і як висловити свої наміри таким чином, щоб комп'ютер міг зрозуміти. Кожна нова мова, яку ви вивчаєте, дає вам деякі нові специфічні навички, але це також зміцнює ваші загальні навички та допомагає побачити шаблони, розроблені на всіх мовах комп'ютерів, як родовища корисних копалин, розкладені уздовж стіни каньйону. Ознайомившись з кількома різними мовами, ви зможете розпізнати "форму" більшості будь-якого коду, якщо ви будете пробачити про нечіткість, навіть якщо ви нічого не знаєте про мову, на якій написано.
Наприклад, усі три згадані вами мови (MYSQL, OpenGL, C ++) мають деякі спільні риси:
- Можна обчислити невеликі частини алгоритму окремо і згодом скласти їх у повне рішення
- Комп'ютеру зазвичай потрібна певна загальна підготовка, перш ніж ви можете розпочати роботу над конкретною проблемою (створення таблиці, ініціалізація полотна або, можливо, завантаження загальних бібліотек)
- Більш ранні висловлювання мають перевагу і впливають на пізніші твердження, тобто комп'ютер запускається вгорі коду і працює вниз
Чим більше ви програмуєте, тим більше ви зрозумієте, що незалежно від того, як формується куля, все одно це лише куля, що йде до вас, і ви знаєте, що з ним робити, не задумуючись над цим занадто багато. Все програмування - це спроба висловити свої наміри таким чином, щоб комп'ютер міг зрозуміти; вивчіть достатньо, і ви почнете мати можливість читати наміри замість коду.
PS - Кожен раз, коли ви, нарешті, починаєте відчувати себе так, як знаєте свій шлях навколо себе, ви натрапляєте на щось, що абсолютно розбиває ваш мозок і змушує відчувати себе новачком рангів. Це те, що ми любимо в цій роботі, завжди є чому нового навчитися.