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

  •   Python/Kotlin. Обучение разработке, как понимать функции в любых языках на лету.




  •   Описание

     

    Для Ивана и других ребят, обучение разработки с корня на примере

    функций. С целью понимать функции на лету в любых языках

    программирования.



      Статья

     

    Для Ивана и других ребят, обучение разработки с корня на примере

    функций. С целью понимать функции на лету в любых языках

    программирования.

     

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

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

     

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

    Остаются всего два вида.

     

    парадигма 1.

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

     

    парадигма 2.

     как объект, запись, структура, словарь, хэш, именованный список или ассоциативный массив.

     

    В питон котлин все очень просто там все объект.

     

    Теперь во смотрите все очень просто.

    В си есть стурктуры, когда мы хотим объединить несколько типов данных

     


     

    Общая форма объявления структуры:

    struct тип_структуры
    {


      тип ИмяЭлемента1;
      тип ИмяЭлемента2;
      . . .
     тип ИмяЭлементаn;

    };

     

     
     

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

     

    Ваша задача, проработать остальное

     как объект, запись, структура, словарь, хэш, именованный список или ассоциативный массив.

     

    И показать это в разных языках.

     

    Это имеет прямое отношение к функциям, так как с типами данных мы и будем работать.

     

     

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

    прочтите функциональное программирование.


     

     

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


     

     

    посмотрите богатые функции котлин


    https://kotlinlang.ru/docs/reference/functions.html

     

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

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

    https://developer.mozilla.org/ru/docs/Web/JavaScript/Guide/Functions

     

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

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

    Но чёрт возьми.

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

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

    А что должно стать.

     

    Ну во-первых функция, что это это ведь сама по себе конструкция, которая не относится ни к одному языку конкретно:

    функция.

     

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

     

    Сама работа функции заключается в передаче её свойств (собака лежит, стоит, лает)

     

    Дальше идёт область видимости

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

     

    Подведём итог.

    Итак все функции в любых языках это одна и та же структура имя параметры (аргументы) , тело функции. Сложно?. НЕТ уверен.

     

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

     

    Во всех языках и в тех которые ещё не придумали мы делаем одно и то же работаем со свойствами.

     

    Иными словами описываем некое действо при помощи конкретных типов данных.

     

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

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

     

    Что здесь есть что то сверх сложное?

     

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

    Дочитать по ссылкам.

     

    Подводим основной итог.

     

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

     

    Покажем на примере функций.

     

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

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

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

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

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

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

     

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

     

    Причина проста. Нет методике изучения языка.

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

    Спрашиваем, и находим магазин через квартал.

     

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

     

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

     

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

    Справка. Система обучения программированию В. Бовсуновского разрабатывалась с 2009 года на личном опыте и опыте участников школы по принципу проб и ошибок и так дошли до корня, а именно к тому зачем вообще люди приходят в язык. Что бы стать разрабочиками, прочитать статьи:

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

     

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

     

    А ведь таких заготовок у всех людей сотни (мини программ/функций)

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

     

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

    Самое важное быть в группе в школе. Все остальное можно почерпнуть здесь.

    Вот вам пример Осадчего Сергея

    https://spb-tut.ru/guest/pages/309/

    А вот вам пример Мурата, Игоря и Сергея:

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

     

    2. Приобретение правильных привычек. Вот вам видео и статья к нему описании о важности:

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

     

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

    - не умение понять главное в функции, что отдаём, что получаем;

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

    - Не можем читать документацию, там все в командной строке.

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

    - Не буду дальше писать, но там тянуться и другие ошибки, например не смотрим в доки, потому чт оне работаем с командной строкой, всегда привожу пример Михаила Беляковского, который понял, что суть моей систему становления программиста — работа со справкой

    https://spb-tut.ru/guest/pages/306/

    и так далее.

     

    3. Когда мы поступаем, как во второй части примера с языком про магазин (перечитайте выше), то есть подходим (посмотрим на примере функций, так как о них сейчас речь).

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

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

     

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

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

     

     

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

    Такая цель была поставлена в связи с ростом сложности программ и неспособностью разработчиков и руководителей крупных программных проектов справиться с проблемами, возникшими в 1960—1970 годы в связи с развитием программных средств[7].


     

    - Мы с вами описывали, как подойти к функциям, то есть понять из чего состоят, все поняли что это мини программа, что она имеет название, парметры/аргументы (просто по разному называются в разных языках

    названиеФункции{параметры функции/в питон аргументы}:

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

    Собака сидела, ела, пила, гавкала.


     

    Скажите сложно? Уверен нет.


     

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

    Обратите внимание наша задача понять, что такое функции в общем.

    Давайте теперь откроем язык, например JS, сразу бросается в глаза две основных особенности, это то что основное там заложено это функции высшего порядка и дальше все что делается сделано для быстрого вызова функций на лету (this — поищите с какого языка взято, это не придумали разрабочики JS)/

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

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

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

    Важно. Вы видели, что бы где-то что то предлагал учить или запоминать. Нет, нет и ещё раз нет, МОЙ МЕТОД ЗАКЛЮЧАЕТСЯ В ОСМЫСЛЕНИИ ТОГО, ЧТО ВЫ УМЕЕТЕ УЖЕ.

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

    Малое отступление. Просто не нужно читать хрень придурков, которые типа пишут, что изучение языка связано с математикой. Язык связан с математикой в полном смысле, как слон с самолётом. Да нужны начальные знания с числами, школьных больше чем достаточно исключая все сложное, например интегралы. Найдите мне в джанго математику. Ага. Обычная логика. Поэтому когда мне говорят, что например студент историк не может заниматься программированием, который запомнил тысячи дат (там нужно просто запомнить). На самом деле программирование на столько широко, что люди с мат уклоном выберут ддругие направления в отличие от людей, КОТОРЫЕ гуманитарии выберут логические программы, например искусственный интеллект и подберут движки реализации типа Джанго.. Но найдут себя все.

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

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

    Я очень хорошо это показал на примере функций.


     

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

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

    @ я дектратор и моя задача заменить чай на кофе

    я_функция_умею_)делать чай(чай, вода, вы вообще это ...параметры или аргументы):


     

    Скажите очень сложно?

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


     

    7. Что делать конкретно.

    - Начать с питон.

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

    - пройдя функции питон начать котлин.

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

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

    8.

    Прочтите статьи:

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

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

    Эти статьи помогут вам понять как правильно выстроить ваши взаимоотношения с языком/языками. Успех гарантирован. Но ответственность, что вы будете следовать методике только ваша. (результат будет зависеть о методики).


     


     

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


     

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

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

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

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


     

    Послесловие.

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

    Начните работать сейчас над статьями с карандашом и ручкой, как это сделал Мурат:

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

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

    1. С чего я начну изучение и для чего. Мои первые шаги?

    2. Что есть для меня развитие в языках? Чем я буду заниматься. Как я пойму, что первый этап закончился и начала второй?

    3. Как я понимаю, что такое разработчик? Как учится разработке? Что я понимаю под разработкой? чему я буду учится, как я буду понимать чему учится, как я буду понимать что должен основное делать разработчик.

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

    4. Подведите итог, в чём система обучения которую предлагает В. Бовсуновский? Есть ли у меня конкретные шаги? Знаю ли я что я буду делать и зачем.

    Если сложновато пока начните отсюда:

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

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

    http://python-tut.ru/yet/about_me/

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

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


     



      Код

    нет кода

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

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



    Начать сейчас вот с этого, кто решил:

    - Начать с питон.

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

    - пройдя функции питон начать котлин.

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

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

    Все получится, не сомневайтесь. Просто следуйте системе.



    2020-06-01 10:56:42+00:00



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