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

  •   Kotlin/Python. Изучение языка с позиции разрабочика - это есть правильно.




  •   Описание

    В принципе писал и Арсению и Александру.

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

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

    что ещё?

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



      Статья

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

    //////////////////////

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

    И по сути к котлину я шёл не быстро.

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

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

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

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

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

    Но все было ещё сложнее.

    С 2009 по 2013 (с 2013 начала работать школа питон сначала).

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

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

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

    вот что он писал до потом:

    https://spb-tut.ru/index_all/?page=375

     

     

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

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

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

    - Со временем человек начинает понимать из чего состоят языки в принципе в целом и действительно человеку легко писать на любом языке - это принцип описан в json

    • Коллекция пар ключ/значение. В разных языках, эта концепция реализована как объект, запись, структура, словарь, хэш, именованный список или ассоциативный массив.
    • Упорядоченный список значений. В большинстве языков это реализовано как массив, вектор, список или последовательность.

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

    Второй язык котлин опять же, как Бог подсказал.

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

    вот котлин все эти ограничения снял.

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

    http://kotlinlang.spb-tut.ru/about/

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

    /////////////////////////

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


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

    Арсений. Вот вам конкретные рекомендации изучения котлин:

    Котлин полностью полноценный язык.

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

    Что бы овладеть котлин нужно к нему подходить со стороны функциоанльного программирования:

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

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

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

    Само обучение составлено именно по этому методу.

    http://kotlinlang.spb-tut.ru/course/list/

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

    И потом все дальнейшее пишите в пределах функций.

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

    https://ru.wikipedia.org/wiki/CamelCase

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

    если в функции два слова этоФункция (обращать внимание где большие, где малые) - это будет правило хорошего тона от вас. Важно.

    Итак ко всем подхордите со стороны функций.

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

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

    Очень важно повтряю разобраться с null и исключениями, так как это стабильность вашей программы и ваше спокойствие.

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

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

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

    https://ru.wikipedia.org/wiki/%D0%9E%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BD%D0%BE-%D0%BE%D1%80%D0%B8%D0%B5%D0%BD%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5

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

    Но что бы это изучение было успешным нужно не менее недели позаниматься с самим кстройством классов

    там три компонента основных

    класс содержит первичный конструткор, init (инициализацию), вторичный конструктор

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

    Изучайте классы Kotlin вот так по отношению к Пайтон, а не к Джава.

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

    Python/Kotlin. Игорь, Мурат, Сергей - вот так успешно нужно изучать программирование.

    https://www.youtube.com/watch?v=R0xwnl3ENz8&t=172s

    Нужно самому устройству классов отдать не менее недели и не менее 1000 строк кода.

    разобрать как что работает относительно друг друга

    и как передаются свойства.

    А главное как и где изменять свойства в каком блоке

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

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

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

    МОи курсы помогут вам войти в коллею

    http://kotlinlang.spb-tut.ru/course/list/

    Ещё раз прочтите то письмо и разделяйте код в конструкциях и применение конструкций (разработка).

    Третье что вам нужно.

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

    https://kotlinlang.org/docs/reference/coroutines-overview.html

    Что ещё важно знать о котлин.

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

    При этом котлин полностью совместим с джава и меет скорость джава, но код кроткий, вот здесть показывал:

    http://kotlinlang.spb-tut.ru/about/

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

    Ну и привычки подкоректируйте, они вам не дадут упустить важное и увеличат запоминаемость в разы:

    https://www.youtube.com/watch?v=ezN6CTNgfSc&t=16s

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

    Арсений:

    27.05.2020 14:08, Арсений **** пишет:

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

     

    Добавил.

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

    Вам не сложно будет сделать это у вас есть опыт.

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

    К тому сообщению нужно было ещё добавить инкапсуляцию.

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

    https://kotlinlang.ru/docs/reference/visibility-modifiers.html

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

     

    Ну и сами импорты.

    /////////////////////////////////////////

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

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

    понять как прописывается кнопка и как ей передать, как виджет и так далее.

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

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

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

    https://github.com/KotlinBy/awesome-kotlin

     

    /////////////////////////////

    И важное что нужно добавить к предыдущему прошлому сообщению.

    Как изучите тот блок уложите его в голове.

    Неделю отдайте толькол свойствам а именно указание, а особенно переопределнию свойств.

    Этому нужно отдать неделю и тоже делать блоком.

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

    Пока не будет уровень такой, смотрите на код класса и сбе уже говорите я могу перепоредлить в init и так далее.

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

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

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

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

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


    Арсений написал:

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

    2 сообщение

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

     

    //////////////////////////


    Продолжим.....

     

    Второе знание которое у меня было уже с 2009 года. когда вышел Go и разработчики Гугл написали, что эра языков для всего ушла навсегда (Си, С++, Джава, теперь эти языки заняли строгое место для разработки под железо, разработки других языков и библиотек, а это я считаю пишут разработчики. которые уже больше 20 лет в программировании и им есть что сказать, поэтому начало изучения с этих языков считаю потерей времени)

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

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

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

    Я хотел достичь максимального ээфекта и что бы люди затрачивали мало времени:

    - Изучение двух языков открывало дверь к любому третьему, пятому любому. То есть изначально человек готовится, как full steck разработчик. Да часть народа себя успокаивает, что сегодня идёт разделение, но на самом деле ситуация крайне обратная, разработчики фреймворков, как джанго вкладывают в него доступ ко всему что только возможно. Я понял по крайне на этапе обучения хорошо бы в голову человека заложить возможность быстро разобраться  с чем угодно, а потом когда он найдёт себя углубится в какое то направление, но навык то останется. (в любом случае будет расти программист без ограничений).

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

    Выбор языков:

    Питон (например ютуб написан на питон, а так же инстаграм серверная часть на джанго, мобильная на джава + JS)

    Котлин (на этой странице видно, что котлин с первых шагов начали испорльзовать очень крупные игроки рынка

    http://kotlinlang.spb-tut.ru/about/

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

    JS (питон и котлин имеет полную встроенную поддержку и можно подключать весь богатый мир js)

    Java (по необходимости, например скомпилировать приложение под ios , все остальное полностью на котлин).

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

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

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

     

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

    Вот один из них А. Галанин, носил продавал телефоны по Москве. а через 2 года стал разработчиком в банке

    https://spb-tut.ru/info/history/?page=258

    В 2017 году я понял чего не хватает в школе и чего нет вообще нигде. как отдельного направления.

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

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

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

    В принципе теперь понимаю, что было не зря.

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

    Python/Kotlin. Игорь, Мурат, Сергей - вот так успешно нужно изучать программирование.

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

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

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

    Развитие. (это изучение фреймворков и библиотек)

    Обучение разработке.

    здесь в двух словах не расскажешь, лучше прочитать статьи и посмотреть видео

    https://spb-tut.ru/guest/category/37/

    https://www.youtube.com/playlist?list=PLuZJ9n46uMzVDEIOH5PV9LM8tUqnwHf3H

    Очень многие вопросы после этого точно отпадут.

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

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

    1. На начальном этапе задача не просто дать язык. Если просто дать язык. то человек не станет программистом ещё очень долго, так как нет важных факторов:

    1. Обучение языка само собой но каким образом, именно особым.

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

    Знания это то что можно применить сейчас же и то что имеет главный ответ на вопрос зачем мне это.

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

    При этом в группе в школе я это помогаю сделать в этом видео показал, как

    https://www.youtube.com/watch?v=R0xwnl3ENz8&list=PLuZJ9n46uMzVDEIOH5PV9LM8tUqnwHf3H&index=32&t=0s

    3. Самое главное на первом этапе не сам язык, а правильные привычки, есть видео:

    Python/Kotlin. Стань разработчиком легко при помощи правильных привычек.

    https://www.youtube.com/watch?v=ezN6CTNgfSc&list=PLuZJ9n46uMzVDEIOH5PV9LM8tUqnwHf3H&index=25&t=0s

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

    https://www.youtube.com/watch?v=R0xwnl3ENz8&list=PLuZJ9n46uMzVDEIOH5PV9LM8tUqnwHf3H&index=32&t=0s

    Сделаем первый вывод.

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

     

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

    Конечно обучаемый поймёт это, например как я, через 8 лет и выстроит в систему.

    Вы заметили среднюю статистику в большинстве пишущие программисты после 10 лет, я имею в виду профи.

    А ведь этот путь можно пройти за 2 года и менее.

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

    А именно:

    Когда человек например просто изучает по книге написание приложение. Это разработка?

    Для него да. Для меня нет.

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

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

    Когда ясам понял, что значит учить разработке, ушел ещё год 2019-2020 на подготовку плана и сборки всего этого в единую мощную систему и конечно переписку spb-tut.ru, потому что разработку нужно изучать именно на питон, так как он в своём ООП имеет все, а все другие языки имеют намного меньше чем питон, но все принципы будет легко применить к ним.

    Поэтому если читают новички, то изучать нужно так:

    Начать с сайта питон джанго:

    https://spb-tut.ru/info/action/

    как только прошли функции питон, подключить второй язук котлин

    http://kotlinlang.spb-tut.ru/buy/account/

    Простейшее объяснение:

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

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

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

    Причина очень проста.

    Ранее я описывал этапы обучения (как сейчас будет раздела школа)

    Там есть развитие и обучение разработке.

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

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

    Хотя не так уж давно его уровень был такой. (2018 год)

    https://spb-tut.ru/index_all/?page=375

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

    можно взять любой код, что бы было понятно (сам код не имеет значения сейчас)

    class Customer(name: String) { init { logger.info("Customer initialized with value ${name}") } }

    или питон

    class Vehicle(object):
        """docstring"""
        
        def __init__(self):
            """Constructor"""
            pass

    Как правило человек, который заострил своё внимание на развитии, он рассматривает код внутри языка.

    То есть если взять примеры выше, например, как работает тот же init{} в котлин,

    или зачем вообще это в питон


    def __init__(self):

     

    Смысл в том, что его опыт и мысли крутятся внутри конструкции.

    А если у него ещё и упущены привычки, то есть не следует выработанным постулатам работы с кодом, то дело плачевно будет.

    Но ситуация в корне меняется, если человеку рассказать, что такое обучение разработке.

    Они следуют из задачи разработчика?

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

    Это понял, когда начал читать и слушать интервью Линуса (человека. который написал Линукс, именно он постоянно заостряет внимание на плостах кода и даёт определение хорошему разработчику, если помотать записи на 2019 год, то там есть одно из интервью Линуса и мои пояснения, как Линус код человек в 10 строк превратил в код 4 строки, без всех хвостов.

    https://vk.com/spb_tut (здесь новости школы)

    По сути дела обучение разработке - это обучение применение конструкций.

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

    На самом деле это не так просто, но я нашёл выход и все это будет в школе.

    Я наблюдал это на Сергее Осадчем и преодолении этого барьера Сергеем.

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

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

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

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

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

    То есть по сути это называется проектирование.

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

    https://groups.google.com/d/msg/spb-tut/KY4h_l0zPZk/bo2nAFd6BQAJ

    У нас ушло 2 месяца и 14 страниц, где вопросы, вопросы, вопросы.

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

    Так вот это и есть настоящее обучение разработке, а как круто встроилось в эту систему то чему он ранее учился.

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

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

    Для новичков пояснение. Миксин (примесь). Это конструкция, которая добавляет некое действие в класс.

    Например у нас есть магазины в 500 городах и код описывающий эти магазины состоит из 20 классов.

    На нужно добавить некто одно действие, например такое. С сегодняшнего числа доступ к разделам имеют только определенные сотрудники. Понимая, что все 20 классов завязаны на 2 абстрактных класса и 1 интефейс, я дописываю примесь и в нем размещаю само это условие и добавляю всего в 3 основных класса и все остальное приложение будет применять это условие в действии. какой бы не был большой код. ПРосто?

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

    Вот это и есть обучение разработке.

    Понимаете разницу между тем, как работает язык, и тем. как он применяется.

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

    Так же я замечал такое и оно везде.

    Для примера возьмём конструкцию декоратор.

    То есть изменить результат функции в чём либо.

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

    Спрашиваешь,вот ты в свое квартире, напиши применение декораторов твоим мозго м в каждодневной жизни. Все приплыли.

    Так вот. что бы не было этого приплыли и начал обучать разработке.

    На самом деле каждый день человек делает то чай, то кофе, то чего нибудь ещё.

    Чайник, кипятить, взять кружку налить, положить чай.

    Но ведь если мы хотим кофе, то подойдут те же предметы, но при помощи декоратора будет положен кофе.

    получится так

    @декоратор чай заменить на кофе
    Чайник, кипятить, взять кружку налить, положить кофе.

    Оказывается программирование вокруг нас.

    И каждый человек от природы программист.

     

    И теперь вернёмся к тому с чего начали.

     

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

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

    Коротко она очень проста.

    Начальное изучение:

    Изучение языка Питон (однозначно с него нужно начинать)

    Приобретение привычек. (ранее давал ссылки).

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

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

    И на этом этапе человек уже может найти себя и изучать что то своё.

    Развитите:

    ПОняли, Здесь много чего

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

     

    ОБучение разработке( по сути участник будет чётко формировать значения конструкций, что углубит второй этап и сделает его язк жизнеспособным, а ум острым):

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

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

     

     

    Спасибо за доверие.

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

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

     

    Ну а в ближайшее время продолжу школу питон джанго, котлин и блокчейн



      Код

    нет кода

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

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



    Те кто тольк начинает делать так рекомендуется:

     

     

    Доступ пожизненный.

    https://spb-tut.ru/info/action/

     

    Обязательно докупить котлин (отдельная школа)

    Доступ пожизненный.

    http://kotlinlang.spb-tut.ru/buy/account/



    2020-05-27 11:03:46+00:00



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