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

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

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

1. Последовательный глубокий разбор ООП и задание 1.

-

Курс рекомендуется делать основательно на каждый раздел брать неделю.

Курс делается в виде направляющих вопросов, основные моменты, где это необходимо будет записано видео или код или пояснение.

Так как основная задача курса глубокое изучения ООП с результатом чтения и умения писать профессиональный код

Рекомендуется посмотреть вот эти уроки в бесплатном доступе:

Пишите такой крутой код Python и будете крутым программистом. Цели. Так как в школе изучаем ООП по моему методу, давайте посмотрим на ООП к которому стоит стремится и как метод изучения ООП в контексте смысла и без смысла(просто делая нечто). Задачи наши. Увидим крутой код Python к которому нужно стремится.

Немного заинтригую.

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

В Пайтон классы имеют полностью независимую структуру.

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

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

Важно научится видеть разницу, иногда она очень маленькая, но кардинально влияет на результат.

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

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

Например,  class и экземпляр, вроде одно и то же но по крайне мере логически:

Это понимание должно быть ясно выражено в коде  и пониматься так и только так, то есть добиться того, что бы при взгляде был однозначный ответ это ссылка на объект, или это объект или это объект-экземпляр и т.д.

Пример:

class MyClass:
    """A simple example class"""
    i = 12345

def f(self):
        return 'hello world'

x = MyClass()

# x.f()точно эквивалентно MyClass.f(x)

MyClass.f(x) # вот он self в работе

# В данном случае self передал наш экземпляр, потому что ранее мы так его назвали x = MyClass()
                        # так не нужно писать, но это важно понимать.

MyClass.f(x) # вот он self в работе

'hello world'


x.f()

'hello world'


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

# все атрибуты класса, функциональные объекты (не функции)
# определяют методы экземпляров.
x.f # что это? Это ссылка на объект.
Myclass.f # что это? Это функция, реализовано выше.НО это только пример,но не функция, а только для понимания, поэтому и было сказано функциональный объект, то есть по типу функции, но не функция и то только для понимания, но называться далее будет методом или правильно объект-метод

x.f не то же самое, что Myclass.f - это объект метода (функцию брали для примера)
 и так

x.f это метод-ссылка

Myclass.f - объект метода.

А это что?

x.f() ???????????????????????

Вопросов больше чем достаточно.

А теперь задаём себе вопрос, когда мы просматриваем код,
мы чётко понимаем что перед нами и отталкиваемся именно от этого?
то-то. Есть что изучать и зачем изучать.



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



Основное требование при работе с классами, твёрдое понимание функций и работы параметров функций и исключений и уверенное применение.

Нам нужно сосредоточится на отличиях, иногда очень незначительных, но возвращающих иные результаты.

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


Думаю это основная проблема.

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



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



Так что ребята все получится соображайте и исправляйте недочёты. все точно получится.




Сообщение 2:

Конечно возникнут вопросы, а что делать тому, кто например не знает функции.

Лучше следовать рекомендациям, я не отслеживаю, как и что кто делает. Дело личное.

Но все же, если хотим рассчитывать на результат.

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

Просто сейчас работаю над минимальными требованиями, их не много, но они ключевые.

например, как, понять метод, если мы не понимаем функцию, функция должна быть изучена заранее или хотя бы первее, так как, если смотреть предыдущее сообщение,

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

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

будет работать по тем же законам, что и функции один к одному.

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

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

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

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

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

class Bag:

def __init__(self):

self.data = []

def add(self, x): # как работает функция должно быть твёрдо понятно.

self.data.append(x) # то над чем нужно работать

Практический совет.

Сначала прочтите сообщение Дениса. Обратите внимание на следующее его пояснение,

  1. Если сначала обучения было вообще мне нихрена не понятно, долгое время..
    - То сейчас обучение идёт в той же прогрессии, я могу использовать какие то начальные знания, но они мои..
    У вас может быть меньше опыта, он то нарыл себе с три короба, только не знал. что с этим делать.
    Совет прочитаете после сообщения Дениса(keplerde)



Сообщение Дениса.

