№1 Практическая онлайн-школа обучения языкам программирования Python (Django), JavaScript, Kotlin В. Бовсуновского.

Специальная, подарочная акция получения доступа к Django4!

Как, я, начал код писать в Python? Смотрите, если уперлись и ничего не получается.

  

дата публикации: 28 июня 2021 г.


Поздравляю вы сейчас в настоящем программировании, как исследователь, где все познается на личном оп

Андрей, пока вы не осознаете всей важности этой темы.

Но со временем, вы поймёте, что разбираясь с абстракцией равносильно разобраться ООП.

Сейчас вы разбираетесь в способе мышления ООП, как видите он очень точен.

Ведь разобраться с абстракцией - это и == писать что думаешь, только в коде.

Пока в вашей голове общие фразы, а я хочу. что бы вы мыслили конкретными задачами дом, магазин, город, улица, предприятие.

Я могу точно сказать что будет дальше, если не оставите. Далее вас заинтересует вопрос организации кода, мы с вами его уже начали ставить.

В большинстве своём на курсах учат техническим моментам, вот это наследование, вот это абстрактный класс, только вставить в мозгах эти знания некуда.

На самом деле нужно понимать абстракцию и её виду и главное отличать интерфейсы от абстрактных классов, этот никак не связано с конкретным языком, это связано с тем, что бы понять это и начать видеть в жизни.

когда в голове будет пониматься организация кода, вы к ней придёте

Interface

   |

   |

Class Abctract (добавляем если хотим миксины, как множественное наследование)

  |

  |

@добавляем если нужно декораторы

Custom Class (добавляем если хотим миксины, как множественное наследование)

Это понимание - есть ничто иное, как почва, куда легко уже без вашего участия будут вставляться наследование, полиморфизм и др.

Так как будут пониматься и вы будете точно знать ответ на вопрос Зачем. а не как.

При этом это понимание на картинке и есть способ размышления над кодом.

А способ реализации это уже методы, а откуда растут методы с функций.

-------------------------------------------------------------------------

Если пока не понятно, ничего страшного, просто не останавливайтесь. Всему своё время.

Я лишь хотел объяснить одну важную деталь.

То как построены большинство курсов где под понимаем классов имеют в виду наследование, это не верный подход.

Представьте себе участок земли, где вы будете делать грядки и представьте себе, что вы никогда не видели грядок.

Когда в питон на курсах учат наследование и понимают это, как способ мышления, ничего не получается, ведь если я вам покажу лопату и скажу. что лопатой можно копать, то навряд ли вы будете хорошим дачником.

А вот если я вам расскажу, как выращивать клубнику и как один из главных элементов расскажу. что такое грядка и какая должна быть земля, то лопата для вас станет инструментом, а не объектом изучения.

Так вот рассуждая ооп, как о наследовании и прочем. Вы просто изучаем лопату, а когда разбираемся с интерфейсами и абстрактными классами, то мы говорим о грядках.

Тогда мы говорим уже об организации огорода (или в программировании кода).

Суть в том, что бы понять что такое грядки, не нужно быть дачником и что бы понять чем отличается интерфейс от абстрактного класса не нужно знать никакой язык программирования.

Но вот, когда мы поймём все же что это такое, то у нас оказывается начинает прорастать понимание, что код оказывается можно организовать в зависимости от задачи.

А вот уже сама реализация уже страиваться по надобности.

Вообще то это направление уже давно изучено и это явление называется поттерны, то есть шаблоны проектирования кода они же являются и шаблонами мышления над кодом (чем мы с вами и занимаемся) в стиле ооп они же являются в свою очередь способом организации кода, и они же являются самой почвой куда мы встраиваем ооп, но тогда оно иммеет в голове место (то есть почву) и понимание зачем в зависимости от задачи.

Тогда у нас появляется место в голове куда можно поместить наследование, как способ реализации кода. А что делают в школах программирования преподносят. не как способ, а как часть мышления.

P.S. Если вы заметили, то в школе большое внимание уделяется функциям, все верно - это чисто технический способ реализации кода. Здесть все очевидно. Изучил функции, в кармане имеем сразу же классы и сами классы (работа и исключения), так же работают по шаблонам функций.

P.S. 2

Сейчас будет немного сложно, это приходит намного позже.

