Найти - Пользователи
Полная версия: Ссылка на атрибут класса через переменную
Начало » Python для новичков » Ссылка на атрибут класса через переменную
1 2
py.user.next
Rodegast
Книга достаточно понятная и UML-а там практически нет.
Пятая глава вся про UML. Там описывается, как применять UML. То есть UML ты уже должен знать к тому времени. А UML выучивается из книжек про UML. UML выучить несложно - это как выучить ручку для письма, вот только что им записывать, так и остаётся неизвестным, и вот эта книжка Буча учит этому. А UML нужен кому как инструмент? UML нужен опытному, никак не новичку с его кусочками кодов, где он только циклы пытается понять и как что-то там вывести на экран с повторами. Так что новичку нужна книжка по питону типа Лутца, в которой описаны возможности языковых конструкций, чтобы просто начать изучение этого всего.

Сначала выучить язык, потом писать коды на нём, потом двигаться дальше, делать задачки разные, потом двигаться уже дальше к первым программкам. И вот так за несколько лет прийти к тому, что нужно что-то понимать в архитектуре программ и так прийти к ООП, SOLID, GoF-шаблонам, к UML и выучить его. А потом уже понять, что ничего из этого не даёт построить эффективную и умную программу (это у него уже должны быть свои программы разные сделаны) и таким образом прийти уже к анализу и проектированию - это уже изучение разных архитектур программ. И вот там будет книжка Гради Буча.

А если он начнёт с космоса изучать, как сделать кирпич, то, естественно, он будет всё время спрашивать “а где кирпич? почему мне про кирпич ничего не пишут? пишут про какие-то атомы в космосе и гравитацию”.
Rodegast
> Пятая глава вся про UML

Вот пусть хотя бы первую часть прочитает, это уже не мало. А писать коды не понимая саму парадигму это не программирование, а какой то карго-культ.
py.user.next
Rodegast
А писать коды не понимая саму парадигму это не программирование
Так все так начинают. Это первое, что надо сделать, чтобы понять, что программы не пишутся сами и что помощи нет никакой и ниоткуда их готовые скачать нельзя. Ну что если код не получается, то ты так и будешь сидеть и никто не придёт его и не напишет. Всё это надо проходить. Это путь для всех.
Rodegast
> Так все так начинают. ….. Это путь для всех.

Начинают, потом к этому привыкают и даже не знают что можно по другому. А потом приходится сталкиваться с тем что почти на всех проектах творится “ад и израиль”.
py.user.next
Rodegast
Начинают, потом к этому привыкают и даже не знают что можно по другому.
Есть пути обучения. Старый путь и новый путь. Новый путь - это путь в стиле “а давайте начнём обучение сразу с ООП, чтобы мозги изначально становились ООПшными и придерживались правильного мышления”. Так вот и учат. Потом оказывается, что этот ООПшный новичок не знает, как починить старую сломавшуюся функцию, которых очень много в существующих системах. Не умеет границы массивов проверять, потому что не делал коды классических квадратных сортировок. Они как бы ни для чего не нужны, но в них как раз и вырабатываются навыки проверки границ массивов. В общем, там таких навыков всяких малозаметных, но базовых, от которых всё зависит в итоге, - вагон и маленькая тележка. А вырабатываются они как раз в классическом способе.

Я вот вчера хотел с YouTube скачать интервью, а YouTube говорит “а вы в аккаунт зайдите в свой”. Какой аккаунт? Я его всегда без аккаунтов смотрю. Открываю браузер - то же самое. Ну придумали тупость, чтобы с них не качали видео, а заходили в аккаунты и смотрели через браузер. Первым делом надо было понять, как смотреть видео без аккаунта. Есть браузерные расширения. С расширением показывает без входа в аккаунт. Окей. А как скачать? Нашёл способ, что можно заходить в печенье браузера и им пользоваться. То есть это берётся печенье браузера и подаётся в YouTube, как будто это браузер качает. Попробовал - о! работает. Ну и дальше мне нужно было в свою программу добавить эту опцию взятия печенья. Я просто в файл настроек своей программы вставил эту опцию в команду загрузчика. И всё, и загрузка пошла.

Я это как вообще сделал? Ну, во-первых, я свою программу написал по правилам структурного программирования. Соответственно, в той школе учат чему? Тому, что подпрограмма должна быть со слабым предусловием и сильным постусловием. Она должна быть общего вида, чтобы она подходила для большого множества исходных условий, и чтобы она давала всегда точный и недвусмысленный результат. Вот из-за этого я загрузчик файлов в своей программе вынес в параметр, а не зашил его внутрь программы в виде такого классного загрузчика. А параметр этот потом я вынес в конфигурационный файл, к которому всегда имею доступ как пользователь программы. Это к ООП не относится. Это базовые вещи из предыдущих парадигм. Почему я и против второго пути обучения, хотя на вид он кажется таким правильным и классным, потому что якобы все будут такими чистыми и ООПшными с самого начала и очень быстро научатся ООПшно писать. На деле оказывается, что чаще нужно простой алгоритм составить правильный, а в ООП этому не учат, это не его область.

Поэтому новичок такой будет сидеть и знать, как наследовать собак, но не сможет ничего на YouTube посмотреть, потому что там его не пускают, а думать алгоритмически он не умеет.

А рекурсия? Думаешь, он узнает про неё из космоса? В ООПшных материалах ему будут давать рекурсивные задачки, чтобы у него мозги осознали, как раскручивается стек? Нет, в том-то и дело. Поэтому он будет думать об объектах, но не знать, как дерево рекурсивно обойти, дерево директорий, например, чтобы файлы прочистить или переконвертировать на всех уровнях там.
Я все фракталы делал, ООП там нет даже близко. Папоротник Барнсли, снежинку Коха, ну и так далее. Они как бы не нужны, но зато потом, когда в какой-нибудь задаче нужно проанализировать аргументы командной строки с параметрами, где параметры могут содержать параметры параметров, это всё сразу вспоминается и задействуется. И ты реально раз и решил задачу какую-то на лету, тебе не надо сначала учиться делать рекурсию.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB