Приветствую всех. Спасибо, что пригласили меня.
Позади меня вы видите кабину самолета Douglas DC-3. Итак, этот самолет был построен в 1935 году; обратите внимание на то, что каждый индикатор, каждая панель, каждый датчик и каждый переключатель каким-то образом связаны с самим самолетом. Таким образом, если вы тянете ручку управления этого судна, то на деле вы тянете все провода, соединенные с поверхностями управления полетом самолета, а затем он движется через некую форму непосредственного управления. Это очень отличается от современного авиалайнера.
К примеру, на Airbus A380 у вас в распоряжении куча айпадов и стеклянных экранов, которые по сути являются устройствами вывода из компьютера, а куча кнопок и переключателей являются устройствами ввода в компьютер. То есть, само судно контролируется программным обеспечением, а пилот является связующим звеном. А вместо ручки управления у вас клавиатура, что очень удобно, если во время полета вы решите обновить вашу ленту на Facebook.
И ведь это метафора ко всему в современной жизни. Многие вещи, которые раньше мы делали при помощи непосредственного взаимодействия, сейчас используют программное обеспечение в своей работе. Мы больше не заводим будильники вручную – мы запускаем программу, которая нас разбудит. Вместо записок с информацией мы отправляем сообщения. Вместо того, чтобы стоять на улице и ловить такси, мы вызовем Uber… возможно когда-то мы сможем сделать это и в Хельсинки.
А теперь подумайте о своей роли связующего звена в программном обеспечении. На слайде вы видите склад компании Amazon, который они называют центром комплектации товаров, по которому ходят работники и заполняют коробки вещами.
На самом деле они понятия не имеют что конкретно делают. На их запястье надет браслет, который буквально говорит им куда идти и что брать с какой полки. Им даже не нужно знать что конкретно они берут – они сканируют штрих-код и бросают вещь в коробку.
Таким образом весь процесс происходит через компьютерное программное обеспечение. И если же подумать о тех работниках на складе Amazon, то они в своем роде являются тем самым устройством вывода для разработчика софта, который пытается написать код, при котором коробка будет упакована и отправлена. И на самом деле, разработчики программного обеспечения могли бы собрать всех рабочих на газоне перед складом, выстроить их в гигантские буквы, тем самым написав свои имена, и сфотографировать с дрона. Так могут веселиться программисты в Amazon. А еще за такое могут уволить.
Так вот, все это обеспечение для складов Amazon было создано разработчиками, которые в один день заметили, что низкие работники не могут дотягиваться до некоторых полок, поэтому им приходилось останавливать работу, доставать лестницу и лезть к самой высокой полке, которая вполне могла упасть. Поэтому разработчики получили базу данных из отдела кадров о росте всех коллег и изменили свой код так, что только высокие рабочие забирали товар с высоких полок. И, если подумать, то действительно круто управлять всей работой программным обеспечением и не позволять людям вмешиваться в процесс. Ведь программное обеспечение может самостоятельно делать столько вещей. У него может быть свое мнение, оно также может быть посредником. Его создают люди, и мой вопрос следующий: а кто они? Кто эти разработчики программного обеспечения, которые определяют наше будущее?
Позвольте рассказать вам небольшую гипотетическую историю. Скажите, случалось ли такое с вами… Вы звоните своему лучшему другу и спрашиваете, не пойдет ли он с вами на вечеринку. Тот находит оправдание, говоря, что болеет/занят/устал/завален работой/даже не в городе. Ну и ладно, пару дней спустя вы заходите на Facebook и видите, что на самом-то деле ваш лучший друг пошел на вечеринку, да еще и с… ну, не знаю, вашей бывшей женой.
Ну что, случалось такое? По какой-то причине такое всё чаще случается в этой социальной сети. Сначала Facebook хотел просто показать вам какое-то событие в мире, а затем решил, что именно это будет интереснее, ведь там участвует ваш друг и еще один человек из списка ваших друзей – уж так вышло, что это ваша бывшая жена. В любом случае, это не самое радостное событие за день, и вы грустите еще пол года.
Вот вам и проблема посредничества. В отличие от программного обеспечения Amazon, Uber или обеспечения вашего будильника, Facebook является звеном не между вами и объектами в мире. Он выступает внутренним посредником между людьми, а это уже важно.
Группа академических исследователей провела исследование вместе с людьми, у которых есть странички на Facebook. В этом эксперименте, по-моему, приняли участие шестьсот восемьдесят девять тысяч человек.
Исследователи управляли новостной лентой этих людей – некоторым показывали только хорошие новости, некоторым только грустные, и, наверняка, там еще была контрольная группа. Открытие было абсолютно удивительным. Они обнаружили, что та группа, которой показывали только радостные новости, была счастлива, чего не скажешь о группе людей с грустными историями. Сложно было бы подумать, что все закончится именно так, да? Они назвали это «поведенческим заражением» — таким вот высокопарным академическим словом. Глубоким это исследование точно не назовешь, ведь именно таких результатов и следовало ожидать.
Чего они точно не ожидали, так это шумихи вокруг истории – очень многие жаловались, что исследование было крайне неэтичным в попытке манипулировать эмоциями людей без их ведома. Это нарушение этических норм. Но, скажите мне, а чем же занимается Facebook? Как думаете, чем они заняты весь день напролет? Во-первых, они не показывают вам абсолютно все, что происходит с вашими друзьями. Существует алгоритм, написанный разработчиками при помощи машинного обучения — он представляет собой набор умножения матриц, — который пытается показать вам новости в абсолютно случайном порядке. Но что же это за алгоритм? На чем он основан? Для каких целей Facebook пытается оптимизировать свою работу? Что они хотят создать? Чем они руководствуются при выборе новостей, попадающих в вашу ленту?
Их цель – даже не помочь науке и обнаружить поведенческое заражение, их цель – заставить вас продолжать пользоваться Facebook. Именно для этого они оптимизируют работу. Они ищут вещи, которые вызовут в вас вовлеченность, и под «вовлеченностью» они подразумевают неподдельный интерес, скажем, когда вы отправляете новость своим друзьям. Это признак вашей вовлеченности. И теперь у вас есть этот алгоритм, цель которого принимать решения о том, какую новость увидит мир, какой будет вовлеченность, на что люди будут «кликать» и в чем они будут заинтересованы.
Когда мы начали создавать социальные сети… я говорю «мы», но, конечно, это был не я. Когда отрасли высоких технологий стали создавать Twitter и Facebook и им подобные, появилось множество новостей о том, как это поможет демократии, что социальные сети – это инструменты общения революционеров в диктаторских государствах по всему миру. И так далее.
Все это было воспринято очень утопически, все думали, что Twitter и Facebook принесут миру огромную пользу. Это напоминает мне о том, как в свое время и телевизор представляли замечательной вещью, представляли как крестьяне в Египте будут смотреть его и учиться печь хлеб, открывать банки, и как весь мир станет намного лучше благодаря образовательным способностям телевизора. На деле мы получили Люсиль Болл, Луи Си Кея и прочую ерунду.
Итак, я думаю, что примерно то же самое произошло и с социальными сетями: мы вроде как тоже стали надеяться, что они качественно улучшат наше общение. На деле же мы получили пузыри. Пузыри, в которых люди слышат только себя и свою сторону. Все в Америке были удивлены результатами президентских выборов. А случилось это из-за алгоритмов Twitter и Facebook, которые подкидывали новости со схожим к вашему мнением. «The New York Times» фактически проанализировала эту ситуацию по распространению ложных новостей, ведь на самом деле это важно.
Этот парниша гулял по своему родному городу Остин, когда увидел кучу автобусов. А еще он увидел демонстрации или слышал, что в Остине проходят протесты против Дональда Трампа. Так и появился фейковый твит о том, что анти-Трамповским протестующим платят за акцию протеста, а все из-за автобусов, на которых они приехали. Предполагалось, что фотография в твите покажет автобусы, которые привезли демонстрантов из, ну, скажем, Мексики. На деле же автобусы предназначались для технологической конференции, которая всегда проходит в Остине. Но история начала жить своей собственной жизнью, потому что взволновала определенных людей. Они все больше и больше говорили о ней, история дошла до сайта Reddit, а точнее до сабреддита о Трампе. Все закончилось тем, что даже избранный президент Соединенных Штатов Америки рассказывал эту фейковую историю, которая не имела никаких подтверждений. А потребовался всего один человек с аккаунтом в Twitter, который решил, что история может быть интересной.
История так распространилась не потому что была правдивой или важной. Это случилось, потому что она разозлила людей. А идеальная формула для распространения информации в Twitter и Facebook – это сочетание справедливости и негодования в людях. Есть такая цитата: «Ложь обойдёт полмира, пока правда надевает штаны», и, я думаю, что эта ложь навсегда останется в памяти людей. Что там действительно были профессиональные участники (отрабатывающие деньги – прим. переводчика) акции протеста против Трампа. Еще до появления социальных сетей, когда любой идиот с камерой мог распространить фейковые новости, существовала печатная пресса. Там были задействованы большие деньги, как и чувство ответственности перед миром за выпуск новостей. В каком-то роде это можно назвать журналистской этикой.
Думаю, что сейчас многие люди, работающие в высокотехнологичных отраслях, задаются вопросом – быть может мы с вами случайно построили Министерство Правды вместо того, чтобы создать утопический механизм просто потому, что именно так работают социальные сети? Все, о чем я говорю, было создано и активизировано при посредничестве программного обеспечения, ведь его главная работа – быть связующим звеном между людьми. Что такое программное обеспечение? Давайте немного поговорим об этом. Программное обеспечение – это куча строк кода. Что такое строка кода? Строка кода – это инкапсуляция, о которой нужно знать две вещи.
Во-первых, она будет работать в будущем, она реальна. И в каком-то смысле это и есть будущее. Это совсем крошечный кусочек будущего, но, если сложить все вместе, то будущего становится все больше. Во-вторых, стока кода представляет собой множество решений, целую кучу личных решений, которые принимает разработчик программного обеспечения. Каждое слово, каждая линия, каждый параметр, каждая функция, каждый вызов функции, все это – крошечные решения, которые принял программист и каждое его решение повлияет на будущее.
Именно поэтому в Stack Overflow мы говорим, что разработчики пишут сценарий будущего. Вы сидите и пишите сценарий, который будет полностью воплощен в жизнь в будущем. Что еще нужно знать о программном обеспечении, так это то, что за последние 30 лет оно усложнилось. Когда я начинал программировать 30 лет назад, все было намного проще. Это VisiCalc, самое известное программное обеспечение, которое использовалось на Apple II. Чип центрального процессора Apple II, который я сейчас держу в руке, кажется намного умнее, чем сам компьютер. На Apple II можно было складывать, вычитать, возможно умножать, но делить что-то было непосильной задачей. Для этого нужно было обязательно писать какой-либо пользовательский код.
Когда я только начинал разбираться в Unix в колледже в 1987 году, было достаточно прочитать две не очень толстые книги – и вы знали все о программном обеспечении. Было очень просто. Изменилось то, что теперь мы живем в мире, где мы окружены Uber, Stripe, платежными системами, Google Maps и прочими. И теперь, если вы создаете программное обеспечение, вы очень легко можете воспользоваться тем, что уже существует. Если вы хотите отобразить карту – вы можете прибегнуть к помощи Google Maps, которая откроет карту за миллионную долю секунды. Если вы хотите вызвать машину, ну, не в Хельсинки, конечно, вы можете воспользоваться Uber и их интерфейсом – автомобиль приедет примерно за 1.5 строки кода. Если хотите произвести платеж, вы воспользуетесь интерфейсом Stripe. А еще, если вы захотите объединить эти вещи, вы можете создать очень сложный код. Код, состоящий из десяти строк. Довольно круто, да?
Google Maps, а точнее спутники в космосе, сделали фотографию нашей планеты в высоком разрешении, а вы можете использовать это в своем собственном коде всего одной строкой. Вы можете вызвать транспортное средство с человеком за рулем, и я даже не буду говорить о том, сколько строк кода находится в автомобиле. Систему обработки платежей, которая охватывает, даже не знаю, 200 стран и 9 миллионов (и это реальное число) строк кода, которая входит в глобальную систему обработки платежей, вы также можете вызвать несколькими строками кода. Примерно столько же нужно, чтобы выполнить процесс деления на Apple II. Вот как все усложнилось.
Но что это значит? А то, что иногда что-то может пойти не так, и систему становится трудно отладить. Предположим, что в своем приложении вы разместили Google карту и вам нужна только одна строка кода… я бы назвал её именно так, потому что вижу пару точек с запятой, это две строки кода. Так вот, вы помещаете карту в свой код и обнаруживаете, что когда пользователь прокручивает колесико мышки, то карта увеличивается и уменьшается. Вы не хотите, чтобы это происходило и пытаетесь отключить колесико прокрутки. И у вас ничего не получается, потому что вы не понимаете как работает Google Maps, ведь вы просто скопировали часть кода из интернета и вставили в свой код. Дальше вам не глаза попадается корректор масштаба и вы думаете, что если его отключить, то это решит вашу проблему. Но снова не выходит.
Так что же делать? Вы все также не понимаете как работают Google Maps. Вы можете следовать инструкциями в книге – заказать её на Amazon, дождаться доставки, прочитать все 465 страниц.
Возможно, вы начнете понимать строение платформы и найдете ответ на свой вопрос. А еще вы можете написать в поисковике «отключение колесика прокрутки в картах Google».
Вполне возможно вы увидите, что этот вопрос задавали до вас. Если же нет – вы можете задать его сами онлайн и получить решение своей проблемы.
К примеру, на Stack Overflow – это сайт, который мы с Джеффом Этвудом запустили в 2008 году.
Итак, пара вещей, которые нужно знать о нашем сайте. На данный момент на Stack Overflow было задано 13 миллионов вопросов – и это только о программировании, а есть еще 150 других сайтов на другие темы. 20 миллионов ответов были написаны программистами по всему миру. У нас 113 миллионов уникальных просмотров и около 781 миллиона ежемесячных просмотров страниц. Это абсолютно гигантская сеть.
Что нас немного отличает от других сайтов, так это голосование. Когда вы видите ответ, вы можете проголосовать за или против него, в зависимости от того, устроил ли он вас.
И уже эта функция делает Stack Overflow более мощным ресурсом для разработчиков, решающих свои задачи. Голосование напрямую связано с репутацией. Если ваш ответ получает повышение, то повышается и ваша репутация, что отображается в вашем профиле.
Также мы отслеживаем количество человек, которым вы помогли.
И это приводит нас к следующему вопросу, который мне всегда задают – как мы ведем бизнес и как зарабатываем деньги. Мы ищем отличных программистов, которые выполняют потрясающую работу на сайте, и находим им отличную работу. Итак, теперь ваш профиль на Stack Overflow позволяет не только показывать ваши достижения на сайте, но и создавать свою историю разработчика.
Там указано все, над чем вы работаете, все, что вы знаете и не знаете. И, если вы измените настройки, то сможете открыть ее для определенных работодателей, которые наймут вас через Stack Overflow Talent.
Итак, позвольте мне подытожить. Возможно, это звучит странно, но мир стал таким, что все в нем опосредованно программным обеспечением – даже такие простые вещи как будильник или вызов такси. И кажется, что это вовсе не важно. Но это становится важным, когда президентские выборы также происходят с помощью программного обеспечения. Все те решения, что принимают разработчики, невероятно важны. А нам важно понять кто же эти самые разработчики программного обеспечения. Нам нужно воспринимать их как философов-поэтов нашего времени. И именно поэтому мы так зациклены на них на Stack Overflow, поэтому наша миссия – помогать им делиться знаниями и повышать свой уровень.
Большое спасибо!
Стань профессионалом с нуля, пройдя онлайн-курсы SkillFactory:
- Курс «Профессия Data Scientist» (24 месяца)
- Курс «Профессия Data Analyst» (18 месяцев)
- Курс «Python для веб-разработки» (9 месяцев)