Ответ на пост «Советы тем, кто реально хочет стать программистом»
Обучение бывает разным. Мне попадали книги уровня "профессор написал напоминалку для себя", "максимально заумное написание" и т.д. Уж лучше на паровозиках рассказывали бы...
Но самая серьезная беда, которая встречалась -- это бессвязные разделы и разрозненные проекты. Такое и в школе часто происходит.
Приведу пример с математикой.
Начнем с таблицы умножения. Внезапно, очень многие путают ее с примерами умножения.
2х2=4
2х3=6
и т.д. - это примеры умножения, а не сама таблица. Даже поисковик выдает часть выдачи в виде примеров.
Таблица умножения:
По горизонтали -- ось Х, по вертикали -- ось Y
Сделать ось Y вверх и получим, внезапно, сразу геометрию, оси координат, а в клетках -- площади фигур.
Но этого нет, все дается разрозненно с надеждой, что у учащихся где-то в голове должно перемкнуть и чтобы сложилась картина из отдельных паззлов, которые еще и обрезаны неровно, из-за чего будут гарантированно дыры в общей картине мира...
В программировании еще хуже -- обучают обычно с помощью говнокода...
Магические константы, всезнающая функция, самая навороченная функция, жесткие связи между функциями, классы ради классов, класть болт на тесты, бизнес-логика в функции вывода и прочее.
Самое элементарное -- организация библиотеки для повторного использования кода в книгах проходится поверхностно. Хотя что мешает авторам книги функции своих программ вынести в библиотеку, попутно рассказав как ее можно оформить.
В университете я видел и такой ущербный подход -- написав программу 1, нужно ее исправить и написать программу 2 в том же файле! Попутно удалив часть кода, а, значит, часть информации, комментарии и т.д. И все, данные утеряны. Самое элементарное решение -- скопировать файл и уже в копии менять. Или как раз самое время познакомиться с системами управления версиями, только локальными, ибо интернет не везде есть, внезапно. Особенно в 2022 году, когда часть сайтов в лучшем случае доступны через VPN. В худшем -- недоступны, ибо умерли, перенесены или по подписке, которую фиг оплатишь из России, не говоря уже о блокировке российских аккаунтов ради "свободы слова". В 2021 году это сложнее было объяснить многим программистам, которые зациклены на том, что все интернет-ресурсы всегда будут доступны, наивные. Видимо, за МКАД не выезжали.
В идеале -- пилить какую-то одну систему в рамках цикла уроков, причем эту систему можно использовать в других проектах как пакет/библиотеку. Увы, но такой подход не встречается, поэтому у многих до сих пор актуально велосипедописание.
UPD. пилил автоустановщик веб-фреймворка, особенно редактирование проекта. Пусть даже установка происходит стандартными средствами. Пока что не видел как можно поменять параметры констант в скрипте из другого скрипта, чтобы значения сохранились. Касается PHP и Python. Т.е. какой-нибудь файл config.php уже лежит на диске и в нем нужно через мою программу поменять константы. Структура файла задана фреймворком, который его и сгенерировал.