К списку категорий

  •   Python/Kotlin. Как научиться разработке в программировании по системе В. Бовсуновского.




  •   Описание

    Видно пора рассказать мой план обучения практическому программированию, а точнее обучению разработке на профессиональном уровне.
    С целью выйти на уровень профессионалов высшего пилотажа в программировании.
     
    Мой план обучения рассчитан на несколько лет. с учётом. что обучающийся уже имеет навыки:
    Владеет питон на начальном уровне не менее.
    Владеет котлин на начальном уровне
    написаны первые приложения на Джанго
    написаны первые мобильные приложения.
     
    Если этих навыков нет, не беда. В школе есть обучение с нуля и развитие до среднего уровня.
    Что я понимаю под средним уровнем.
    Обучаемый владеет без справки или со справкой, главное уверенно:
    типами данных питон и котлин.
    ООП.
    Может написать блог на Джанго.
    Может использовать некоторые библиотеки питон.
    Может писать простой код на котлин.
    Можно дальше перечислять но суть понятна.
    Человек не смотрит на язык, как с луны свалился.
     

    Что посмотртеть:

    (Python3).Ваш план и ответ на вопрос, а как собственно изучать язык программирования.

    https://www.youtube.com/watch?v=R6RO8UKspZY

    Быстрое и правильное освоение Python от нуля до разработки.

    https://www.youtube.com/watch?v=lxc6J3hkS4g&t=2709s

    Становление программиста - система обучения. (ссылка в описании)

    https://www.youtube.com/watch?v=ltcLEFQ_vd4&t=21s

    3. Подготовка разработчика ПО. Что первично понимание кода или навык?

    https://www.youtube.com/watch?v=Br4_muO_3R8&t=1216s

    А новым кто ещё не в школе:

    Что делать? С чего начать?
    Для начала нужно начать изучать два языка:
    Питон:
    https://spb-tut.ru/info/action/


    Котлин:
    http://kotlinlang.spb-tut.ru/buy/account/

     


      Статья

    Видно пора рассказать мой план обучения практическому программированию, а точнее обучению разработке на профессиональном уровне.
    С целью выйти на уровень профессионалов высшего пилотажа в программировании.
     
    Мой план обучения рассчитан на несколько лет. с учётом. что обучающийся уже имеет навыки:
    Владеет питон на начальном уровне не менее.
    Владеет котлин на начальном уровне
    написаны первые приложения на Джанго
    написаны первые мобильные приложения.
     
    Если этих навыков нет не беда. В школе есть обучение с нуля и развитие до среднего уровня.
    Что я понимаю под средним уровнем.
    Обучаемый владеет без справки или со справкой, главное уверенно:
    типами данных питон и котлин.
    ООП.
    Может написать блог на Джанго.
    Может использовать некоторые библиотеки питон.
    Может писать простой код на котлин.
    Можно дальше перечислять но суть понятна.
    Человек не смотрит на язык, как с луны свалился.
     
    Что посмотртеть:

    (Python3).Ваш план и ответ на вопрос, а как собственно изучать язык программирования.

    https://www.youtube.com/watch?v=R6RO8UKspZY

    Быстрое и правильное освоение Python от нуля до разработки.

    https://www.youtube.com/watch?v=lxc6J3hkS4g&t=2709s

    Становление программиста - система обучения. (ссылка в описании)

    https://www.youtube.com/watch?v=ltcLEFQ_vd4&t=21s

    3. Подготовка разработчика ПО. Что первично понимание кода или навык?

    https://www.youtube.com/watch?v=Br4_muO_3R8&t=1216s

    А новым кто ещё не в школе:

    Что делать? С чего начать?
    Для начала нужно начать изучать два языка:
    Питон:
    https://spb-tut.ru/info/action/


    Котлин:
    http://kotlinlang.spb-tut.ru/buy/account/
     
     
     
    Читать в каждой строке этого сообщения бесценная информация, как стать профессионалом.
    Теперь этот курс реально идёт в школе.
     
    Спасибо огромное Сергею Осадчему и Игорю Гресько.
    (Игорь надеюсь сделает домашнее задание и учёт ошибки с видео).
     
    Итак, вижу с интерфейсами разобрались.
    Остался последний штрих. Прежде чем двигаться дальше.
     
    Теперь нужно очень конкретно назвать свод правил, где используется интерфейс в Питон.
     
    Так как, в питон есть утиная типизация и множественное наследование, то сам по себе интерфейс здесь не предусмотрен.
     
    Все же без него не обойтись профессионалу.
    Процентов 80 программистов их никогда не буду использовать, но и писать хорошие продукты тоже не будут.
     
    Почему? Не будут использовать?
     
    Потому что интерфейс использует программист профи, который точно знает, что он ему нужен.
     
    Я ребята от вас требую, именно требую назвать ситуации. когда интерфейс вам точно нужен.
    Только прошу не горячится, а подумать.
    Не нужно выпаливать вершки, хотелось бы увидеть дельное.
     
    Мой замысел.
     
    Вот примерный замысел, который мы все начали воплощать в жизнь.
    Результат становления профи 100% (к сожалению больше просто не бывает, чем сто).
    То есть результат гарантированный.
     
     
    К нему я пришёл примерно в 2017 году.
    Ио есть после 8 лет работы с языками.
    очень много времени провожу над проверкой, всё работает.
     
    План очень прост, насыщен и полностью практический.
     

    Обратите внимание разделение этапа очень условно, так как обучение идёт полным блоком и одни этапы включаются в другие постоянно, так достигается полное понимание.
     
    1. Изучить на чистой практике базовые структуры (а так же отношения между объектами) именно с точки зрения практического применения.
     
    Программист в любой момент времени должен контролировать на 100%
    объект, тип, класс, экземпляр
     
    Пример.
    class
    type
    метод, статический метод, метод класса, мультиметоды
    Наследование, множественное наследование
    Порядок разрешения доступа к методом и полям
    Конструктор
    Деструктор
    Инициализатор
    interface
    mixin
    @decorator
    Мета класс
    Время жизни объекта
    Инкапсуляция и доступ к свойствам
    Полиморфизм
    Переопределение встроенных типов
    Создание собственных типов
    Абстракция
    Агрегация
    Ассоциация и слабые ссылки
    Контейнеры
    Итераторы
    и т.д.
     
    Их не так уж много.
    Важно. Каждая структура должна быть прописана десятки раз в разных вариантах, до полного чёткого понимания назначения её использования.
    Иными словами, код должен быть написан как Сергей написал последний, где нет тени сомнения, что он делает.
    https://groups.google.com/d/msg/spb-tut/KY4h_l0zPZk/5cFxq-ghBgAJ
     
    Это и есть база.
     
    на самом деле база очень не большая.
     
    Вы ребята видели, как в течение двух месяцев Сергей Осадчий написал сотни строк кода.
    Если вы помните он даже не знал с чего начать.
    Но на сегодня уверенно пишет интерфейсы.
    Дальше пойдёт проще и проще, так как этот план даст настройку и понимание зачем все делать.
     
    Требования (под требованием понимается. что программист от себя обязан требовать следующего понимания)
    Любое отступление от правил, даст пробел и на много понизит результат.
     
    Пояснение.
    В тексте далее применяется слово обязан.
    В школе нет требований и проверки учеников вообще и не будет.
    Поэтому понятие обязан программист должен применять к себе, как обязательство к самому себе, иными словами решить будет он профи или нет.
    Если принято решение. что хоть кол на голове чеши, а профи буду, значит изучаем все в полном объеме и требуем от себя полного понимания, делаем как Осадчий, сотни строк кода по одной теме.
     
    Примечание. Помните, что в школе есть место для каждого.
    Кому-то достаточно понимать поверхностно. Его выбор. Хорошо.
    Кто то просто хочет быть среди людей. которые учатся программировать. Хорошо.
    Кому то достаточно знаний, для того, что бы написать какой то проект. Хорошо.
     
    Важно понимать - что вы сами выбираете. как взаимодействовать со школой.
    В школе есть такая традиция.
    Участник. который регулярно участвует в группе и пишет весь код в группе, выполняет все домашние задания и задания, которые даются, таких людей я направляю лично.
    Как это происходит?
    Я указываю, что рекомендуется сейчас изучить, понять, в чём разобраться. что подтянуть.
    Это даёт участнику большее понимание.
    По сути получается человек занимается с репетитором.
    Теперь по цене. Он платит, как все небольшие деньги. К примеру один час в Беларуси занятий стоит в эквиваленте ОТ 20 долларов.
    Посчитайте сколько нужно было бы заплатить участнику, например за 2 года. Очень много.
    Зачем это делается? Так как участники,  которые меньше времени уделяют коду по тем или иным причинам смогут прочитать и проделать, то есть польза всем.
    Этим и отличается наша школа от любых других заведений. Ученик занимается в удобное время и пока не поймёт, ни на одних курсах такого не бывает.
    Поэтому в школе пишут все. Абсолютно все. кто хочет.
     
     
     
     
     
    На выходе после первого этапа:
    Программист обязан требовать от себя видеть конструкции в коде и считывать на подсознательном уровне.
    Программист обязан от себя требовать чётко знать на уровне подсознания, где и как применяются конструкции и для чего.
    Программист обязан от себя требовать видеть работу конструкции, как пласт кода, её роль в общей задаче кода,
    программист обязан от себя требовать переписывать код, если конструкция выбрана не верно.
     
    Программист обязан быстро и чётко объяснить почему он применяет ту или иную конструкцию.
    Программист обязан уметь поставить вопросы к конструкции и методам на предмет, полностью ли выполнена задача на данном отрезке кода?
    Есть ли в коде излишний код, который не несёт полезной работы и излишен и переписать.
    Не выполняет ли код лишних действий и лишних операций, если выполняет то переписать.
    данный код является оптимальным вариантом по скорости и безопасности, правильно ли выбран тип данных, в ином случае переписать.
     
    Подведём итог первого этапа.
    Участник должен знать конструкции и для чего она применяется.
    Понимать зачем и где он будет её применять.
    Понимать конфигурацию конструкции.
    Эти знания должны быть на подсознательном уровне, достигается осознанным написанием сотен строк кода в течение периода времени с
    постоянной постановкой одних и тех те вопросов. Сразу должен видеть конструкцию в любом коде.
    Это мы и называем базой, без которой нельзя научится разрабатывать.
     
     
    Примечание. В школе обучение с нуля.
    Иными словами школа построена в три больших этапа от простого к сложному.
    1. Обучение с нуля. На данном этапе ученик в основном проделывает уроки. Начался с 2013 года.
    2. Этап становления. Это этап изучения кода более подробно, написание приложений на фреймворках. Изучение второго языка. началася с 2015 года.
    3. Этап начался с 2019 года. Профессиональное обучение разработке. Цель научить писать масштабируемые приложения логику в стиле ооп сложную и любой сложности вообще.
    Приложения должны иметь серверную и мобильную часть, участник пишет на разных языках, умеет передавать данные между языками и проектами и делать их одним организмом.
     
    Более подробно понимать,
    смотри здесь видео:
     
    https://www.youtube.com/watch?v=lxc6J3hkS4g&t=2709s
     
    Что является хорошим результатом. Каждый человек способен разобраться с 20-30 конструкциями, ведь смысл конструкций взят из нашей повседневной жизни, то есть они нам знакомы.
     
     
    2 этап.
    Потерны или шаблоны проектирования их примерно около 25 основных.
     
    Пример Сергея Осадчего , применение потерна - асбтрактная фабрика.
    https://groups.google.com/d/msg/spb-tut/KY4h_l0zPZk/5cFxq-ghBgAJ
     
    Потерны нам дают опыт людей, которых их  и составили.
    Что из себя представляют потерны - это концептуальные решения применения конструкций.
    Например в коде Сергея, применены интерфейсы, которыхъ нет в питон вообще, но само понятие интерфейса есть.
    И вот в его абстрактной фабрике применено концептуальное решение.
    Зачем такое нужно.
    Взяв например потерн абстрактная фабрика можно написать код, описав всех людей планеты в одной конструкции.
    Так же она подходит для любых задач, где есть нечто общее, предприятие, любые сферы, и даже ваш двор.
     
     
    википедия
    https://ru.wikipedia.org/wiki/Design_Patterns
    Порождающие:
    Фабричный метод
    Абсстрактная фабрика
    Строитель
    Прототип
    Одиночка
     
    Структурные:
    Адаптер
    Мост
    Компоновщие
    Декотратор
    Фасад
    Легковес
    Заместитель
     
    Поведенческие:
    Цепочка обязанностей.
    Команда
    Итератор
    Посредник
    Снимок
    Наблюдатель
    Состояние
    Стратегия
    шаблонный метод
    посетитель
     
     
     Все потерны будем изучать в школе.
     
    Кроме вышеперечисленных есть веб потерны
    https://martinfowler.com/eaaCatalog/index.html
    Но мы ими будем пользоваться, а не будем рассматривать.
    Например Джанго (MVC)
    Так как потерны, которые я расписал выше они нужны каждый день в разных задачах, в то же время эти потерны.
    Это уже когда собирается группа программистов, как Джанго и пишут фреймфорк, но в любом случае внутри их используется все что мы будем изучать.
    А мы просто используем Джанго.
     
    Подведём итог.
    Потерны нам дают понимание, как использовать конструкции изучение на первом этапе.
     
    И само графическое проектирование (UML)
    По ходу научитесь.
     
    3 этап. Использования стиля библиотек, которые написаны профи и которым больше 3-х от роду и имеют stable.
     
    Если честно сказать почему так поздно начался курс обучения разработке только в 2019 году.
    Почему не ранее.
    На самом деле я искал решение давно ещё с по минимуму с 2011 года, как обучать разработке.
    Но видно правду сказано всему своё время.
    Принцип моего обучения таков, что я обучаю тому. что сам прошёл на личном опыте и что могу объяснить простыми словами.
     
    И вот когда доходило до разработки, я понимал, что делать это как делается в книгах - это плохо.
    Большинство книг, которые написаны и там написано. что мол это разработка на языке программирования. полное фуфло.
    Мне понятна цель автора продать, но не научить.
     
    Я могу доказать.
    Возьмите любую книгу, там будет описана какая либо программа, но не более того.
    материал изложен так обычно:
    скопируйте и вставьте код и вот этот код делает то-то и то-то.
    В большинстве своём авторы не объясняют, почему вы взяли это, а не другое.
    Так какое это обучение разработке?
    Это просто повторение какого куса кода, без понимания что и зачем там так сделано. Это факт.
    То что я называю средним уровнем обучения, но никак не разработкой.
    Как правило берём некий фреймворк, например Джанго, там все определено шаблонно что и как сделать и что при этом произойдёт.
    Мы делаем, рождается сайт. Дело сделано.
     
    Проведя очень много времени с Джанго и другими библиотеками, я был не удовлетворён, так как понимал мне постоянно чего то не хватает.
    Хотелось более высокого уровня понимания, но плана в голове не было, все что бы я не пробовал не проходило проверку и сыпалось.
     
    Помог случай. Как то мне пришлось переносить сайт на другой сервер и пришлось много править и залазить в нутро библиотек.
     
    Как то случайно меня пробило, что вот он стиль обучения разработке, перед глазами.
    То есть написанные библиотеки другими разработчиками и показатель что они работают и есть доказательство того, что это правильно написано.
    Я быстро вспомнил про профи такого как Рассела Кейта-Магги, одного из ведущих разработчиков Джанго, человека компетентного в любых частях Джанго, а таких единицы.
    И я начал рыть все что с ним связано, действия дали результат, я ставил целью найти молодые проекты этого автора и нашёл
    https://beeware.org/
    Суть проекта гениальна, написал код один раз и разместил где угодно а на любых платформах без труда + доводка кода и многое другое все в одном пакете + интеграция с любым что есть в нете.
     
    Но меня интересовало нутро, так как проект молодой, я надеялся, что код пока не сложный и это оказалось именно так.
    И здесь я был счастлив, в голове сразу как одна картинка сложился план обучения разработке. а сам стиль я мог взять у человека, который является профи высшей пробы.
    С проекта можно брать все. стили, названия, структуру проекта, меня вообще поразила практичность его подхода.
    Это произошло в 2017 году и я начала подготовку в одиночку.
     
    Все реально начало складываться и теперь смотря на код Кейт-Магги, я знал точно. что код верный и этому действительно нужно учить людей.
    Что плохого, когда человека учишь принципам. которые накапливались десятилетиями.
     
    И главное мне самому стало очень интересно.
    Потому что рассказ очередной о Джанго или о классах питон мне уже стало скучно.
     
    Стратегия выстроилась моментально.
    Контрольные точки.
    Вход. В школе к тому времени все было что бы начать ( то есть начальный уровень и развитие).
     
    Второй уровень. как начать понимать Кейта-Магги.
    Вы как раз и видите этот план (он не полный, а больше описан как рассказ.
    То есть я понял что изучив основное мы начинаем понимать код профи, а значит можем брать и черпать с него все. все. все.
     
    И мне стало понятно, что есть заключительная часть. Как ученик поймёт. что он готов разрабатывать?
    Все просто, когда он сможет дорабатывать проекты Кейта-Магги, значит он уже профессиональный разработчик.
     
    Я все проверил лично, все складывается.
    Ну, а погтом кто в школе помнит, ещё в 2017 году я написал, главное к чему двигается школа к разработке.
    Ну а потом вы все сами видели, Сергей Осадчий уже начал писать на двух языках, год мурыжыл языки, изучил сервер, начал писать первые мобильные приложения, написал проект на Джанго. на Kivy и вдруг обнаружил, чо мир больше
    и спросил, что дальше.
    Вот тут и понеслась разработка.
     
    Всему своё время, я готов, ученики созрели.
     
    А теперь то что я понял главное.
    Зачем изучать разработку?
    Ну во первых творить новое легко.А второе, тогда открывается такое, такое, Уф.
    Написание на готовых фреймфорках и библиотеках становится волшебным, то есть мы начинаем понимать. а почему бы например здесь не использовать миксины, то есть то чего не хватало все время наконец то пришло.
    Вот это я и считаю осознанное обучение разработке с опорой на профи и получением ответов на вопросы, почему и зачем мы используем здесь тот или иной код.
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
    4. Этап.
    Использование знаний ранее изученных знаний.
     
    А здесь все просто. Это процесс встраивается очень корректно в обучение, просто происходит более глубокое детальное понимание, так как только определена конструкция, мы опять окунаемся в знакомый мир. где пишем функции, методы и жонглируем типами, в общем то что реально просто, но теперь эти типы приобретают соврешенно иной угло зрения. так как мы уже смотрим с угла зрения с вопросами (писал выше)
     
    5. Добавление библиотек, языков, а так же библиотек искусственного интеллекта, обмен и передача данных.
    По ходу используем опыт других людей и новые знания. Уф. Круто.
    Например, Инстаграм пользуются все, так серверная часть там на питон.
    Ютуб написан на питон.
    Китайцы на весь Китай написали опознования лиц и у них камеры (по телику показывали), даже на мусорках.
    НЕ делишь мусор, приходит штраф, а это вот и есть питон в действии.
     
    6. Этап. в ходе всего изучение реальное написание проекта имеющего серверную и мобильную часть на разных языках.
     
    5. Проектирование.
     
    Это по ходу и первично, сложного ничего там нет, важно что теперь будет понимание что и зачем проектировать.
     
    Обратите внимание разделение этапа очень условно, так как обучение идёт полным блоком и одни этапы включаются в другие постоянно, так достигается полное понимание.
     
     
    ОБратите внимание есть начальная разрабтка на ютуб, код и платные уроки в школе.
     
    https://www.youtube.com/playlist?list=PLuZJ9n46uMzVDEIOH5PV9LM8tUqnwHf3H
     
    Если не знаете, с какйо Ide начать
    https://www.youtube.com/playlist?list=PLuZJ9n46uMzUFVX_1F87vfsyhq4CLu-gY
     
    Самое важное быть в группе в школе.
     
    Прочтите статьи и уже сейчас начните окунаться в настоящую разработку, где у вас будет много кода и много вопросов, но главное, что вы будете понимать что делаете.
    Уделите несколько лет и будущее обеспечено.
     
    https://spb-tut.ru/guest/category/37/
     
     
     
     
    Новости у нас в vk:
    https://vk.com/spb_tut
    И в школе в группе у кого нет в контакте.
     
    Прочтите:
     
    https://vk.com/spb_tut?w=wall180926159_558
     
    Прочтите истории ребят:
     
    https://spb-tut.ru/advanced_python_learning/successful-programming-examples/
     
     
     
    Самое важное быть в группе в школе, писать код. видеть код и вопросы других ребят.
    Так даже новичок будет идти быстрее, так как сможет понимать, ставить цели и знать что ему точно нужно, а что нет.
     
    --

    © 2009-2019 Валерий Бовсуновский - Школа практики Django + Python.
    ---



      Код

    нет кода

      Рекомендации

    Узнать больше в ленте Twitter и подписаться на Ютуб, получать новые видео.



    Что посмотртеть:

    (Python3).Ваш план и ответ на вопрос, а как собственно изучать язык программирования.

    https://www.youtube.com/watch?v=R6RO8UKspZY

    Быстрое и правильное освоение Python от нуля до разработки.

    https://www.youtube.com/watch?v=lxc6J3hkS4g&t=2709s

    Становление программиста - система обучения. (ссылка в описании)

    https://www.youtube.com/watch?v=ltcLEFQ_vd4&t=21s

    3. Подготовка разработчика ПО. Что первично понимание кода или навык?

    https://www.youtube.com/watch?v=Br4_muO_3R8&t=1216s

    А новым кто ещё не в школе:

    Что делать? С чего начать?
    Для начала нужно начать изучать два языка:
    Питон:
    https://spb-tut.ru/info/action/


    Котлин:
    http://kotlinlang.spb-tut.ru/buy/account/

     


    2020-02-13 16:41:45+00:00



    К списку категорий