ООП для кулинараЧем больше ваш жизненный опыт, тем легче вам будет учиться программировать, если на него грамотно опираться. С чем бы ни был связан ваш богатый опыт, самые сложные темы можно объяснить через него. Потому что самые сложные темы — абстрактные. А значит, они одновременно ни о чём и обо всём сразу. Их можно привязать к чему угодно.Вот возьмём ООП, объектно-ориентированное программирование. Представим, что человек изучает программирование, до этого никакого опыта особо не было. И застрял на этой теме. Так вот, лучше брать все материалы, и добавить к ним объяснение через кулинарию. Начнём:ОбъектЭто может быть любая штука. Всё, что отвечает на вопрос «Что?», иногда «Кто?». Какая-то штука, у которой есть набор свойств.Например, какое-то блюдо. Это такая штука, и у неё есть набор параметров — вес, сколько каких ингридиентов(100 грамм яблока, 3 чайных ложки сахара и т.д.), температура хранения и т.д. и т.п. Вот вам объект.В программе мы можем описать его как объект — табличку характеристик и табличку действий, которые можно с ним сделать. Табличка характеристик — два столбца, параметр и чему равен: сахар — 3 ложки, яблоко — 100 грамм, температура хранения — 4 градуса. И каждый ряд таблицы — это по сути переменная. Объект можно представлять как набор переменных с двумя именами/названиями — названием объекта и названием самой характеристики(поля, свойства)КлассУ нас может быть много одинаковых блюд. Готовим каждый день борщ или даже несколько кастрюль борща каждый день на толпу людей.Тогда класс — это рецепт. Только в расширенном смысле, очень подробный — не только как готовить, но и как хранить, как подавать, как употреблять. Всё, что можно сделать, описывается там. Это ещё называется технологическая карта.В коде рецепт выглядит, как набор подпрограмм/функций для объекта, их называют методами. Там расписываются все действия, которые имеют отношение к объекту. Такой вот шаблон-рецепт.Объект, созданный на основе класса, называется экземпляром классаКонструктор/ин
Вячеслав Романьков — преподаватель программирования
@vrom1990pb
Преподаватель программирования, который всегда на вашей стороне. Никогда не махну рукой, какие бы неудачи и ошибки вы не делали, буду продолжать учить думать и действовать как программист-профессионалНаписать лично мне сюда @vrom1990
Похожие каналы
Все →Последние посты
Все недавно подписавшиеся на канал — напишите, что за материалы, на какие темы вам были бы интересны? Синдром самозванца, простые объяснения сложных терминов, ещё какие-то вещи? Не гарантирую, что всё буду делать, но ваши интересы — мне интересны 🙂
Вячеслав Романьков — преподаватель программирования pinned «Чат «Программирование у камина» стал платным, но вы можете получить доступ по скидке в 50% навсегда! Зачем Это мой чат для нетоксичной поддержки новичков в программировании. Чат, где никто не скажет «что за глупый вопрос? Это же гуглится за секунду! Тебе…»
Чат «Программирование у камина» стал платным, но вы можете получить доступ по скидке в 50% навсегда!ЗачемЭто мой чат для нетоксичной поддержки новичков в программировании. Чат, где никто не скажет «что за глупый вопрос? Это же гуглится за секунду! Тебе не место в программировании!», а если вопрос уже обсуждали — то просто пришлёт ссылку.Смысл чата в том, чтобы люди, 1. Понимали, что они не одни такие и получали приятное общение2. Наконец-то понимали какие-то вещи про программирование, которые долго не давались3. Находили ближайший ориентир для развития в программировании и видели, как его достичь Особенность чата именно в дружелюбной атмосфере. Здесь вам объяснят, что даже профессионалы иногда тупят как вы, объяснят общие вещи вроде ООП, может быть, объяснят и какую-то узкую тему, если такой специалист прочитает.Кто есть в чатеВ чате уже 225 человек, в том числе несколько дружелюбных профессионалов и я, преподаватель программирования и по образованию и по роду деятельности. Мы готовы обсуждать и объяснять любые вопросы, связанные с программированием. Кроме того, есть и новички и те, кто на полпути от новичка к профессионалу. Каждый день приходят новые заявки.Участники у нас разных возрастов, от старшеклассников до возраста 50+. И есть как мужчины, так и женщины (а также парни и девушки), что отдельно радует.Что есть и будет в чатеЧат живой — там уже несколько тысяч сообщений и несколько тем:- General — вопросы, новости и обсуждения по программированию/IT, материалы от меня (тексты, видео, картинки, аудио)- «Тупые» вопросы — для сомневающихся, задавать вопрос или нет, можно написать его сюда. Объяснить тоже постараемся по-тупому.- Бывало — истории наших ошибок, неудач, затупов и т.д., чтобы люди видели, что не они одни тут такие- Созвоны — планирование, записи, обсуждение регулярных созвонов- Болталка — любые темы кроме программирования и IT (и запрещённых правилами)- Как у нас всё устроено — правила, навигация по чатуКаждые две недели мы собираемся на созвоны, где о
Как здорово всё же разбирать индивидуальные затыки учеников. Когда есть тема, есть объяснение, понятное подавляющему большинству, а вот этому конкретному ученику это же объяснение не объясняет.Причина обычно далеко не в глупости. Часто наоборот, в наличии неплохо поставленного мышления. Все остальные не видят, что в упрощённом объяснении есть противоречие. А этот человек видит, и у него в голове из-за этого не укладывается. Реже причина в необычном, интересном пробеле в знаниях или навыках, тогда нужно возвращаться и заполнять этот пробел.Вот например, есть такое слово «возвращает» в программировании. Функция, которая считает сумму чисел, sum(1, 2, 3) возвращает 6. И большинство нормально воспринимает это слово. Но некоторые останавливаются и не могут понять — как это возвращает? Ей же не давали 6? Вернуть же можно то, что взяли, а она взяла три других числа?Это признак того, что у человека уже некоторые метанавыки, навыки думать и действовать, как программист-профессионал, неплохо работают. А именно аналитическое и критическое мышление. Потому что да, изначально говорили «передаёт основной программе 6», «возвращает» стали говорить по историческим причинам, и за этим кроются очень интересные вещи, о которых я писал раньше, здесь не буду.И такой человек уже готов обращать внимание на незначительные детали, которые кажутся несущественными на первый взгляд, но скрывают какие-то ключевые, фундаментальные вещи за собой.Поэтому и люблю работать с индивидуальными затыками. И человек свои навыки показывает неплохо, и в принципе я люблю такие затыки собирать. Так что если у вас случится такое — вы не переживайте, скорее всего, причина в хорошо работающем мышлении
Чат «Программирование у камина» скоро станет платным — успевайте получить бесплатный доступ навсегда! Зачем Это мой чат для нетоксичной поддержки новичков в программировании. Чат, где никто не скажет «что за глупый вопрос? Это же гуглится за секунду! Тебе…Ну что, сегодня последний день вступить в чат. Через 8 часов закрою вступление, отвечу на все заявки и доступ будет только по платной подписке, правда, в два раза дешевле навсегда для тех, кто успеет в течение двух недель подписаться
Зачем вообще печатать код, когда изучаешь программирование? Нейросети же есть, и многие профессионалы код уже обычно ими генерируют, не печатают сами. Смотрите, а почему вообще нужен человек тогда? Потому что нейросети могут натворить ерунды где угодно. И человек нужен, чтобы точно объяснить нейросети, что требуется, и контролировать, чтобы сильно далеко от этого она не уходила. Как ремонтник на заводе или системный администратор — они настраивают, если настройки сбились, ремонтируют то, что сломалось. А что нужно сделать, чтобы стать хорошим ремонтником или сисадмином? —Нужно копаться в том, что ты настраиваешь и ремонтируешь. Копаться, копаться, копаться. Вот у вас нейросеть пишет код и вы его должны, если она совсем заглючит, суметь отремонтировать быстро и самостоятельно. И для этого вам нужно копаться в коде, перебирать его по кусочкам. Написание кода вручную это и есть часть такого копания и перебирания кода. Без этого он как в голову попадает, так и вылетает. Хотите понимать и разбираться в коде? Печатайте его, не копируйте. И исправляйте тоже сами, руками.«Но зачем мне писать, достаточно же читать?» — можете вы возразить мне. Нет, недостаточно, это совсем разные процессы и навыки.Читая, многое можно пропустить, перескочить. Я слежу за новичками — внимательно читать код подавляющее большинство не умеет. Пока вы будете писать код, он весь, по частям пройдёт через вас. Какие-то вещи вызовут вопросы или какие-то эмоции, где-то вы ошибётесь и придётся сверять и исправлять — и это вот и будет копание в коде.А читая, вы легко попадёте в ловушку узнавания. Вас же никто не учил в неё не попадать, как это учу своих учеников я. То есть, вы прочитали, и искренне уверены, что всё поняли. Но вы не поняли, код просто стал вам знакомым и мозг интерпретирует это, как понимание.Но если я спрошу, что будет, если заменить вот это слово в коде на другое, выкинуть вон те скобки, добавить ещё вот такую строку кода — не ответите. Попрошу немного поменять код, чтобы немного по-дру
Этот парень пришёл на собеседование в современную компанию, которая сама уже активно использует нейросети. Так что ему, потенциальному программисту в этой компании, сразу дали задачу с доступом к нейросети — вот, пожалуйста. Используй, хоть всё навайбкодь. Но есть задача и есть параметры, в которые твоя программа должна будет уложиться. Будет всё как надо — неважно, нейросеть или сам. Но мы ещё будем смотреть, как ты будешь решать эту задачу.Ну и вы понимаете, что раз я вам пишу про эту историю, то что-то пошло не так. Историю я эту услышал от специалиста, который как раз проводил это самое собеседование. Так вот, продолжим.Задача была простая и с простым решением, многого не требовалось от кандидата. Но через несколько минут после начала он сделал серьёзную ошибку — так задал вопрос нейросети, что подтолкнул её к более громоздкому решению. И чем дальше, тем сильнее кандидат вместе с нейросетью в задаче увязали, решение разрасталось и разрасталось... В итоге неудача, человек просто не уложился в сроки и ресурсы. Программа получилась с кучей багов, глючила, зависала и «радовала» другими способами, так что в итоге кандидату отказали.Как не попасть в такую ситуацию? Нужно иметь три вещи:1) Понимание возможностей языка, фреймворка и технологии, с которой работаешь. Без этого не увидишь, что нейросеть предложила громоздкое решение, когда есть простое.2) Умение точно формулировать вопрос. Размытый вопрос — размытый ответ. А неточная формулировка может подтолкнуть нейросеть в сторону переусложнённого решения, как и произошло с кандидатом.3) Умение проверять ответ — в том числе то, что нейросеть выдала. Отличать рабочее от сомнительного, нужное от лишнего. Без этого нейросеть может завести вас вообще не туда, куда нужно, даже если у вас есть первые две вещи.Мои ученики очень ленятся, когда я проверяю не просто то, насколько правильный код у них получился, но и как они рассказывают об этом коде, что могут объяснить, а что нет. Им непонятно, зачем мы тратим на это время. Да,
Вопрос «Моё программирование или не моё» — тупиковый. Он только тревогу вам и даёт. Если есть интерес и он не исчезает, а даже если исчезает от усталости и выгорания, то возвращается снова — то это ваше занятие.А вот вопросы, которые помогут сориентироваться:1. Есть ли смысл мне этим заниматься прямо сейчас или в ближайшее время?2. Есть ли смысл мне этим заниматься ПРОФЕССИОНАЛЬНО в будущем?Для ответов на эти вопросы полезно выяснить1. Сколько ресурсов мне потребуется минимум и максимум для того, чтобы это стало моим хобби?2. Сколько ресурсов мне потребуется минимум и максимум для того, чтобы автоматизировать свои нынешние обязанности?3. Сколько ресурсов мне потребуется минимум и максимум для того, чтобы это стало моей профессией?4. Сколько ресурсов я смогу на это выделить.Ресурсы это, прежде всего, время, но могут требоваться и финансовые вложения, смотря какое направление выберете и как будете настроены.Если нет ресурсов заниматься программированием профессионально, даже для своих нынешних дел — почему бы не сделать из этого хобби? Прекрасное хобби, если вас оно притягивает, то есть много вариантов, в том числе довольно простых. Если нет и на это — ну, тогда лучше отложить на будущее, до лучших времён.Заметьте, что про способностей и таланта в этих вопросах нет. Способности определяют лишь скорость, сколько времени вам нужно потратить чтобы что-то освоить. Понимаете? Не «хватит ли мне мозгов» а «хватит ли мне времени, выдержки...» и т.д.А способности — они у вас будут формироваться по ходу, мозг будет тренироваться и развиваться.
Так, десять огней накидали, напишу про правильные вопросы немного позже(завтра, скорее всего). Сейчас анонс Кто добавился в клуб — сегодня у нас будет созвон в Zoom по обучению программированию с нейросетями. 18:00 МСК