Код — это универсальный язык будущего. В семидесятых панк-музыка вдохновляла целое поколение. В восьмидесятых — я полагаю, деньги. Но для моего поколения программное обеспечение — интерфейс для нашего воображения и нашего мира. Это означает, что нам нужны команды людей, которые смотрят на мир совершенно по-разному, чтобы создавать такие проекты, чтобы не считать компьютеры механическими, унылыми, скучными и магическими штуками, а относиться к ним как к вещам, которые можно менять, крутить-вертеть и так далее.
Мое личное путешествие в мир программирования и технологий началось, когда мне было всего 14. Подростком я была безумно влюблена во взрослого мужчину, и для меня этим кумиром был вице-президент США Альберт Гор. Я делала то, что делает каждая девушка-подросток. Я хотела как-нибудь выразить мою любовь, для этого я создала веб-сайт — вот он. В 2001 году не было сервиса Tumblr, не было Facebook, не было Pinterest. Мне пришлось научиться программировать, чтобы выразить всю свою тоску и любовь.
Вот так для меня началось программирование. Как способ самовыражения. Точно так же, как в самом детстве у меня были цветные мелки и лего. А когда я стала чуть постарше, разучивала гитарные уроки и театральные пьесы. А еще были другие вещи, которые меня волновали: поэзия, вязание носков, спряжения неправильных французских глаголов, выдуманные миры и Бертран Рассел и его философия. Я стала одной из тех, кто думает, что компьютеры — это скучно, слишком технически сложно и уныло.
Вот что я думаю сейчас. Маленькие девочки не знают, что им не следует любить компьютеры. Девочки удивительны. У них отлично получается концентрироваться на определенных вещах и задавать точные и классные вопросы вроде «Что?», «Почему?», «Как?» и «А что, если?». Они не знают, что им не следует любить компьютеры. Это их родители знают. Это их родители думают, что компьютерные науки — это эзотерическая, странная наука, которой могут заниматься только таинственные творцы. Что это примерно так же далеко от обыденной жизни, как, например, ядерная физика.
В чем-то они правы. Множество синтаксических структур, способов управления и данных, алгоритмы и практики, протоколы и парадигмы — из этого состоит программирование. Наше общество делало комьютеры все меньше и меньше. Мы возводили новые и новые слои абстракции, один над другим, между человеком и машиной, пока не пришли к тому, что теперь не знаем, как компьютеры работают и как общаться с ними. Мы рассказываем детям, как устроено тело человека, рассказываем, как работает двигатель внутреннего сгорания, и даже говорим им, что если они правда хотят стать космонавтами, они могут это сделать. Но когда ребенок приходит и спрашивает: «Что такое сортировка пузырьком?» или «Как компьютер понимает, что делать, когда я нажимаю «Старт», откуда он знает, какое видео показывать?» или «Линда, интернет — это место?», мы, взрослые, странно замолкаем. «Это магия», — отвечают одни. «Это слишком сложно», — говорят другие.
На деле это ни то, ни другое. Это не магия, и это не слишком сложно. Просто это происходит очень, очень, очень быстро. Специалисты создали эти удивительные машины, но они сделали очень чужеродными для нас и сами компьютеры, и язык, на котором мы говорим с ними, поэтому мы не знаем, как теперь общаться с компьютерами без наших красивых интерфейсов.
Поэтому никто не понял, что, когда я спрягала французские неправильные глаголы, я на самом деле практиковалась в распознавании паттернов. Когда я была увлечена вязанием, я на самом деле повторяла последовательность символьных команд, внутри которых были циклы. А дело всей жизни Бертрана Рассела — поиск точного языка на стыке английского и математики — нашло воплощение внутри компьютера. Я была программистом, но никто об этом не знал.
Нынешние дети мастерски управляются со смартфонами. Но если мы не дадим им инструменты, чтобы работать с компьютерами, мы вырастим всего лишь потребителей вместо творцов.
Эта история привела меня к этой маленькой девочке. Ее зовут Руби, ей шесть лет. У нее творческое воображение, она ничего не боится и любит покомандовать. Всякий раз, когда я сталкиваюсь с вопросом, когда изучаю программирование, например: «Что такое объектно-ориентированный дизайн или сборка мусора?», я стараюсь представить, как шестилетняя девочка объяснила бы ответ на этот вопрос.
Я написала о ней книгу, проиллюстрировала ее, и вот как выглядит то, чему научила меня Руби. Руби научила меня, что ты не обязана бояться монстров под кроватью. Что даже самые большие проблемы — это просто много маленьких проблем, собранных вместе. Еще Руби познакомила меня со своими друзьями, яркими представителями интернет-культуры. У нее в друзьях Снежный Барс [Mac OS X], красивый, но не хочет играть с другими детьми. У нее в друзьях зеленые роботы [Android], очень дружелюбные, но неряшливые. У нее в друзьях пингвин Линукс, невероятно продуктивный, но иногда его сложно понять. Еще лисички-идеалисты [Firefox] и другие.
В мире Руби вы учите технологии через игру. Например, компьютеры отлично справляются с повторениями, поэтому Руби учила циклы вот так. Это ее любимое танцевальное движение: «Хлоп, хлоп, топ, топ, хлоп, хлоп и прыг». Вы учите счетчики цикла, повторяя это четыре раза. Учите while-циклы, повторяя эту последовательность, пока я стою на одной ноге. Учите until-циклы, повторяя эту последовательность, пока мама не разозлится. Но самое главное — вы понимаете, что готовых ответов нет.
Когда в мире Руби пришла пора учиться, мне нужно было узнать у детей, как они видят мир, какие вопросы они задают, и я организовала тестовые игры. Я начала с того, что показала детям вот эти четыре рисунка. Я показала им рисунок автомобиля, магазина, собаки и унитаза. Я спросила: «Как вы думаете, что из этого — компьютер?» Дети ответили очень ожидаемо: «Это не компьютеры. Мы знаем, что такое компьютер: это такая блестящая коробка, перед которой мама с папой проводят слишком много времени». Мы обсудили это и выяснили, что на самом деле автомобиль — это компьютер, внутри него есть навигационная система. Собака, возможно, и не компьютер, но у нее есть ошейник, в котором может быть встроенный компьютер. В магазинах так много разных компьютеров: кассовая система, сигнализация. И, дети, знаете что? В Японии туалеты оснащены компьютерами, и даже есть люди, которые их взламывают.
Идем дальше: я даю детям маленькие наклейки с кнопкой «ВКЛ-ВЫКЛ» и говорю им: «Вы сегодня волшебники, вы можете превратить все в этой комнате в компьютеры». Дети опять за свое: «Это слишком трудно, мы не знаем правильного ответа». Но я говорю им: «Не бойтесь, ваши родители тоже не знают правильного ответа. Они только начали знакомство с интернетом вещей. Но вы, ребята, будете теми, кому предстоит жить в мире, где всякая вещь — компьютер».
Ко мне подошла маленькая девочка, взяла велосипедную лампочку и сказала: «Если бы эта лампочка была компьютером, она бы меняла цвет». Я ответила: «Отличная идея! Что еще она может делать?» Она думала, думала и ответила так: «Если бы лампочка была компьютером, мы с папой отправились бы в велопутешествие, спали бы в палатке, а лампочка была проектором для фильмов». Именно этого момента я жду, момента, когда ребенок понимает, что мир еще не доделан до конца, что отличный способ доделать мир — это придумывать технологии, и что каждый из нас может принять участие.
Последняя история: мы сделали компьютер. Командир-процессор, помощники Оперативная и Постоянная память, они помогали все запоминать. После того, как мы собрали компьютер, мы сделали для него программу. Этот мальчик — мой любимчик. Ему 6 лет, больше всего на свете он хочет стать космонавтом. У него есть вот эти огромные наушники, он полностью занят своим маленьким бумажным компьютером, он создал свою собственную программу для интергалактической планетарной навигации. Его папа, одинокий космонавт на марсианкой орбите, — в другом конце комнаты, — и у мальчика важная миссия: вернуть папу на Землю целым и невредимым. У этих детей будет совершенно другое понимание мира и того, как мы создаем его с помощью технологий.
В итоге, чем более доступным, более вовлекающим и разнообразным мы сделаем мир технологий, тем ярче и лучше будет наш мир. Представьте на минуту мир, в котором истории, которые мы рассказываем о том, как делаются вещи, включают не только двадцатилетних парней из Кремниевой долины, но и школьниц из Кении, библиотекарей из Норвегии. Представьте мир, в котором завтрашние Ады Лавлейс, которые живут в реальности, состоящей из нулей и единиц, растут с оптимистичным и храбрым взглядом на технологии. Они принимают силы, возможности и ограничения мира. Мира технологий, мира удивительного, причудливого и немного странного.
Когда я была маленькой, я хотела стать сказочницей. Я любила выдуманные миры, а больше всего мне нравилось просыпаться по утрам в Муми-Доле. Днем я гуляла по Татуину, а спать ложилась в Нарнии. Выяснилось, что программирование — идеальная профессия для меня. Я все еще создаю миры. Только вместо историй я создаю их через код.
Программирование дает мне удивительную силу, чтобы создать свою собственную вселенную со своими правилами, парадигмами и практиками. Создать что-то из ничего с помощью чистой силы логики.
Перевод: Надя Борисова
Редактор: Анна Котова