Это история участвует в конкурсе от Хекслета. Если вам понравилось — поставьте Star в верхнем правом углу. Спасибо!
Полтора года назад у меня родилась дочь. Работа позволяла проводить с ней практически все время, отлучаясь на день-два. Это конечно плюс, но свободного времени у меня не оставалось вообще, т.е. — совсем ツ
Ах да, еще возраст. К тридцати, когда становишься профессионалом в своем деле, замечаешь резкое снижение когнитивных ф-ций в других областях, не связанных с основной работой (это хорошо видно на диаграмме Мэтта Майта). Далее стрессы, 2-х, 3-х, 5-ти дневные марафоны на работе… и, как ни странно — социалочки. В общем, к рождению ребенка мозг у меня уже знатно разжирел и обленился. И это при том, что старался расти в своей сфере, решать задачи, учить тибетский и т.д.
Тут же, после месяца–двух в режиме «дом-работа-дом-работа-дом
», с больной спиной и постоянным шумом в ушах, я понял, что нужно что-то делать. В итоге нарыл несколько научных каналов: Kurzgesagt, SciOne, PBS Space Time, 3Blue1Brown, It's Okay To Be Smart, Mathologer, Numberphile… и занялся самообразованием. Благодаря краткости роликов, их можно было просматривать с ребенком, что в общем выходило + 2–3 часа к свободному времени. Они реально мне помогли, разгружали от проблем и давали новый источник информации. Я заинтересовался математикой и числами, но беда в том, что в третьем классе я пропустил последнюю четверть, как раз о квадратных корнях и т.д. Непонимание таких основ привело к непониманию остального материала. Нет, я как-то что-то даже сдавал без единичек и двоек. Здесь, как и много позже (когда делал сайты) помогало читерство, но вот с теми областями, что мне понравились — этот номер уже не проходил.
Да, сначала я пробовал разобраться в L-системе и фракталах, даже построил кривую дракона 6 размерности вручную, но всё равно не смог понять, как это работает. Это подвигло вернуться к основам, я узнал о существовании комплексных чисел, снова учился операциям с дробями, таки разобрался, что такое корень, зачем нужно число π и число Эйлера. Трудность заключалась в том, что не было единого нормального курса по математике. Есть замечательный курс Савватеева, но он больше для того, чтобы заинтересовать, чем поэтапно объяснить простые вещи. Ситуация напоминала классический случай с сепульками. И вот где-то здесь я вспомнил о программировании.
Логика была такая: сам процессор умеет складывать только очень простые операции, и если ему скармливают сложные формулы в более упрощенном виде, то разобравшись в программировании, смогу понять и высшую математику.
Я уже пробовал изучать JavaScript, примерно в 2003 году купил книжку (больше напоминающую документацию, чем учебник), делал упражнения и дошел ровно до того места, где начинаются циклы ツ
К счастью, сейчас ситуация и с книгами, и с курсами лучше. Именно детские курсы на code.org помогли лучше понять, что такое циклы и как их использовать. Blockly — просто гениальное изобретение, только не понятно, почему так поздно появилось. По конец этой зимы скачал Sololearn и прошел ≈ трети курса по Python, параллельно купил книгу Python 4 kids и скачал несколько редакторов, чтобы выбрать наиболее подходящий. В PyCharm Edu был курс Степика, надо сказать, мне не нравились массовые курсы с видео, потому что это очень долго: смотреть-останавливать и снова смотреть, плюс как его проходить на телефоне… Все же я зарегистрировался и проходил параллельно с Соло. Опять же дошел где-то до трети, но, главный плюс (и минус) Степика в том, что там было чересчур много математики реально выносящей мозг таким как я, вот прямо:
Напишите программу, принимающую на вход целое число, которая выводит
True
, если переданное значение попадает в интервал(−15,12]∪(14,17)∪[19,+∞)
иFalse
в противном случае (регистр символов имеет значение).
Минус в том, что опять приходилось читерить, потому я немного отложил его и нашел курс по логике — очень даже неплохой.
Так началось мое знакомство с Хекслетом, очень даже вменяемой площадки. Больше всего понравилась сама идея — обучать программированию, не языку (другой такой курс только в МФТИ — букв. недавно нашелся). Да, конечно, синтаксису, алгоритмам там отводится много уроков, но эту идея я впервые увидел именно у них. Другая хорошая идея — выкладывать общедоступные лекции на YouTube.
Я не закончил ни одного курса и двигаюсь о-о-о-чень медленно 🐢, но по аналогии с обучением в Стенфорде — 3 пары в неделю, как у нас — месяц. За это время я вник немного в Haskell и Lisp — оба дали более глубокое понимание синтаксиса Пайтона и наконец понял, что такое функция и как устроены эти языки.
Конечно, это только самое начало и хвастаться тут совсем нечем. Но именно такой базы и хотелось, чтобы и голова работала как часы, и было понимание сути вещей. Когда говорю друзьям, что изучаю программирование, первый же вопрос про сайты. Я обычно бормочу, что много чего можно делать кроме сайтов, но подробно не объясняю, потому что знаю, что — СКУЧНО!!! Для меня же, хорошим описанием того, что я изучаю, являются следующие цитаты:
«Такая история повторяется […] снова и снова: мы разрабатываем метод, применимый к решению одной задачи, и, если это хороший метод (то есть метод, содержащий поистине новую идею), в большинстве случаев мы обнаруживаем, что то же самое доказательство работает во многих ситуациях, которые могут отличаться от исходной ситуации в такой же мере, в какой сфера отличается от плоскости, или даже больше» Джордан Элленберг. «Как не ошибаться».
Art is solving problems that cannot be formulated before they have been solved. 'Piet Hein'
https://github.com/Searge/our-stories/blob/master/stories/Searge.md