Привет, Новерь!
В общем, я столкнулся с такой проблемой, что не знаю, как правильно подойти к изучению программирования… Оно для меня кажется магией!
Да, у меня получается что-то там писать на макросах Excel'я (VBA), писать простенькие программки в Delphi 7 или Lazarus, да HTML + CSS (на уровне "всё вкривь и вкось"). Великий и могучий C++ я знаю лишь на уровне решения задач по математике… Пробовал учить Python, Lua, JavaScript, php, но дальше тех же задачек по математике вроде решения квадратных уравнений я не продвинулся. Впрочем, для Ren'Py достаточно знать Python и на таком уровне. Lua мне нужен для того, чтобы играть в Minecraft с модами OpenComputers и ComputerCraft, где для базовых вещей тоже не требуется какого-то серьёзного уровня. В SQL вообще знаю лишь четыер команды: INSERT, UPDATE, DELETE, SELECT.
Да, вот тут мне и пршило в голову, что, наверное, поступаю как-то неправильно, а именно — программирование кажется магией! Я совершенно не разбираюсь, что там делает тот же Delphi на более глубоком уровне, когда выставляются объекты на форме, либо подключается дополнительная библиотека — её устройство тоже загадка для меня.
Как мне кажется, программист с таким подходом к искусству повелевания ЭВМ ничем не отличается от глупого сотрудника офиса, что не может найти нужную ему функцию в MS Word. Ибо, что для тех же Java-программистов, что для типичного юзера, работа за компьютером, равно как и работа самого компьютера, является магией.
Вот как, например, происходит отрисовка 3D-изображения на мониторе? Да, подключается графическая библиотека, а дальше что? Вот именно.
Как вообще устроена операционная система?
Как работает Интернет?
Как антивирусное ПО анализирует код программы?
Да, для усвоения всего о компьютерах банально не хватит жизни, но хотя бы на базовом уровне иметь представления всё же следует. Как, например, физики знают о смежных областях, но более углублены в свою.
Кстати, о физике.
Работы железа для меня — тоже магия. От лекций в колледже по архитектуре ЭВМ вопросов стало лишь больше…
Да, в том же Minecraft простенькие сумматоры можно построить, чтобы немного понять, но как устроены современные процессоры общего назначения? Понимаю, что разница тут такая же, как между одноклеточным организмом и многоклеточным.
Получается, что ради упрощения понимания человек создаёт абстракции, но эти же абстракции мешают усвоить более глубинный уровень.
Проблема в том, что, устав на учёбе, я не могу читать что-либо серьёзное…
А зачем нужно знать, что происходит "под капотом" у компьютера?
Во-первых, интересно.
Во-вторых, это самая настоящая власть в её чистом виде: бесприкословное, при соблюдении некоторых условий, выполнение человческих приказов машиной. Вот именно для этого, чтобы знать, что же там нагородил компилятор с моими командами, и нужно хотя бы немного мочь в low level.
Да, являясь, как выразилась одна из девчонок, с которой я пытался подружиться, "чмошником без дурзей", с помощью программирования я могу иметь власть над машинами, пусть и она имеет для меня, при текущем уровне знаний, магическую природу. При этом я могу приносить пользу людям, создавая полезные программы.
Хотя, как мне каежтся, все полезные программы уже давно созданы, появилось большое количество их аналогов…
Но власть над ЭВМ. Самая настоящая власть — что может быть лучше?