Программист начиная изучать программирование сталкивается с проблемами.

Вы что думаете я зря разместил это домашнее задание, которое вы выполняете, я разместил целенаправленно, если один сделает, то другие обратят внимание.

  1. Человек начинает изучать с типов данных - этот подход в никуда, потом провал в несколько лет и уход многих из языков. Куда можно встроить тип данных строка в мозгах ученика, никуда. А вот в функцию строку можно встроить.
  2. Человек начинает изучать с функций - это верный подход, но может стать проблемой.

Как? Человек погружается в мир реализации и ему легко понятно, как работает функция, как работает класс, как работает метод. Но опасность поджидает дальше. Программист погружается в функции все больше и больше о них узнавая и со временем учится весь язык пропустить через функцию, ведь в функцию (это джействие) встраивается все в языке. Изучать функции рано == писать.

Опасность поджидает чуть далее. Программист работает в пределах конструкции и ему очень понятно, как собрать в список, что то извлечь, но вот вопрос, как все это применить остаётся белым пятном.

На самом деле преподаватель должен своевременно направить внимание ученика в верное русло. То есть сделать то, что мы делам с вами. Начать изучать вопросы организации кода, которые равны способу мышления.

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

Этому у нас в школе посвящен раздел разработка (делать уроки по мере выхода)

И когда преподаватель направляет внимание ученика на проектирование или организацию кода, а если ещё точнее формирование понятий организации кода, то мышление сразу появляется, оно ни откуда не приходит оно просто появляется, так как каждый программист до этого пользовался и абстрактными классами в жизни и интерфейсами, он просто осознает и говорит себе...ага.... вот когда я хочу описать целое предприятие, то я начну с интерфейса, что бы все объединить в завод, потом абстрактными классами опишу направления и конкретными цеха.

Что происходит в этот момент, верно обучаемый выходит за пределы кода и начинает размышлять построением кода, а в это время у него уже есть опыт по реализации кода в функциях, ну что ж ему остаётся изучить понятия, такие как наследование и так далее, и реализовать это при помощи тех методов, которые он знает.

Тогда все складывается в единую картину.

В современном мире часть задачи взяли на себя фреймворки, но им нельзя доверять полностью, свое мышление, ведь это уже продуманная задача, то есть я хочу сказать, что работая с каким то определённым фреймвокрм стать программистом нельзя, можно стать любителем.

А программист рождается вот так как мы с вами путем тяжелых размышлений, кучей сомнений и тыканий, но приходит тот момент, который нельзя перепутать ни с чем, бац и все проявилось, все понятно.

То есть рождение программиста это и есть работа в нескольких направлениях по минимуму техническая сторона реализации языка, как мы начали с функций, понимание проектирования, которое не относится ни к одному языку конкретно, а так же изучение нескольких языков, сильно пробивает мозги.

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

ПРосто нужно немного времени, когда придёт осмысление того о чём я писал, все станет на места, а до этого просто не нужно останавливаться.

------------------------------------

Интерфе́йс (англ. interface) — программная/синтаксическая структура, определяющая отношение между объектами, которые разделяют определённое поведенческое множество и не связаны никак иначе. При проектировании классов, разработка интерфейса тождественна разработке спецификации (множества методов, которые каждый класс, использующий интерфейс, должен реализовывать).

Прочтите фразу

которые разделяют определённое поведенческое множество и не связаны никак иначе.

Я же не зря у вас спрашивал, как будут взаимодействовать вилка и плед?

А теперь гляньте на свой код.

camolet.png

И задайте себе вопрос можете ли вы описать, так все самолёты мира или историю самолетов, таким образом.

В вашем случаем максимально все известно и можно было использовать обычный класс.

А я вам задам вопрос, а как же тогда описать все летальные объекты мира, не только самолёты, но это нло, шары летающие, квадракоптеры и все что летает, с вашим подходом нынешним можно?

А ведь можно и в одном коде, если понимаете разницу между абстрактным классом и интерфейсов и понимаете где чему место.

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





Вcе записи подраздела.


Сейчас вы проходите урок:
Поздравляю вы сейчас в настоящем программировании, как исследователь, где все познается на личном оп

<< Назад  |  Далее >>


Все уроки с тегом:  интерфейс питон