Всем привет! Брал отпуск на неделю, нужно возвращаться в строй )) Немного мыслей выложу..
1. Думаю что 20 лет назад обучение программированию проходило иначе, за недостатком информации.
- Сейчас же всё растёт с того момента в геометрической прогрессии... И стало столько информации, что её тупо нужно уметь отсеивать и выделять главное..
2. Если сначала обучения было вообще мне нихрена не понятно, долгое время..
- То сейчас обучение идёт в той же прогрессии, я могу использовать какие то начальные знания, но они мои..
- Дело в том чтобы достичь конкретного результата за короткое время нужно определиться конкретно, "Я хочу писать веб-сайты бэкенд или вместе с фронтом", или быть "Дата аналитиком",  или "Кроссплатформенные приложения"
... у меня цель еще немного плавает, я там попишу, там посмотрю, то поделаю ) порадовался результату, бросил пошёл дальше) этот путь явно занимает много времени
- Для этого всего нужно время. Для качественного обучения нужна база. 
.3. Я пришёл в школу действительно с кусками кода в голове, Валерий помог это всё объединить за пару месяцев. 
.- И даже с этими началами знаний я брожу в сети и разбираю микро приложения и извлекаю на этом этапе опыт, чужие , свои, неважно) 
.- Также посмотрел уроков 20 Валерия, по джанго, собрал в кучу MVT, знаю по взгляду 70-80% ошибок.. что значительно экономит время,
для сравнения год назад та ошибка, что занимала у меня 4 часа времени, сейчас это минута или десять.. ну короче и это я еще не разбирался с классами,
так могу точечно загуглить прикинуть..
!!! Реально облегчает работу, когда ты знаешь как должен выглядеть код на выходе, какой результат ты должен получить, и тут уже как в математике
если знаешь одну переменную и то с помощью имеющихся инструментов ты воссоздаёшь код, да это не быстро, но это работает.
Нужно решать задачи, всё пригодится, всём Удачи! Спасибо Валерию!



Совет.
    Приведите в порядок функции.
       1. Чтение параметров на лету.
        2. Вызов и применение параметров.
       3. Исключения связанные с параметрами (они самые часты при работе с любыми продуктами).
            Само изучение должно идти через исключения.

Если мы изучаем матераил и у нас одно исключение, ставьте смело себе 1-

бесполезно потратили время.
      4. Загляните в функции блокчейн(solidity), там очень много параметров добавляется и самое главное там код имеет реальную цену, вы сразу задумаетесь над кодом в любом другом языке.

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

   Все остальное f/else try/exsept можно изучить в любое время.

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


Чем отличается наша школа от других школ? В большинстве школ от тарабанят материал за определённое время. Но ведь сам изучающий человек себе почему то придумал, если я пройду курсы -  я программист и дальнейшие выводы....но ведь получается совсем не так?


У нас другой подход.
Кто учится, и хочет писать, точно пишут код.


Но у нас не практикуется перекладывание ответственности за результат на школу.


Школа выступает в роли проводника к реализации мечты писать код профессионально.


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


Во- первых поэтапно, сначала нужно научится читать код, потом писать.


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


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


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


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


Бовсуновский не выступает, для вас учителем, какой код писать. Я сосредотачиваю внимание на том, что бы научить вас понять исходный код популярных, профессиональных

библиотек, именно там Вы будете учится писать настоящий код и оттуда брать для себя шаблоны, я помогу научится его понимать.


Если кто-то думает, что сел Бовсуновский и придумал такой способ обучения. Конечно нет. Это результат работы, а уже 15-ый год.


У нас в школе за вами никто не гонится, важно понять что делать и делать можно спокойно.


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


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


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



Все получится?

Перейти к уроку

2. Второй шаг в изучении классов Питон, язык кричит, а мы не слышим.

Денис, вот конец этой недели и седеющую всю неделю думай над этим.

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

Все в видео.

Несколько видео будут бесплатные - остальные будут обзоры на ютубе, хочется что бы увидели ребята, которые застряли,

  1. Второй шаг в изучении классов Питон, язык кричит, а мы не слышим.

https://www.youtube.com/watch?v=W-xyHrtKmIU

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

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

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

Ребята не спите. а ноги в руки и идём делать за Денисом, легче делать в процессе. чем потом.

Рекомендация: Денис, отнеситесь к этому короткому видео очень серьёзно - это ваше будущее в классах, мало составить план, который мы будем потом править, обратите внимание я ещё определил, что ваш план должен вести к конкретным целям. Поэтому составьте, отложите на день, потом снова посмотрите и точно что-то измените, потом опять отложите на день, потом опять точно что-то измените, а потом уже присылайте. желательно с минимальными хотя бы выкладками кода.

P.S. Любой участник школы может выполнить задание и прислать, время на выполнение не ограничено.

Перейти к уроку

3. 100 % новичков делают ЭТУ ОШИБКУ, при изучении ООП Python. Как результат - не пишут.







Данное видео о атрибутах Пайтон будет полезно и новичкам и опытным разработчикам.

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

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

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

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

Конечно в этом видео есть знания, когда люди ищут ответ на вопрос, когда же я стану программистом, что для этого нужно?

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

Перейти к уроку