Я написала эту статью, чтобы вас развлечь. Она ничему не научит и не даст никакого представления о Racket. Простите!
Если бы я хотела передать суть статьи в заголовке, я бы написала: «Как я пошла учить Racket после вводного курса по программированию и расплакалась на теме со списками". Хотя, я шла не чтобы выучить Racket… Я шла, чтобы проверить на новом языке усвоенные до этого темы (циклы, рекурсия, строки).
Спойлер: проверка прошла успешно, хороший я ученик. Но идти после «Введения в программирование» учить Racket на CodeBasics было самоубийством. Как хлебные крошки, я оставляла в Disqus свои слезки и стенания… И делала пометки для этой статьи. Вот они.
Кирилл Мокевин на стриме сказал, что неплохо бы новичкам отделить концепции программирования от JS, на котором эти основы Хекслет дает. Он сказал что-то типа: “А почему бы не через Racket? На Lisp пишет сын чувака, который сделал Doom, хороший язык…”.
Совет хороший был, только зачем я ему так упрямо следовала, я не знаю.
Следовала 10 часов. Через 10 часов курс закончился и кончились мои нервные клетки. Как ворон Эдгара По кричу я: “Nevermore”.
Да, я знаю, к языку привязываться это все равно что пылесос хвалить. Типа, язык это только инструмент, и все такое… Но вот послушала я Simple Made Easy от Rich Hickey, куда нас послал первый урок, и думаю: красота, а не язык. И чего все так не делают? И чтобы мы с данными работали, и чтобы все читалось хорошо, и чтобы мы котлет с мухами в коде не смешивали…
А потом я подумала, что не отличу хороший код от плохого, даже если меня закроют с ним в комнате на сто лет. И что все эти упражнения в изяществе кода от меня бесконечно далеки. Когда мой код похож на многоножку из условий, то интересные факты из информатики в одно ухо влетают и в другое вылетают. И знаете чего в этом курсе как раз предостаточно? Интересных фактов из информатики. Эх.
Оно гуглится, следовательно, оно существует
Когда я прохожу любой курс, я много гуглю. Ну понимаете, иногда надо одно и то же услышать на разный лад, чтобы разобраться.
Картинка из The New Yorker
Но с Racket гуглить бесполезно. Даже мое знание хитропридуманного английского не помогло мне найти что-то по Racket. Google только разводит руками: “Может, вы имели ввиду Пакет?”. А YouTube такой: “У нас тут видос восьмилетней давности на 480 качества, будешь смотреть? Чувак сделал клевое интро в Movie Maker, тебе понравится”.
И все? А ладно. Есть последняя надежда, документация!
Думаю, мое видение задач в этом курсе похоже на видение любого сложного курса желторотым новичком. Вот как можно это мемасно описать:
Теория урока: Вот это ложка.
Задача урока: Сделайте ложку-вертолет на гидропоплавках.
Документация: Вот вилка и нож.
Я: 👁👄👁
Половину курса мои решения были логически правильными, я из решения учителя брала только синтаксис. Но потом… Я прошла все стадии смертельно больного, от отрицания до принятия.
Отрицание. “Ну сейчас я ничего не поняла, но потом-то все наладится”.
Гнев. “Откуда тут функция эта? Ее не было в теории!”.
Торг. “Ну я сейчас цветными ручками код перепишу в тетрадку и все понятно станет”.
Депрессия. “Какой в этом вообще смысл?”.
Принятие. “В мире нет смысла, есть только лимонные пирожные и мемы с котиками. Тем и другим я займусь, как только закончу этот мрак”.
В конечном итоге, курс хорош. На русском, с тренажером и комментами прикрученными… Да где вы второй такой найдете? Мне правда интересно, чего мне не хватило, чтобы этот курс пройти без шуток про Стаса Михайлова и нервного тика на правом глазу.
В моих розовых мечтах все курсы пишутся только для меня. “Для тебя, все рассветы и туманы”, поет Стас Михайлов, и добавляет:
Для тебя, все функции из решения есть и в теории…
Для тебя, теория объясняет одно и то же три раза…
Для тебя, все переменные имеют осмысленные имена…
Для тебя…
Я бы на такой концерт с букетом роз пошла. Но пока хожу только по курсам. Откровенно переживаю, что возьму деньги из семейного бюджета на оплату Хекслета, а там все курсы такие же сложные, как этот из CodeBasics.
В чат Слака я не пошла, потому что ходить туда в каждую непонятку значит задержаться на курсе еще на несколько часов. Да и цели именно покорить Racket у меня не было.
Я бы может на форум написала, но к урокам были только пустые комментарии.
С другой стороны, добрый человек протянул мне комментик помощи. Правда, я до сих пор жду ответа.
...То вот мои советы по покорению Racket:
Пишите конспект. Разные скобки красьте разными цветами, чтобы легче читалось. И перенос на другую строку! Их много не бывает. Старайтесь переносить на новую строку как можно чаще.
Если возникают непонятки, вы их не сможете позже прояснить. Они образуют снежный ком непоняток, который вас просто задавит к концу курса. Проясняйте все непонятки сразу.
Делите задачу на несколько функций. Если задача просит сделать фруктовый салат, опишите сначала яблочко, грушу, бананчик, а потом уже соедините их вместе в функции “салат”. И плевать что длинно! Начинать с чего-то надо.
Всего у меня ушло две недели на Racket, по помидору в день (100 минут чистого сидения за монитором). За это время между мной и Racket было столько драмы, что я уже жду звонка с Первого, чтобы выступить со своей историей на Пусть говорят.
Но это мой косяк, заупрямилась. Я взяла после этого за правило, что если я плохо понимаю курс, надо его бросать.
Надеюсь, вы не будете делать выводов на основе моего поста. Да, в курсе были опечатки, было мало теории, было слишком много не относящихся к делу фактов… Но думаю, что курс все равно хорош.
Я понимаю, что в моем посте наверняка куча ерунды. Если у вас есть критика, комментируйте. Я все прочитаю, учту, пост поправлю. Peace!✌️