Loading...
X

Считаешь себя умным? Ты почти наверняка ошибаешься


Наверное, вы уже видели множество мемов «Представление VS Реальность». Это постоянно происходит в головах — наши представления о себе и своих возможностях на поверке оказываются очень далёкими от того, что мы на самом деле делаем или на что мы способны. Например, мы думаем, что можем перепрыгнуть эту лужу, а на самом деле нет. Мы думаем, что сможем легко решить задачу (выиграть игру, запомнить информацию, выучить иностранный язык, научиться программировать, отремонтировать механизм, познакомиться с новым человеком, прочитать сложную книгу, накачать мышцы, похудеть, пробежать 10 километров, бросить вредную привычку и т. д.), а на самом деле нет — не получается закончить начатое или всё останавливается в самом начале, фактически, не начавшись.

И это, вроде как, нормально — у нас неполная информация, мы никогда не делали ничего подобного, у нас искажённая информация («в кино это было просто»). Чем больше практики в определённой сфере, тем точнее наше представление о наших способностях (ну и соответствующие навыки, но сейчас не о них, сейчас о наших представлениях о собственных способностях). Пример: вы решили, что займётесь бегом. План такой, сразу начать с 10 километров, используя интервальные тренировки (быстрый бег на пределах возможностей чередуется с периодами спокойного движения). Вот вы пришли в парк/на стадион/выехали за город и побежали. После разминки, уже на первом интервале, когда стараемся бежать на 90% от своих максимальных возможностей, вдруг приходит резкое осознание: 10 километров я не пробегу,.. и другие интервалы я не смогу бежать так быстро,.. и не уверен, что смогу добежать этот интервал… Ну вы поняли — такое бывало у всех по многу раз.

И это даже, наверное, вполне нормально: неверные выводы из-за неполной информации («garbage in, garbage out» - мусор на входе, мусор на выходе). Но не всегда это заканчивается так безобидно как с бегом, когда достаточно пересмотреть план тренировки: уменьшить количество пробегаемых километров и отказаться от интервальных упражнений. Неприятный пример, когда кто-то переоценивая свою силу затевает драку и в результате получает сам (хорошо если остаётся живой).

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

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

Мозг развивается «под нагрузкой», когда мы пытаемся понять что-то новое и что-то для нас сложное, узнаём новые термины, новые концепции, новую информацию о явлениях и событиях. «Книги по финансовой грамотности», «обучение с помощью видео YouTube» - это не обучение, это интеллектуальный онанизм (прокрастинация) — это просто развлекательный контент. В развлекательном контенте нет ничего плохого, но беда в том, что многие считают, что поглощаемые ими фантазии автора, не основанные ни на какой практике, делают их умнее и заменяют собой образование.

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

Автор книги Шень А., книга называется «Программирование: теоремы и задачи». О том, что эта книга для школьников написано в предисловии к ней — вы легко это найдёте в самом её начале.


Задачи вроде как для программирования, но их решение вполне можно описать простыми математическими действиями: «а равно б, б равно с» и т. п. Поэтому вы вполне можете попытаться их решить. Это первые три задачи из книги. Попробуйте справится хотя бы с первой…

Задача 1.

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

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

Решение.

Введём дополнительную целую переменную t.

t = a;

a = b;

b = t;

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

a = b;

b = a;

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


А теперь собственно условие задачи:

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

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

Задача 2.

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

Задача 3.

Решите предыдущую задачу, если требуется, чтобы число действий (выполняемых операторов присваивания) было порядка log n (то есть не превосходило бы C log n для некоторой константы C ; log n — это степень, в которую нужно возвести 2, чтобы получить n ).

Заключение

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

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

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

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


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

И ещё одна вещь, от которой вам действительно должно стать СТРАШНО: пока вы смотрите видосики на YouTube или читаете очередную книжку как перекладывать деньги из одного кармана в другой (зачастую чужой) чтобы стать богатым, где-то есть школьники, которые получают ХОРОШЕЕ образование, они стараются осознать концепции, которые никогда не поместятся в вашу голову, и решают задачи, которые вы даже не понимаете. Будущее у тех, кто решает нетривиальные проблемы и у тех, кто предпочитает не напрягаться, разное.

Смотрите также: Как бесплатный контент делает нас бедными


Билеты на автобусы, паромы и поезда, в том числе стыковочные маршруты:

Авиабилеты на международные и местные направления по минимальным ценам:

Рекомендуется вам:


Buy Me a Coffee

2 observations on “Считаешь себя умным? Ты почти наверняка ошибаешься
  1. Виктор

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

    Вот, например, на языке Си:

    int pow(int a, int n) {
        int result = a;
    
        while (--n) result *= a;
        return result;
    }

    Поясняю: сначала мы создаём переменную result, приравниваем её к числу, которое нужно возвести в степень. Затем в цикле while уменьшаем значение степени, пока оно не будет равно 0, и в каждом проходе цикла домножаем result на a. В итоге мы получаем n - 1 итераций цикла (хоть и у нас степень n — одну итерацию мы убрали, т.к. изначально взяли result за a, а не за единицу).

    А вот то же на Python, если понятнее:

    a = 5
    
    n = 3
    
    result = a
    
    n -= 1
    
    while n != 0:
    
        result *= a
    
        n -= 1
    
    print(result)

    Другой вариант на Python (с n итераций цикла):

    a = 5
    
    n = 3
    
    result = 1
    
    while n != 0:
    
        n -= 1
    
        result *= a

    Простите за то, что не оформил код - не нашёл сходу стиля.

     
    Reply
    1. MiAl

      Приветствую! Кнопка форматирования как программный код появляется только при редактировании комментария или в редакторе статей — до сих пор не знаю, почему это так ))

       
      Reply

Leave Your Observation

Ваш адрес email не будет опубликован. Обязательные поля помечены *

wp-puzzle.com logo