Программисты википедия: Профессия программист: где учиться, зарплата, плюсы и минусы, востребованность
Содержание
что за профессия, чем занимается, плюсы и минусы, обучение, требования, описание,для детей, википедия, такой
Сегодня вряд ли кто станет вопрошать программист кто это? Все мы ежедневно выходим во всемирную сеть, к тому же работа большинства из нас связана с компьютерными программами. Работа программиста заключается в разработке и внедрении алгоритмов и программ. Хорошие программисты ценятся на вес золота, потому и оклад у них довольно высок.
Какие бывают программисты
Виды компьютерных программ сильно разнятся, потому и существуют специализации. Они отличаются в зависимости от того, каким языком и какими технологиями при составлении программ пользуется программист.
В основном это:
- системные. Занимаются созданием операционных систем и оболочек баз данных;
- прикладные. Именно они делают программное обеспечение для того, чтобы бухгалтера и редакторы могли заниматься своей деятельностью;
- веб-программисты. Принимают самое активное участие в создании сайтов и интернет-магазинов, а также создают программы, управляющие целыми системами сайтов.
Наверное, нет таких предприятий и организаций, для работы в которых не требовались бы программисты. Они трудятся в бухгалтерской, юридической, производственной сфере и в специализированных формах, занимающихся IT на профессиональном уровне.
Что должен знать и уметь программист
Для трудоустройства в хорошую компанию с большим окладом требуется отлично разбираться в необходимых для работы технологиях и языках, иметь хотя бы небольшой опыт создания программ, понимать, что такое вспомогательные программы и уметь ими пользоваться, иметь возможность читать чужие коды. Продвинутый специалист, а не дилетант-любитель, будет также превосходно владеть английским языком, чтобы читать техническую документацию.
Обычно руководство смотрит еще и на такие качества сотрудников-программистов, как:
- способность самообучаться. Эта сфера деятельности развивается быстрыми скачками, внедряются новые технологии, многое меняется, поэтому жизненно важно постоянно учиться, чтобы поддерживать свою квалификацию;
- умение работать в команде. Многие запускаемые проекты предполагают участие множества людей, в связи с чем ценятся такие программисты, которые смогли бы работать в коллективе над общими задачами;
- инициативность и ответственность. В процессе работы могут возникать сложности, программист не должен вяло и безучастно относиться к ним. Всегда приветствуются нестандартные решение и умение довести начатое до конца.
Плюсов в этой профессии несколько. Во-первых, программист может рассчитывать на постоянную занятость и хорошие гонорары, во-вторых, порой в компании берут людей, не имеющих высшего образования, то есть самоучек, разобравшихся во всех нюансах самостоятельно. А в-третьих, программист — это такая же творческая профессия, как художник или музыкант: горизонты для самореализации в этом деле открываются небывалые.
Существуют и минусы:
- в некоторых случаях программист обязан работать в режиме нон-стоп, когда, например, по какой-то причине происходит несанкционированный сбой в системе или программе, специалист должен срочно устранить неполадки;
- вынужденные большую часть времени проводить за компьютером, программисты волей-неволей становятся мизантропами, что не способствует успешному поиску брачных спутников и приобретению новых друзей;
- рутинная работа, связанная с тем, что далеко не все пользователи являются продвинутыми: программист может утомиться неоднократно объяснять вещи, предельно ясные ему самому, что иногда приводит к нервным срывам.
Лучше всего программист кто это вам объяснить сам программист. Найдите среди знакомых человека с такой профессией и выясните детали, которых не нашли в этой статье.
Возможно вам будет интересна статья: Компьютерщики — профессия.
10 лучших программистов мира: легендарные личности в IT
Программист – профессия в наше время очень уважаемая. Что и не удивительно, ведь цифровые технологии окружают нас повсюду. В сфере IT работают миллионы людей – от системных администраторов и рядовых «кодеров» до ведущих разработчиков крупнейших проектов. И конечно, есть в этой отрасли свои легендарные личности, без которых мир был бы немного другим.
Кого же ценят и уважают в среде самих программистов? Кто считается лучшими из лучших? Однозначных рейтингов в этом вопросе не существует. Но есть личности, имена которых упоминаются практически всегда, так как их вклад в IT – бесценен. Давайте с ними познакомимся.
Линус Торвальдс
By Alex Dawson — originally posted to Flickr as Linus Torvalds, CC BY-SA 2.0, Link
Финно-американский программист, создатель операционной системы Linux, на которой работают дата-центры и множество компьютеров во всем мире.
Благодаря Торвальдсу, убежденному стороннику freeware (свободно распространяемого софта), в индустрии, где крутятся огромные деньги и все пропитано коммерцией и паранойей, появилась полностью бесплатная операционная система с открытым кодом. Сегодня в разработке и обновлениях Линукс участвуют тысячи программистов.
В профессиональной среде Линус Торвальдс известен как человек, который не стремится нравиться людям и не стесняется в выражениях. Среди программистов о нем ходят шутки того же плана, что и о Чак Норисе в обывательской среде. Например, утверждают, что он может делить на ноль или играть в 3D игры в уме при помощи чтения исходного кода.
Дональд Кнут
By vonguard from Oakland, Nmibia — DSC_0079Uploaded by YMS, CC BY-SA 2.0, Link
Автор уникальной монографии «Искусство программирования», которая стала учебником и настольной книгой программистов во всем мире. Почетный профессор в Стенфорде.
Академические работы Кнута – это огромный труд, охватывающий практически все направления в программировании, начиная от структур данных и заканчивая анализом алгоритмов. Последнее направление Крут создал лично. Кроме теории в монографии содержится множество примеров на языке Ассемблер.
Ведущие разработчики Google, Facebook других крупных проектов не единожды выражали благодарность Дональду Кнуту за уникальный учебник. О Кнуте говорил и Билл Гейтс: «Если вы называете себя программистом, попробуйте прочесть Кнута И если сумеете прочитать эту книгу полностью, отправьте мне свое резюме».
Работа над этим монументальным трудом ведется с 1962 года. На сегодняшний день вышло 4 тома. К 2020 году профессор обещает публикацию пятого. Кроме того, Дональд Кнут известен как создатель системы компьютерной верстки TeX и языка METAFONT для работы с векторными шрифтами.
Сэр Тим Бернерс-Ли
Автор фото:
Paul Clarke
Автор HTTP протокола, на котором основана работа Интернет. Единственный программист, возведенный в звание рыцаря.
Сегодня он возглавляет общественную организацию «Альянс за доступный интернет», основная цель которой – доступный и быстрый интернет для всех. Организация пользуется поддержкой крупных корпораций – Google, Microsoft, Facebook.
Джеймс Гослинг
By Peter Campbell — self-made, Nikon D80, CC BY-SA 4.0, Link
Автор объектно-ориентированного языка Java.
Еще одна крупная разработка — NEWS, система распределения вычислений в компьютерных сетях. Перечень проектов, над которыми он работал, обширен. Здесь и системы анализа результатов спутниковой телеметрии, и редактор текстов Emacs, и многое другое. Некоторое время Гослинг принимал участие в разработке алгоритмов Google, в последнее время занимается разработкой программного обеспечения для подводных исследований.
Андерс Хейлсберг
Автор: DBegley — originally posted to Flickr as Anders Hejlsberg responds during The Future of Programming Languages Panel at PDC2008, CC BY 2.0, Ссылка
Разработчик компилятора для Pascal, благодаря которому компиляция программы сократилась до нескольких секунд.
Первая версия компилятора была написана под DOS. Позже компилятор был встроен в среду Turbo Pascal. Благодаря компилятору Хейлсберга продуктивность работы в сфере IT выросла в несколько раз.
Позже Хейлсберг возглавил команду, разработавшую Borland Delphi. И здесь также особое внимание было уделено быстродействию. Сегодня Delphi – один из самых популярных языков.
Марк Цукерберг
Автор: Anthony Quintano from Honolulu, HI, United States — Mark Zuckerberg F8 2018 Keynote, CC BY 2.0, Посилання
Американский программист, разработчик социальной сети Facebook.
Это имя широко известно за пределами профессиональной среды. Цукерберг – фигура публичная. С его социальной сетью в последнее время связано множество скандалов. Тем не менее, проект продолжает успешно развиваться.
Цукерберг убежден, что наиболее эффективны – небольшие команды. Они могут работать плодотворнее, чем крупные коллективы. Потому в обслуживании огромной социальной сети задействовано всего лишь 10 000 человек в мире.
Брэм Коэн
Автор: Ijon — собственная работа, CC BY-SA 4.0, Ссылка
Автор протокола BitTorrent, благодаря которому стала возможной супербыстрая загрузка файлов из сети.
Торрент популярен во всем мире. Число пользователей BitTorrent оценивается в 250 млн человек. Через торренты скачиваются огромные объемы информации. К сожалению, возможности торрентов активно используют «пираты».
Брендан Айк
By Darcy Padilla — https://web.archive.org/web/20140209081556/http://blog.mozilla.org/press/bios/brendan-eich/ https://web.archive.org/web/20131108073412/https://blog.mozilla.org/press/files/2012/04/Thumbnail-Full_Eich_04.jpg, CC BY-SA 3.0, Link
Разработчик JavaScript. Этот язык считается одним из стандартов в WEB-программировании.
Принимал участие в создании компании Mozilla и браузера Firefox. Занимал пост СЕО. Уволился после скандала, связанного с его позицией по вопросам гей-браков (Брендан – активный участник движения за их запрет в Калифорнии).
Бьерн Страуструп
By Julia Kryuchkova — Own work, CC BY-SA 2.5, Link
Создатель языка C++ (улучшенной версии C).
Сегодня язык программирования C++ изучают студенты практически в любом ВУЗе, он давно стал одним из базовых прикладных языков. Синтаксис языка C используется в PHP и других современных языках программирования. Доработки от Бьерна Страуструпа оказались настолько хороши, что сегодня, когда говорят «Си», о базовой версии языка даже не вспоминают.
В наше время программист читает лекции в нескольких ВУЗах, сотрудничает с Morgan Stanley.
Джон Кармак
By Official GDC — https://www.flickr.com/photos/officialgdc/16693728506/, CC BY 2.0, Link
Один из основателей компании id Software. Известность получил как автор легендарной компьютерной игры Doom.
Идея создания Doom пришла в голову Джона во время корпоративной партии D&D. В то время в компании подобные партии проводили регулярно. И часто на них Джон выполнял роль гейм-мастера.
При создании Doom Джон Кармак первым реализовал оригинальные 3D-трюки, которые применяют в компьютерных играх до сих пор.
Mail.ru Group инвестировала в образовательную платформу для программистов
Mail.ru Group инвестировала в компанию GeekBrains — образовательную онлайн-платформу для программистов, говорится в сообщении группы. Сумма сделки не раскрывается, размер приобретенного пакета – около 50%. Группа стала контролирующим акционером GeekBrains, но ее основатели останутся совладельцами компании и продолжат ей управлять.
GeekBrains предлагает более 50 онлайн-курсов по направлениям: мобильная и веб-разработка, создание игр, дизайн, SEO и др., говорится в сообщении. Сервис позволяет начинающим специалистам изучать основы программирования, а опытным — углублять знания и осваивать новые сферы. Курсы включают в себя видеоуроки, вебинары, домашние задания, обсуждение учебного материала с одногруппниками и преподавателями. «Пройдя обучение, выпускник GeekBrains может подать заявку на стажировку в IT-компанию или внутренний проект «IT-инкубатор», где пользователи совместно работают над собственными стартапами», сообщает группа.
По данным Mail.ru Group, ежемесячная аудитория GeekBrains составляет более 500 000 человек, а за последние 12 месяцев количество зарегистрированных на портале пользователей выросло с 200 000 до 1 млн человек. За год курсы GeekBrains заканчивает около 4000 человек, а общее число людей, получивших образование на платформе, превысило 7000, говорится в сообщении группы.
«У рынка онлайн-образования большое будущее, мы видим, что у образовательных программ есть большой потенциал мигрировать в интернет, цитируются в сообщении слова гендиректора Mail.ru Group Дмитрия Гришина. «Это наша первая инвестиция в эту область, но думаю, будут еще, уточнил «Ведомостям» представитель группы. Мы также готовы поддерживать интересные стартапы в этом направлении», добавил он. Кроме того, в России существует проблема качественных IT-специалистов: «мы решаем эту проблему прежде всего за счет наших образовательных программ, которые мы делаем вместе с ведущими российскими вузами, однако такие проекты, как GeekBrains, позволяют охватить тех специалистов, которые не попали на наши офлайн-программы», говорит представитель группы.
Сооснователь GeekBrains Александр Никитин обещает, что компания «расширит линейку программ на новые сегменты» и будет экспериментировать с новыми форматами обучения.
Как программист из Екатеринбурга с нуля построил бизнес на $400 млн :: Бизнес :: Журнал РБК
Менее чем за десять лет работы компания MemSQL привлекла более $100 млн от ведущих инвесторов Кремниевой долины и заполучила в клиенты Comcast, Uber и Samsung, а в конкуренты — Amazon, Google и Oracle
Никита Шамгунов
(Фото: Damien Maloney для РБК)
Имя уроженца Екатеринбурга Никиты Шамгунова нечасто встретишь в российских деловых СМИ. Между тем его карьера — образец пути «глобального русского» предпринимателя 2010-х годов. Переехав в США для работы в Microsoft и Facebook, Шамгунов со временем стал сооснователем собственного бизнеса — ускорителя баз данных MemSQL.
В октябре 2018 года знаменитый американский акселератор Y Combinator собрал рейтинг 100 своих самых успешных выпускников-стартапов. Критерием служила капитализация или оценка непубличных компаний инвесторами. 40-е место в списке занял MemSQL, разработчик системы управления базами данных (СУБД). Компания никогда не раскрывала, во сколько ее оценивают венчурные капиталисты, но судить о масштабе бизнеса можно по соседям в рейтинге: № 39, стартап WePay, в конце 2017-го был поглощен инвестбанком JP Morgan Chase за $400 млн, а № 41, Weebly, — в начале 2018-го сервисом Джека Дорси Square за $365 млн.
Один из основателей, а ныне и гендиректор MemSQL — 40-летний уроженец Екатеринбурга Никита Шамгунов. Компанию он создал в 2011 году вместе с бывшими коллегами по Facebook и Microsoft Эриком Френкелем и Адамом Праутом. MemSQL помогает корпоративным клиентам ускорять работу баз данных: вычисления происходят быстрее, и бизнес может масштабироваться максимальными темпами. Потенциал технологии за семь лет оценили десятки крупных заказчиков: услугами MemSQL пользуются как компании с богатой историей, от телеком-холдинга Comcast до ИТ-гиганта Dell EMC, так и локомотивы новой экономики, стартапы-«единороги» Uber, Pinterest и другие. Модель бизнеса привлекает и венчурный капитал: в совокупности в MemSQL вложили уже $110 млн (последний раунд на $30 млн закрыт в мае 2018-го). Среди инвесторов сплошь звезды — Accel Partners, Khosla Ventures, GV, Юрий Мильнер, Эштон Кутчер и другие фонды и бизнес-ангелы.
Журнал РБК поговорил с Никитой Шамгуновым, его учителями, коллегами и конкурентами и выяснил, как уральский программист добился признания в Кремниевой долине и почему о бизнесе стоимостью под $400 млн так мало знает массовая аудитория.
Выделенка от Сороса
Карьера Шамгунова-программиста началась в Научно-учебном центре Уральского государственного университета (СУНЦ УрГУ). Этот аналог лицея при главном вузе региона был основан в 1988 году и за 30 лет выпустил десятки известных предпринимателей, ученых и менеджеров, а расцвет заведения пришелся на 1990-е (Шамгунов — выпускник 1995 года).
Популярность СУНЦа во многом обеспечивала развитая инфраструктура, вспоминает другой выпускник, руководитель сервиса «Яндекс.Вертикали» Антон Забанных: «Важной фичей был доступ в интернет. Быстрый — выделенка, а не модем. Компьютеры тоже были хорошие. Если правильно помню, покупали их на гранты [фонда] Сороса». Он также выделяет атмосферу, не свойственную другим школам: «Мы попали в уникальное время и уникальное место — нас не грузили чужими проблемами или пропагандой, а наполняли фундаментальным понятием свободы».
Шамгунов уже в СУНЦе увлекся алгоритмами и структурой данных. По окончании центра поступил в УрГУ на матмех и начал активно заниматься спортивным программированием, участвовать и побеждать в олимпиадах по математике. Параллельно преподавал на курсах для абитуриентов СУНЦа. Там познакомился с еще одним известным впоследствии выходцем из уральской ИТ-индустрии — Леонидом Волковым, в прошлом предпринимателем, ныне оппозиционным политиком и соратником Алексея Навального. Среди учеников молодых преподавателей также есть известные программисты, например главный разработчик поисковика Bing от Microsoft Денис Расковалов.
Волков и Шамгунов вошли в состав сборной УрГУ по спортивному программированию. Главным достижением команды стала бронза на чемпионате мира в 2001 году. Шамгунов одновременно стажировался в крупном разработчике софта «СКБ Контур», куда был приглашен тренером сборной Евгением Штыковым. Под его началом Шамгунов участвовал в создании программы АМБа (сейчас «Контур.Зарплата»). «Фамилии ведущих разработчиков АМБы — Штыков, Шифман и Шинкарев. Потом к ним присоединился Никита. Мы шутили про отдел Ш-программистов», — вспоминает Волков.
Шамгунов разрабатывал для АМБы систему обработки информации. «Это нечто вроде системы управления базами данных, с помощью которой можно легко конструировать приложения», — объяснял он журналу «Контур Инсайд» в 1999-м. А заодно рассказывал об увлечении Linux. «С будущим я еще не вполне определился, но от компьютеров [мне] уже никуда не деться», — резюмировал программист. Уйдя из «Контура», он устроился в «УралРелком», где в компании еще одного тренера по сборной УрГУ, Сергея Герштейна, участвовал в разработке новостного сайта е1.ru («Екатеринбург Онлайн»).
На форуме е1.ru, а точнее на его 37-й ветке, быстро сформировался программистский кружок, который Волков аттестует как адский гадюшник и троллятник. Архивы доступны и сегодня: например, в одном из тредов Шамгунов выигрывает проставу пивом от Волкова — предлагает самое эффективное решение задачи по упаковке разрозненных данных в единую структуру. Другие участники импровизированного конкурса — Александр Якунин (сейчас ведущий разработчик сервиса Quora) и Евгений Кобзев (сооснователь сервиса «Кнопка»).
Никита Шамгунов
(Фото: Damien Maloney для РБК)
В интервью журналу РБК Шамгунов признается, что регулярное участие во всевозможных профессиональных соревнованиях не только помогло улучшить навыки написания кода, но и сильно расширило горизонты: «Живя в Екатеринбурге, я и не представлял, какой мир огромный!» Первым карьерным шагом за пределы родного города стало поступление в аспирантуру петербургского Университета ИТМО.
Софт для морского боя
С деканом факультета ИТ и программирования ИТМО профессором Владимиром Парфеновым Шамгунов познакомился еще на соревнованиях в Екатеринбурге. «Мне уже тогда нравились и раунды [соревнований], которые проводились в Петербурге, и сам город — лучше только Сан-Франциско. [Позднее] позвонил Владимир Глебович [Парфенов]: «Тебя приняли, приезжай. С работой поможем», — рассказывает сооснователь MemSQL.
В Петербурге Шамгунов защитил кандидатскую и устроился на работу в компанию «Транзас» — производителя навигационных систем и морских тренажеров. Научный руководитель предпринимателя в ИТМО Анатолий Шалыто в книге к юбилею кафедры особо выделял диссертацию Шамгунова как первую программистскую. «Кандидатская для Никиты, как и для меня, была естественным продолжением [карьеры]. Но всерьез оставаться в науке никто из нас не собирался», — говорит Волков. ИТМО он считает «лучшим местом [в России] для диссертации по теоретической информатике».
«Транзас» в 2000-х бурно рос за счет спроса на внешнем рынке. Шамгунов разрабатывал софт для сбора информации о перемещении судов в Балтийском море. Программа умела на лету вычислять характеристики передвижения кораблей и других участников морского трафика.
«Например, [программа могла определить], в каком порту сейчас больше всего британских судов», — описывал Шамгунов результаты своей работы в заметках к слайдам презентации Microsoft StreamInsight. Там же он рассказал о проблеме, решение которой было близко к будущей специализации в американской части его карьеры: «При попытке в реальном времени загрузить данные в SQL Server в компании обнаружили, что скорость поступления данных слишком велика и СУБД не справляется. Мы решили задачу, хотя решение и было не очень простым и элегантным».
Автобусный тандем
В 2005-м выручка «Транзаса» впервые перевалила за $100 млн, но Шамгунов новый этап развития компании уже не застал. По рекомендации одного из бывших коллег он отправился на собеседование в Microsoft и успешно его прошел. «Интервью оказалось не таким сложным, за исключением языковой части», — говорит предприниматель. В том же году он перебрался из Петербурга в Сиэтл. В Microsoft Шамгунов стал старшим разработчиком Microsoft SQL Server и участвовал в разработке ядра программы.
Технология SQL (structured query language) предназначена для управления базами данных. Аббревиатура обозначает структурированный язык запросов — с его помощью разбросанную по разным таблицам информацию можно объединить в единый запрос и вывести на экран. Полученные данные — результат обсчета всех конфигураций между строками и столбцами. Чем элементов больше, тем дольше время выдачи информации пользователю. Базы, использующие SQL, строго структурированы — например, каждая позиция имеет уникальный идентификатор.
В Microsoft Шамгунов проработал пять лет, до 2010-го. В 2009-м его начал активно хантить Facebook. «Поначалу я не совсем понимал, что буду там делать. Но в 2010-м меня все-таки уговорили, и я перешел. За какую-то огромную кучу денег», — вспоминает Никита. На лекции «Гуру Урала» в 2012 году он вспоминал, что перебирался в Калифорнию с ожиданием увидеть новую ментальность и культуру. «В планах было поработать в компании, взять у них все самое полезное и найти партнера, с которым я смогу основать свою компанию», — не скрывал Шамгунов.
Мечта о собственном бизнесе появилась еще на второй год работы в Microsoft, но долгое время Шамгунов понимал, что не готов к решающему шагу. Ключевым препятствием ему виделось отсутствие делового партнера, с которым можно было бы разделить риски и которому можно было бы довериться. «Я думал, что [на поиски партнера] уйдет пара лет. Но [в Facebook] партнера встретил в первый же день», — говорит предприниматель. Идеальным соратником для Шамгунова оказался программист Эрик Френкель. Они познакомились, когда проходили обучение в кампусе Facebook, и быстро стали близкими друзьями. Тандему не помешало даже попадание в разные отделы, приятели ездили на работу на одном автобусе, писал журнал Wired в 2013 году.
Спустя несколько месяцев они подали первую заявку в Y Combinator. «Хотели посмотреть, как бывает на практике», — объясняет Шамгунов. В акселератор они пришли с идеей сервиса по поиску квартир в Сан-Франциско. И хотя изначально Шамгунов не хотел уходить в подобный проект из Facebook, партнеры прошли все предварительные интервью и добрались до финального собеседования с основателем Y Combinator Полом Грэмом.
«Мы рассказали о проекте, нас поблагодарили и предложили подождать вердикта. В YC все очень быстро происходит: о результате узнаешь в тот же день», — вспоминает предприниматель. По его словам, после разговора с Грэмом Френкель купил бутылку самого дорогого шампанского и они уселись перед телефоном, готовые праздновать. Но звонок так и не раздался. А на следующее утро стартаперы получили письмо: акселератор уведомил об отказе.
Собеседование о гранатометах
Несмотря на неудачу, Шамгунов и Френкель тут же отправились придумывать новые идеи. Оба вспомнили, что Microsoft и Facebook активно инвестируют в технологию in-memory — хранение данных в оперативной памяти. Работа с подобными базами в разы быстрее, чем с жесткими дисками и твердотельными накопителями, но есть и минус — система не оставляет информацию, если оказывается обесточена или выключена. Тем не менее партнеры решили сосредоточиться на модели ускорителя баз данных, из этой идеи позднее родился MemSQL.
Никита Шамгунов
(Фото: Damien Maloney для РБК)
С формальной подачей заявки предприниматели на этот раз опоздали, но им удалось найти лазейку, чтобы поступить на курс 2011 года. Помогла поддержка экспертов: ключевым лоббистом проекта стал бывший главный разработчик Gmail Пол Бекхайт. Тогда он ушел из Google, основал компанию FriendFeed и присоединился к команде Y Combinator. «Мы нашли его аккаунт в Facebook, и на аватарке был автомат, — вспоминает Шамгунов. — Так что Эрик перед интервью изучил вопрос: в итоге из 60 минут встречи 20 мы посвятили стартапу, а 40 — ружьям, автоматам и гранатометам». С подачи Бекхайта MemSQL стал резидентом Y Combinator вне конкурса.
После этого для Шамгунова и Френкеля настал тяжелый момент — нужно было решиться уйти из Facebook. Причем первому одновременно приходилось расстаться с возможностью получить опцион в форме пакета акций соцсети стоимостью $2 млн. «Если уходишь из компании, акции необходимо оставлять на столе. Нужно было сказать себе: моя компания стоит дороже $2 млн», — отмечает Шамгунов.
Первое время партнеры работали на два фронта и размышляли о целесообразности участия в Y Combinator. «Я говорил Эрику: «Давай я сам стану твоим акселератором, дам тебе те же $17 тыс., в чем проблема? ..» — смеется Шамгунов. Рассеяли сомнения лишь инвесторские деньги. Первым на помощь пришел Юрий Мильнер: основатель фондов DST передал стартапу $150 тыс. Френкель в интервью американскому Forbes (журнал включил его в ренкинг 30 самых перспективных молодых предпринимателей в ИТ) в 2012 году вспоминал: «В тот момент Мильнер был в России, и хорошие новости доставил робот Segway с приделанной к нему веб-камерой и экраном. Никогда бы не подумал, что получу деньги от робота».
Средства пришлись как нельзя кстати: стартап уже подписал часть специалистов из команды Microsoft SQL Server. Для некоторых решающим фактором стал именно шанс пройти через Y Combinator, подчеркивает Шамгунов. Первым сотрудником MemSQL стал Адам Праут. Его переманили статусом сооснователя и пакетом в 6,6% при традиционных для должности старшего программиста 1–2%.
Вторым пришел Александр Скиданов, хорошо знакомый Шамгунову по работе в Microsoft. «Никита работал в Microsoft в 2008-м и спонсировал чемпионат Урала [по спортивному программированию], который я выиграл, там и познакомились. Он помог попасть в Microsoft, а оттуда я ушел к нему в MemSQL», — рассказывает Скиданов. Тестировать продукт на первых порах Шамгунову бесплатно помогала жена Скиданова Мария. «Предложив ей присоединиться к команде, мы решили сразу две проблемы — получили в штат крутого разработчика и спасли Машу от скуки», — смеется Шамгунов.
Первое время после выпуска из Y Combinator команда работала на съемной квартире. Офис за $100 тыс. арендовали после выхода первой версии. А сегодня компания готовится переезжать в новое пространство — уже за $1,5 млн.
HipHop от Цукерберга
Технологии в основе бизнеса MemSQL Шамгунов создавал «руками» вместе со Скидановым и Праутом, они являются соавторами 11 из 12 патентов, закрепленных за компанией. СУБД MemSQL была призвана системно решать проблемы языка SQL — недостаточную скорость вычислений и масштабирования. MemSQL перед выполнением SQL-запроса переводит его на C++ и позволяет масштабировать операцию на несколько серверов. Благодаря этому та исполняется быстрее.
За перевод отвечает JIT-компилятор (Just in Time) — эта часть софта превращает языки в набор нулей и единиц. Компилятор MemSQL — разработка на основе аналогичных инструментов HipHop и Scuba от Facebook. Собственный JIT-компилятор, например, и у соцсети «ВКонтакте» — KPHP (его разработчики — бывшие соперники Шамгунова на турнирах по спортивному программированию Николай Дуров и Андрей Лопатин).
Софт от MemSQL позволяет находить ошибки в коде, не жертвуя скоростью. Он совмещает две модели конвертации данных — интерпретацию и компиляцию. Первая последовательно переводит каждую инструкцию в понятный машине двоичный код и выполняет ее. Вторая переводит и выполняет все инструкции сразу. Микс моделей нивелирует их минусы — автоматически отыскивает и обходит баги, не требуя вмешательства программиста.
СУБД MemSQL хранит основные данные в оперативной памяти (RAM) — на жесткий диск заносится только результат совершенных операций. Риск потери данных из-за обесточивания нивелируется за счет постоянного обновления лога операций — файла небольшого размера, в котором отражены все изменения базы. Информация в первых итерациях СУБД все равно иногда терялась, но клиенты не обращали внимания — скорость с лихвой компенсировала этот недостаток, говорил Шамгунов в 2012-м. Сократив время на обработку запросов, его команда добилась существенного прогресса по сравнению с классической имплементацией СУБД на SQL: скорость работы выросла в десятки раз.
«Базы данных должны быть простыми и максимально функциональными, как автомат Калашникова», — постулирует Шамгунов в интервью журналу РБК. Система MemSQL как раз из этого ряда, заверяет он. В основе структуры любых современных сайтов или приложений — обычные строки и столбцы с данными, напоминает предприниматель. Например, в «скелете» онлайн-магазина таблица с наименованием и ценой товара взаимодействует с таблицей покупателей, когда один из них решает приобрести товар. Эти данные взаимосвязаны и вместе создают базу данных, построенную на этих отношениях, — реляционную. Ровно такими базами и управляет MemSQL,
Расхититель Microsoft
Большой проблемой для MemSQL на первых порах был поиск квалифицированных кадров. «Инженеры в Долине — боги», — констатирует Шамгунов. Стартапу нанять программистов высокого уровня невероятно сложно: конкуренцию, как правило, выигрывают корпорации масштаба Facebook, Google и Twitter. Но и тут основатели MemSQL нашли выход. «Мы выбрали путь спонсирования соревнования TopCoder и переманивания сотрудников из Microsoft», — делится предприниматель.
Никита Шамгунов
(Фото: Damien Maloney для РБК)
TopCoder компания спонсирует с 2011-го, практически с момента своего основания (среди других спонсоров — Facebook и Intel). В первый год на соревнованиях высадился десант в составе Френкеля и Скиданова. Они привезли не только формальные предложения о трудоустройстве, но и приз для турнира по покеру — MacBook Air. Финал из-за нехватки времени пришлось проводить прямо во время ланча в последний день TopCoder — участвовали знаменитые программисты из России и Белоруссии Петр Митричев и Геннадий Короткевич.
Россия вообще остается важным поставщиком кадров для MemSQL. Например, научный руководитель Шамгунова Анатолий Шалыто в интервью «Хабру» в 2017-м рассказывал, как туда устроился двукратный чемпион мира по спортивному программированию, выпускник ИТМО Михаил Кевер. Профессор также вспоминал, что Шамгунов говорил ему о больших перспективах студентов Массачусетского технологического института: «Они такие же, как ваши, немного сильнее».
Наконец, колыбель кадров MemSQL — Microsoft. Шамгунов откровенно рассказывал в 2012 году: «Мы нарушили патенты, которые есть у Microsoft, мы увели у них несколько сотрудников. Плюс я нарушил договор не работать на конкурентов. В каждом случае Microsoft может нас засудить». Однако по последнему пункту судебных разбирательств не ведется, а в остальном репутационные и финансовые потери от тяжбы превысят эффект от победы, уверял предприниматель.
Он и сегодня уверен в бывших работодателях: «У нас никогда не было с ними проблем. Более того, с Microsoft мы обсуждаем возможное сотрудничество». По словам предпринимателя, корпорации патентуют технологии не для подачи исков к стартапам, а для борьбы с патентными троллями. Собственные технологии MemSQL при этом прилежно патентует. «Важно подать заявку в патентное бюро и встать в очередь. В таком случае, если возникнут сложности, на руках у компании есть бумага, которая закрепляет право на использование технологии», — объяснял он во время одного из публичных выступлений.
Microsoft, как и Google, в последнее время действительно патентует технологии для защиты, а не исков, подтверждает партнер фонда Gagarin Capital Николай Давыдов. По его словам, в Калифорнии очень мягкие законы: сотруднику нельзя запретить конкурировать и переманивать людей. «Если компания и правда нарушала договоры и патенты, то проблемы могут начаться во время бурного роста или продажи конкурентам — до этого размер судебных издержек превышает пользу от выигранного процесса», — добавляет эксперт.
Подобная тактика — это жизнь в большом городе, считает Шамгунов. По его словам, все компании копируют успешный опыт конкурентов, этим и хороша Долина: «Здесь постоянно происходит обмен знаниями».
Развитие бизнеса в 2011 году все же вынудило Шамгунова расстаться с Facebook: «Один из друзей убедил меня, что если не уйду, то никто не решится участвовать в MemSQL на полноценной основе. Я уволился в пятницу и выходные провел в плохом настроении: $2 млн есть $2 млн».
Долго грустить не пришлось: рынок быстро оценил серьезность намерений Шамгунова, и уже в понедельник с основателями MemSQL связался помощник известного американского инвестора Рона Конвея. Спустя 20 минут переговоров с Конвеем на счет стартапа упали $200 тыс. Еще столько же в компанию через помощника Феликса Шпильмана вновь вложил Юрий Мильнер.
Первых клиентов MemSQL нашел в акселераторе. Один из резидентов набора-2011 очень быстро рос — команда нуждалась в технологиях для масштабирования инфраструктуры, вспоминал Френкель в интервью TechCrunch в 2013-м.
Его навыки также помогли в расширении базы инвесторов. Если венчурный рынок после удачного 2011 года настигло похмелье в форме оттока денег, то MemSQL удалось сохранить интерес к себе, говорит Шамгунов: в проект тогда вложились фонды GV (бывший Google Ventures) и In-Q-Tel, связанный с ЦРУ, а также актер и бизнес-ангел Эштон Кутчер и сооснователь PayPal, уроженец Киева Макс Левчин.
Запуск со слезами на глазах
Публичный релиз MemSQL состоялся все в том же 2011-м. Для бесплатного ознакомления с программой компания выпустила специальную версию с ограничениями. «Спустя несколько дней у нас было 10 тыс. скачиваний. Пробивало на слезы — мы вложили в релиз 16 месяцев тяжелой работы», — делится Шамгунов. По его словам, демоверсией пользовались даже компании из списка Fortune 500: «После связывались с нами и спрашивали: «У нас ваша программа работает на одной машине, будет ли работать на нескольких?»
Тогда рынок баз данных, на который нацеливались основатели MemSQL, оценивался в $60 млрд в год. «Нам не страшно было запускать бизнес по двум причинам: дешевая память (за несколько тысяч долларов можно приобрести терабайт) и растущий сегмент больших данных, который требует подобных решений. У Microsoft этих решений нет — мы знаем, мы там работали», — говорил Шамгунов в 2012-м.
Никита Шамгунов
(Фото: Damien Maloney для РБК)
По его словам, главное в b2b-софте — широкий ассортимент предложений для всех категорий клиентов. «В самом начале мы экспериментировали: называли разным людям разные цифры и следили за реакцией», — вспоминает предприниматель. Шесть лет назад он называл $25 тыс. в год за стандартный набор услуг MemSQL и $5 тыс. за каждый новый узел в системе. Эти расходы потянули десятки крупных компаний, встроивших систему MemSQL в свою ИТ-инфраструктуру. СУБД участвует в цепочках расчетов производителя продуктов Kellog’s, Cisco, Samsung Electronics и других игроков глобального масштаба.
Поначалу шум на рынке вызвали бравурные заявления стартапа о создании самого быстрого продукта в сегменте, который якобы работает в 30 раз быстрее ближайшего конкурента. Позже Шамгунов признался в маркетинговой уловке: «Любой инженер скажет, что сравнение скорости некорректно, так как компании часто используют выгодные им инструменты замера».
Публично оппонировал MemSQL бывший коллега Шамгунова и Френкеля по Facebook Домас Митузас. В личном блоге он раскритиковал заявление стартапа и аргументировал выводы примерами из системы конкурента — MySQL. «Прошло всего ничего после запуска, посреди ночи мне звонит Эрик и спрашивает, видел ли я пост Домаса. Мы сели готовить ответ», — говорит Шамгунов. Оказалось, Митузас неправильно составил запрос, ориентируясь на логику MySQL, отличную от MemSQL.
Так или иначе, но шум поднялся капитальный и о новом стартапе узнали на рынке, заключает предприниматель. Количество скачиваний в день скандала зашкалило, утверждает он. Шамгунов пришел в комментарии под постом Митузаса и в деталях объяснил природу ошибки: «Это победило выводок троллей. На следующий день мы опубликовали пост, в котором объяснили методику нашего подсчета и поставили точку в дискуссии». Шамгунов уверен, что пережить стрессовый период компании помогло философское отношение: «Гораздо проще убедить противника, чем человека, которому все равно».
Время и open source
Со временем функции MemSQL расширились. Продукты компании ее клиенты сегодня используют и для мониторинга состояния инфраструктуры, и для проектов в перспективной нише интернета вещей, и для бизнес-аналитики на лету. «MemSQL — это аналитическая платформа. Акцент на in-memory давно исчез. Многие таблицы сегодня не в памяти», — рассказывает Александр Скиданов, покинувший стартап.
Продукт менялся вместе с трендами на рынке, объясняет он: оригинальная стратегия не предполагала создания инструмента для работы с транзакционными базами данных, в которых каждая запись означает отдельную операцию. Изменили стратегию довольно быстро: уже в 2012-м Шамгунов рассказывал о популярности больших данных и необходимости работы с ними: «Все одержимы аналитикой, а мы предлагаем делать ее в реальном времени».
MemSQL также поддерживает отслеживание локации пользователей, на его основе можно построить приложения с высокими запросами. А один из последних кейсов — быстрые базы данных для приложений, способных распознавать предметы на фотографиях с помощью искусственного интеллекта. Этим занимается один из клиентов MemSQL — немецкая компания Everybag.
Среди конкурентов Шамгунов выделяет решения от Amazon (AWS Aurora), Google (Spanner) и Oracle. «В сегменте много новых баз данных, мы ждем их консолидации в нечто крупное», — прогнозирует предприниматель. Рынок, по его словам, «очень горячий»: на фоне глобальной цифровой трансформации и растущих объемов информации любая, даже самая крупная компания может мгновенно растерять преимущество «из-за агрессивных конкурентов».
MemSQL как бизнес чувствует себя уверенно, подчеркивает предприниматель. $30 млн инвестиций, привлеченных в мае, тратятся на развитие инфраструктуры и расширение команды: по подсчетам Y Combinator, компания создала уже около 80 рабочих мест. «Мы пока работаем в убыток, но точно находимся ближе к окупаемости, чем конкуренты из корпоративного сегмента», — считает Шамгунов. По его словам, на IPO компания не собирается.
За восемь лет существования проекта его преимущества практически не изменились: компания предлагает быстрый и недорогой по сравнению с конкурентами набор решений для работы с данными, возможность использовать для развертывания любое облачное решение и обработку информации практически в реальном времени, перечисляет Шамгунов. Сам он продолжает вкладывать немало усилий в масштабирование бизнеса — Эрик Френкель отошел от оперативного управления, чтобы посвящать больше времени семье.
Шамгунов не скрывает гордости за свое детище: «Мы многого достигли. Когда начинали, было трудно представить, что такой сложный софт можно написать такой небольшой командой». Размышлять в сослагательном наклонении о перспективах подобного бизнеса на родине он не хочет: «Преуспеть можно где угодно, в жизни нет четких правил. Если бы мы запускались в России, времени ушло бы больше и проект пришлось бы делать по модели open source».
программирование, сон, книги, советы «за жизнь» / Хабр
«Каждый день я просыпаюсь и делаю самое интересное, что я могу придумать.»
Когда я первый раз бегло просмотрел 961 ответ Джимми Уэйлса на Quora, я выписал несколько самых интересных, чтобы «заглянуть в голову» человеку, который сделал, пожалуй, самый полезный проект для человечества с ярко выраженной ИТ-составляющей (сам Джимми не считает Wikipedia ИТ проектом, а считает социальным коммьюнити-проектом).
Некоторые ответы пересекаются, некоторые противоречат друг другу, так как здесь «солянка» с 2011 по 2018 год, но все они полезны, на мой взгляд, чтобы отточить и свое мышление, и способность давать вежливые ответы, и задавать извлекающие вопросы. Понять, чем Джимми Уэйлс руководствуется при принятии решений, как делает выбор, как расставляет приоритеты, как сморит на жизнь.
При втором и третьем прочтении ответов (961… не спрашивайте сколько летних солнечных дней и звёздных ночей это заняло), я уже выделил несколько тематических блоков, которые опубликую позже. Пишите свои вопросы в личку, в комменты, на почту ([email protected]), которые можно будет задать Джимми Уэйлсу от лица хабрасообщества (как когда-то мы задавали Алану Кею).
Программирование
— У Джимми Уэйлса есть аккаунт на GitHub?
— Да, у меня есть аккаунт на GitHub. Я использую его для проектов Ruby on Rails.
— Как Джимми Уэйлс учился программировать и какова последовательность, в которой он изучал языки?
— Я не могу вспомнить все детали, но я скажу вам, что смогу. Однако важно помнить об этом: я не отличный программист. Я думаю, что я даже не очень хороший программист. Но я программист.
Когда я был молод, мой дядя открыл один из первых компьютерных магазинов в моем городе. Возможно, первый. Продажа компьютеров Commodore.
На Commodore под его руководством и используя различные книги, я узнал Basic. Как вы, наверное, знаете, ужасный язык.
Позже, в колледже, я узнал немного Fortran и С. Совсем немного.
Затем, как только я отучился в аспирантуре (в сфере финансов), я понял, насколько полезным будет программирование для меня. Таким образом, я глубоко окунулся во все это однажды летом и узнал немного C и C ++. Я использовал учебные пособия Coronado C и C ++, которые в те дни распространялись как условно-бесплатные.
Позже, когда я работал в в сфере финансов в Чикаго, я изучил Perl, чтобы начать создавать сайты. Конечно, помимо прочего я должен был изучить HTML и, в конечном счете, немного Javascript, но это были первые дни в интернете, еще до того как Javascript стал так важен.
Я очень хорошо стал разбираться в Perl, и действительно, это тот язык, который я знал лучше всего.
Совсем недавно я проштудировал книгу по Ruby и прошел курс Ruby on Rails (курс Майкла Хартля — очень хороший). Я никоим образом не специалист, но в ходе моей проектной работы в социальной сети, где я играю свою роль в The People’s Operator, я очень рад, что нашел время, чтобы узнать Rails, потому что я могу прочитать код, я знаю, что возможно и что невозможно, и мне нравится работать с людьми, которые знают больше, чем я, будучи достаточно компетентными, чтобы я мог учиться у них.
— Как вы научились программировать?
— Я использовал «Coronado C Tutorial», чтобы узнать C, а затем «Coronado CPP Tutorial». Технически это был не первый мой язык программирования, так как я изучил Basic и немного Fortran до этого. Но это был первый раз, когда я действительно научился программировать, изучая указатели и объектно-ориентированное программирование.
Эти учебники по-прежнему доступны в интернете сегодня, возможно, без изменений или почти без них, поскольку основы этих языков вечны, я полагаю.
— Знает ли Джимми Уэйлс, как программировать?
— Да, знаю.
Если вы просмотрите Quora, то найдете другие ответы, которые описывают мою историю, но я расскажу вам, что я могу сделать сейчас.
В прошлом году я взял отгул на месяц, чтобы изучить Ruby on Rails. Я добрался до начального уровня профессионализма, опираясь на старые навыки программирования, которые я не использовал годами.
За последние 3 дня я с головой окунулся в кодовую базу и запустил на своем ноутбуке код прототипа для социальной сети для The People’s Operator, где я возглавляю разработку. Я думаю, что важно, чтобы лидер проекта знал технологию и мог функционировать, но это не тот случай, когда я буду ведущим разработчиком, потому что мои навыки слишком подзабыты, чтобы быть быстрыми и точными.
— Джимми Уэйлс — ученый, работающий в области компьютерных наук?
— Нет. Я программист, хотя по сравнению с настоящими профессиональными программистами я не очень хороший программист.
— Каким был первый язык программирования, который выучил Джимми Уэйлс?
— Commodore BASIC также известный как PET Basic, я полагаю.
— Какой любимый язык программирования Джимми Уэйлса?
— Ruby.
Раньше я программировал на Perl, и я все еще люблю его. Но недавно я стал изучать и использовать Ruby, и этот язык мне очень нравится. В нем все является объектом! И синтаксис компактен и логичен.
— Насколько хорошо Джимми Уэйлс знает программирование?
— Я хороший, но не отличный программист.
Я начал изучать его в средней школе. Языки, на которых я программировал ради развлечения или профессионально, включают в себя: Fortran, Pascal, C, C ++, Perl, PHP, JavaScript и Ruby. Языки, которых я вообще не знаю, включают в себя: Python, Lisp и еще некоторые.
Из них мне лучше всего давался Perl. В JavaScript я никогда не делал ничего, кроме небольших фрагментов на веб-страницах, и не так много.
Я не писал код профессионально уже много лет. У Wikipedia и Wikia много замечательных программистов, поэтому у меня нет необходимости этим заниматься. 🙂
Прошлой осенью я изучил Ruby, и сейчас я учу Ruby on Rails. Я делаю это по лучшей причине: есть что-то, чего не существует, что, как я думаю, должно существовать, и очень интересно создавать вещи, которые должны существовать.
— Я разрываюсь между графическим / веб-дизайном, музыкой и путешествиями, что мне делать? (например, записаться в 10-недельный лагерь разработки, продолжая работать в архитектуре за деньги и занимаясь в ночной школе графического дизайна или путешествовать в течение некоторого времени и сосредоточиться на музыке)
— Если вы изучите Rails в лагере, вы сможете создать веб-сайт для людей, которые хотят путешествовать ради музыки. Должно быть в мире много людей, которые мечтают отдохнуть летом, чтобы последовать за любимой группой и им нужно найти друзей, которые захотят поехать с ними. Есть также множество людей, которые мечтают увидеть прекрасную группу в удивительном путешествии по всему миру.
Таким образом, вы сможете сочетать все свои страсти и интересы и, возможно, заработаете много денег. И даже если не заработаете, сайт останется просто удивительным маленьким сообществом таких людей, как вы, это был бы прекрасный способ иметь полноценную жизнь, не так ли?
Одна из возможностей, которая не была бы огромным обязательством, заключается в том, чтобы купить учебник Майкла Хартла Rails и тратить по часу каждую ночь, разбираясь с ним. Это недорогой и низкоприоритетный способ проверить, действительно ли вы хотите заниматься чем-то подобным.
Сон
— Джимми Уэйлс утверждает, что сон очень важен для успеха. Что он думает о многих других чрезвычайно успешных людях, получающих такое небольшое количество сна?
Для некоторых из них, я думаю, это просто естественно. Если вы сами по себе не просыпаетесь после короткого сна, тогда вы, вероятно, не относитесь к таким людям.
Некоторые из них, я думаю, совершают ошибку. Они были бы еще более успешными, если бы отдохнули должным образом.
И касательно многих людей или большинства слухов я думаю, что это просто неправда. Людям нравятся истории людей, которым не нужно спать больше, чем несколько часов в сутки, возможно, в некотором смысле, потому что это заставляет их чувствовать себя лучше касательно их собственных недостатков — то есть, если бы я был генетически иначе устроен, или если бы я хотел заставить себя страдать, я мог бы быть более успешным, но я не могу или предпочитаю не делать этого.
Я думаю, что в этой области многие мыслят неправильно.
— Сколько часов в сутки вообще спит Джимми Уэйлс? Меньше, чем среднестатистический взрослый? Я всегда думал, что действительно успешным людям просто не нужно столько сна, чтобы оставаться бдительными и высокофункциональными.
— Я сплю по 8 часов примерно каждую ночь. Когда я могу, я сплю больше. Я верю в сон. Я думаю, что большая ошибка, которую делают молодые люди, когда хотят быть успешными, — это лишить себя сна. Это ужасно глупо.
Как лишение сна влияет на умственные способности? У великих людей, таких как Эйнштейн, Фейнман и Рамануджан, есть какой-то способ спать меньше? Если нет, то как они справились со своей работой?
Я думаю, что обмануть сон можно, но я думаю, что основная часть доказательств указывает на нечто противоположное тому, о чем вы, кажется, думаете и противоположное тому, о чем думает большинство людей. Но так и должно быть, таким и должен быть классный обман сна. 🙂
Лучший способ обмануть сон — не преследовать какой-то причудливый режим, который, как мы надеемся, обманет наше тело, чтобы меньше спать. Вы можете тренироваться, чтобы меньше спать — но вы будете когнитивно ослаблены и менее продуктивны, так что в чем смысл?
Так что обманывайте сон по системе одного из величайших обманщиков сна всех времен, Бенджамина Франклина. «Ранний отход ко сну и раннее пробуждение делает человека здоровым, богатым и мудрым».
Ложитесь спать и убедитесь, что ваш сон эффективен. Никакого кофеина во второй половине дня. Никаких светящихся экранов и огней по вечерам. Ложитесь спать рано. Вставайте естественно, но намного раньше, чем если бы вы были социализированы и смотрели телевизор до полуночи.
В случае, если кто-то задается вопросом, я сам это все не делаю. Но у меня бывают очень продуктивные периоды в жизни, и теперь я должен стать еще лучше.
— Как мне преодолеть недостаток сосредоточенности к GMAT?
— В качестве ориентира, много лет назад я набрал 750 баллов по суммарной шкале GMAT по шкале 200-800.
Мой совет вам: спать. Спите 9 часов в сутки. 10, если вам это нужно. Этот дополнительный час или два исследований в день не принесет вам никакой пользы, если вы так устали, что просто занимаетесь этим из чувства долга или конкурентоспособности или чего-то, что вам говорят люди.
Много спите. Проснитесь. Выпейте кофе. Закопайтесь в книги и будьте тем сверхчеловеком, которым вы являетесь в своих мечтах. Будьте таким собранным, сосредоточенным человеком в течение нескольких часов в день, и тогда вы будете знать, как это сделать во время тестирования.
Затем, перестаньте употреблять кофеин ка можно раньше, чтобы вы могли… спать. Спите 9 часов в сутки. 10, если вам это нужно.
— Как можно преодолеть снижение активности? Я студент 12-го класса. Хотя я увлечен математикой, мне не хочется изучать что-либо. Я все время чувствую сонливость. Как я могу учиться? Я медитирую, но это бесполезно.
— Хотя я согласен в какой-то степени с другими ответами, я хотел бы предположить, что 9 часов сна ночью это нормально (вы — подросток, вы должны спать немного больше, если есть возможность), но еще 5-6 часов сна днем являются чрезмерными до такой степени, что вы можете проконсультироваться об этом с врачом.
Стоит почитать про чрезмерную дневную сонливость.
Что касается нежелания заниматься «официальной» учебой, я могу только посочувствовать. Здесь я согласен с другими ответами, но могу сказать, что я никогда не пользовался своим собственным советом и, следовательно, имел ужасную успеваемость в школе во время большей части своего подросткового периода. Иногда вам нужно просто забить и прорываться через некоторые скучные задания.
Но опять же, я думаю, что чрезмерный сон — это предупреждающий знак от вашего тела. Сходите проверьтесь!
— Джимми Уэйлс летает первым классом?
Я путешествую по воздуху больше, чем кто-либо.
Иногда я летаю первым классом. Люди часто платят за мое путешествие, когда я прихожу, чтобы выступить с речью для них, и это обычно бизнес-класс, но иногда первый класс. И поскольку я летаю довольно много, я иногда получаю обновление от бизнес класса до первого класса.
Я почти никогда не буду летать первым классом, если я сам оплачиваю перелет. Бизнес-класс часто стоит того, потому что я могу спать и быть более продуктивным, а также тратить меньше времени вдали от дома (нет необходимости планировать дополнительное время для восстановления после полета без особого сна). Но обновление от бизнес класса до первого класса обычно того не стоит.
Однажды я заплатил за поездку первым классом из Лондона в Мексику, потому что по неизвестным причинам это было фактически дешевле, чем бизнес класс.
Наконец, всякий раз, когда я говорю о полетах, я хотел бы подчеркнуть, что Фонд Wikimedia заплатил только за 1 мой рейс… Я думаю, это было почти десять лет назад. Когда я работаю с Фондом (например, присутствую на заседаниях совета), я настаиваю на том, чтобы самому платить за свои рейсы.
Работа
— Что побудило Джимми Уэйлса стать предпринимателем, а не заниматься корпоративной карьерой?
Я был бы ужасным сотрудником. Каждый день я встаю и делаю самое интересное, что я могу придумать.
— В чем заключалась первая работа Джимми Уэйлса?
Я разносил газеты. Технически это не было «работой», потому что, поскольку она была организована, разносчики газет покупали газеты оптом и продавали их в розницу, а это означало, что мы получали прибыль, если хорошо делали свою работу и получали больше клиентов и не перезаказывали газеты и не теряли их, и мы теряли деньги, если работали плохо.
Это часто считается отличным упражнением по становлению личности и отличным обучением работы предпринимателем. Я думал, что это отличный опыт, демонстрирующий как мало можно получать, если заниматься ручным трудом и, следовательно, это отличный стимул для получения образования!
Моя первая фактическая «работа» с зарплатой была работой в продуктовом магазине упаковщиком.
— Вы считаете себя предпринимателем? Вы получаете зарплату из фондов Wikipedia?
Да, я предприниматель. Я сам основал несколько организаций за последние несколько лет и участвовал в нескольких стартапах как коммерческих, так и некоммерческих.
Нет, я не получаю зарплату от Wikipedia. За редким исключением, я даже не получаю возмещения расходов. Wikipedia — моя благотворительная работа.
— Знает ли Джимми Уэйлс стоимость своего состояния?
Нет, и я не думаю, что кто-то знает стоимость своего состояния. Как ты можешь знать?
У меня есть старая софтбольная перчатка. Сколько это стоит? 🙂 Чтобы точно узнать стоимость своего состояния, я должен был бы получить достоверную оценку ценности всего, что у меня есть. Чтобы казаться менее глупым, у меня есть 5-летний автомобиль Hyundai… Я понятия не имею, сколько он стоит на рынке, потому что, зачем мне это знать? Я вожу его, и он отлично работает, и это важно.
Даже предприниматели, чей основной актив с очень широкой маржой составляет акции в высоколиквидной компании котирующейся на бирже, вряд ли смогут очень точно оценить, что они могут получить, если вдруг действительно попытаются продать это все сразу.
— Каковы шансы Джимми Уэйлса стать миллиардером?
— Сначала я подумал: какой глупый вопрос. Потом я подумал: какой глупый вопрос, но было бы забавно попытаться воспринимать его всерьез.
По данным Forbes, по состоянию на 1 марта 2016 года в мире насчитывается 1 810 миллиардеров. Я предполагаю, что они завысили нескольких людей и пропустили нескольких других, но это цифра, достаточно близка для наших целей.
В мире насчитывается около 7,5 миллиардов человек.
Поэтому нашу первую оценку можно найти, просто разделив одно число на другое.
Пока что шансы есть: 0.000024% Это около 1 к 4 миллионам.
Но такой расклад предполагает, что я располагаюсь в среднем положении на Земле. Но очевидно, что это не так. Я нахожусь в очень удачном положении, уже родившись белым мужчиной американцем. Недавние подсчеты насчитывали 516 миллиардеров в США, и большинство из них белые мужчины, давайте просто скажем навскидку, что в США 400 белых мужчин-миллиардеров из примерно 90 миллионов белых мужчин в США.
Пока что шансы есть: 0.000444% Это примерно в 18 раз больше, чем раньше! Мы достигли 1 к 225 000.
Но посмотрите, даже это не очень точная оценка. Я нахожусь в еще более удачном положении. Предположим, что, находясь в удачном положении, будучи хорошо известным и зная много миллиардеров, мои шансы увеличиваются в 10 раз.
Таким образом, мы получаем 1 к 22 500.
Но тогда мы должны учитывать то, что, возможно, является самым важным фактором: желание осуществлять тотальное стремление к богатству во всех других целях. Мне 50 лет. Мне нравится то, что я делаю. Я никогда не был даже приблизительно так же заинтересован в деньгах, как в делах, которые я считаю важными и интересными.
Так что на самом деле, шансы в итоге сводятся к чему-то почти неотличимому от нуля для всех практических целей.
Предвзятость
— Что является фактом для Джимми Уэйлса?
— Поскольку язык это сложная концепция и поскольку многие люди неточны в использовании языка, вы можете подразумевать здесь несколько разных вещей. Я приму это как вопрос, относящийся к эпистемологии, напоминая вам о том, что я не профессиональный философ, который тем не менее в своей жизни уделял много внимания таким вопросам и думал о них, я объясню, что я имею в виду, когда я использую слово «факт».
Мы делаем заявления (или предположения) о мире: Солнце светит, вода состоит из h3O, 2 + 2 = 4 и т. д. Правильно сформированные утверждения являются либо истинными, либо ложными.
Истина является результатом идентификации фактов действительности.
«Факт» — это нечто, что находится «там» — нечто в мире, соответствующее чему-либо в нашем сознании. Ложь, которая может быть результатом ошибки или нечестности, — это утверждение, которое не идентифицирует факты действительности.
Факты имеют значение, и в очень реальном смысле наша фундаментальная когнитивная моральная ответственность заключается в выявлении фактов.
Существует еще одно, более случайное, использование слова «факт», которое слегка отличается. Мы можем сопоставить факты с простым мнением и использовать слово «факт», чтобы идентифицировать утверждения, в истинности которых мы совершенно убеждены.
— Какой из сайтов на ваш взгляд самый предвзятый? Quora, Reddit или Wikipedia?
— Я не думаю, что понятие «предвзятый» действительно может быть применено как к Quora, так и к Reddit — поскольку они поощряют людей и позволяют им публиковать свои личные взгляды и мнения, конечно, многие из них будут предвзяты по-своему.
Давайте сосредоточим внимание на Reddit на мгновение — он разделен на «подфорумы» и для каждого из них есть свой модератор — так что вы получаете очень много патриотичных и аполитичных подфорумов, которые очень предвзяты.
Wikipedia — единственная из тех платформ, которая стремится не быть предвзятой или категоричной. Нам удается преуспевать в большей или меньшей степени за счет естественных человеческих недостатков.
Книги
— Какую книгу сейчас читает Джимми Уэйлс?
— Я только что закончил читать Ruby on Rails Tutorial Майкла Хартла.
— Успешные люди вроде Джимми Уэйлса, Джейсона М. Лемкина и Дэвида С. Роуза, читали мотивационные книги на своем пути к успеху?
— Я не являюсь огромным поклонником таких книг, но я прочитал некоторые из них, которые были очень хорошими, и рекомендовал бы их людям, только начинающим что-то свое.
«7 навыков», в частности, очень хорошая книга.
Тони Роббинс «Разбуди в себе исполина» — это довольно паршивая книга, но если вы осознаете какая она на самом деле и улавливаете лишь стоящие моменты, то она довольно мотивационная.
“Ваши деньги или ваша жизнь”, которая по сути не является типичной “книгой об успехе” на самом деле является той книгой, которую я считаю весьма полезной с точки зрения понимания того, как мало денег на самом деле нужно, чтобы жить и быть счастливым.
Помните — чем меньше денег вам необходимо для жизни, тем больше денег, доступных для того, чтобы заниматься классными вещами.
Одна из проблем в со всеми этими книгами заключается в том, что они практичны и поверхностны, а не помогают вам установить серьезный и долгосрочный философский взгляд. Для этого я рекомендую что-либо из ранних работ Айн Рэнд или Натаниэля Брандена.
— Какая у Джимми Уэйлса любимая книга?
Она часто меняется. На данный момент это учебник по Ruby on Rails от Майкла Хартла. 🙂
В долгосрочной перспективе я должен сказать, что “Источник” Айн Рэнд — это книга, которую вам стоит прочитать, если хотите узнать больше о том, как я мыслю.
Прочие вопросы
— Какая самая сумасшедшая вещь, которой владеет Джимми Уэйлс?
— На мой взгляд это фонарик Surefire M6 Guardian.
Это серьезно безумно яркий фонарик. Сейчас ему уже несколько лет, и сейчас на рынке есть еще более яркие фонарики, но это красиво спроектированная штука, и она просто нереальная.
— Почему Джимми Уэйлс, основатель Wikipedia, принял участие в Бильдербергской встрече в 2011 году?
— Я не присутствовал на Бильдербергском собрании в 2011 году или в любом другом году. Меня никогда не приглашали. Я понятия не имею, почему у спрашивающего появилась идея о том, что я там был, но, как мы говорим в Wikipedia: нужна ссылка на источник!
— Какую ОС для смартфонов предпочитает Джимми Уэйлс и почему?
— Android, потому что эта ОС с открытым исходным кодом (вроде как по большей части, частично — в зависимости от того, что вы понимаете под открытым исходным кодом).
— Какую машину водит Джимми Уэйлс?
— В Лондоне у меня нет машины. Во Флориде у меня Hyundai.
— Кто выиграет в борьбе между Джимми Уэйлсом и Джулианом Ассанжем?
Как пели the Kinks «Я любовник, а не боец — И я рожден для скорости».
Он живет рядом с Гайд-парком, поэтому я предлагаю устроить забег. От его дома до моего.
Он намного выше меня, и я уверен, что он может бегать быстрее меня. Поэтому он легко победит, за исключением того, что ему придется опередить не только меня, но и полицию. 🙂
— Будет ли Джимми Уэйлс тайно предоставлять деньги высокопрофессиональному и талантливому ученику, чтобы он мог продолжить свое образование?
— Нет, не думаю. Я не думаю, что это будет здорово. Если рассматривать это как инвестицию, она в среднем почти не окупится. Если рассматривать это как благотворительность, вряд ли она будет достаточно эффективной, и часто будет приводить к плохим эмоциональным последствиям для всех, кто вовлечен.
Я с большей вероятностью нанял бы очень амбициозного и талантливого студента на неполной основе. Это почетный обмен пользы на деньги, который не создает долгосрочную задолженность или зависимость.
— Какое у Джимми Уэйлса мнение о хактивизме?
— В очень многих случаях такие действия в лучшем случае являются контрпродуктивными. Они редко добиваются чего-то большего, чем простое беспокойства у цели, но они вызывают очень плохое впечатление у широкой публики.
Я мечтаю о том, чтобы такой же талант был обращен в работу над созданием вещей, которые смогут реально организовать людей для позитивных перемен.
Я надеюсь, что молодые люди, склонные к этому направлению, остановятся и глубже, дольше и умнее посмотрят на то, насколько влиятельными они/мы могли бы быть/могут быть, если мы объединимся и мудро используем наши силы. В книге “Родина”(Homeland) Кори Доктроу есть кое-что отлично иллюстрирующее то, что я имею в виду.
— Почему Джимми Уэйлс хочет знать редактировал ли когда-либо Эдвард Сноуден Wikipedia?
— Основываясь на всем, что я читал до сих пор, я большой поклонник Эдварда Сноудена. Я думаю, что он сделал что-то смелое и по уважительным и принципиальным причинам. Одна из вещей, которые мне действительно нравятся в том, что он сделал, чтобы внести ясность, это тот факт, что его утечка была избирательной и в основном абстрактной. Он не представил никаких реальных подробных операций против законных военных целей, находящихся под угрозой, но он привлек к общественному сознанию некоторую деятельность, которая явно шокирует большинство людей — такую деятельность, которая заслуживает открытых публичных дебатов.
Известно, что он был активным в интернете будучи подростком. Его юношеские посты в Ars Technica широко обсуждались и анализировались, и он рисовал картину, которая помогает нам понять, как он превратился в человека, которым он является сегодня.
Я создал публичное обсуждение публичных фактов — НЕ разоблачение. Стоит отметить, что человек, который написал эту статью, — это человек, который отправил фотографию себя с ружьем и описание, в котором фантазируют о перестрелке со мной. Не верьте пиару, это абсурдно.
Как оказалось, похоже, что редактирование Wikipedia не произошло с помощью имен пользователей, которые уже обсуждались в этой статье. Помните, вы сами можете это проверить — все изменения в Wikipedia являются общедоступными.
— Почему практически невозможно выучить какую-либо математическую концепцию в Wikipedia? Ее очень трудно уловить, особенно если у вас нет хорошей базы в предмете.
— Одной из многих вещей, которых нет в Wikipedia, является учебник. Существует причина, по которой учебники написаны так как они написаны, а энциклопедии написаны по-другому.
Как говорили другие пользователи, можно узнать много математики из Wikipedia, но по дизайну она не структурирована в пошаговой последовательности, чтобы облегчить обучение с нуля. И не должна.
— Какая образовательная среда у детей Джимми Уэйлса? Они ходят в традиционную школу? Монтессори? Домашнее обучение? Вообще не ходят в школу?
— Моя 12-летняя дочь обучается на дому. Мой 2-летний сын, скорее всего, пойдет в обычную школу в Англии.
— Джимми Уэйлс ненавидит Билла Гейтса, так же как его ненавидят многие американцы?
— Нет, я не ненавижу Билла Гейтса. Прежде чем я скажу больше, я хотел бы указать, что есть предположение в вопросе, которое я считаю неверным, т. е. что «многие американцы» его ненавидят… недавний опрос Readers Digest назвал его седьмым человеком в Америке, которому доверяют больше всего См .: Что такое доверие: 100 людей в Америке, пользующихся наибольшим доверием | Ридерз Дайджест. Так что да, некоторые люди ненавидят его, но то же самое можно сказать о ком угодно в глазах общественности.
Я встречался с Биллом Гейтсом несколько раз, недостаточно, чтобы сказать, что я действительно его знаю, но достаточно, чтобы он знал мое имя и знал чем я занимаюсь, и мог сказать «Привет, Джимми», когда видит меня.
Он потрясающе умный и невероятно хорошо разбирающийся в вопросах, которые ему не безразличны. Чтобы послушать его, поговорите с ним о некоторых проблемах со здоровьем (в частности, вакцинах), в которых заинтересованы в фонде Гейтса, то, что вы услышите, может стать для вас откровением.
И хотя я не согласен и могу критиковать некоторые (или многие) вещи, которые делали Microsoft в тот или иной период времени, я могу сказать то же самое о многих организациях, включая крупные предприятия, благотворительные организации и правительственные. Я не считаю ошибки или грехи Microsoft того же уровня как ошибки многих других ужасных организаций. Поэтому для меня было бы очень странно (или для кого угодно, если честно, если бы не было какой-то конкретной причины иметь личные счеты), испытывать по отношению к Гейтсу или к Microsoft определенную ненависть.
Я принадлежу к сообществу FOSS (free source/open source), где многие люди традиционно рассматривают Microsoft как ключевого конкурента/врага. Но стоит отметить, что все миллионы слов изверженного яда от людей, которые не произвели ничего ценного и не оказали никакого воздействия на мир, ничего не значат. Усердная работа хороших программистов означала, что FOSS продолжает (до сих пор) доминировать с точки зрения фактического функционирования интернета. Ненависть — пустая трата времени.
— Какой совет Джимми Уэйлс дал бы молодому поколению?
— Я думаю, что одним из самых важных советов, который я могу дать молодым людям, является то, что вы должны стараться устроить свою жизнь таким образом, чтобы вы минимизировали свои потребительские расходы настолько, насколько это практически возможно, чтобы у вас было как можно меньше долгов.
Зачем?
Если вы хотите сделать что-то интересное в своей жизни, вам понадобится определенная степень финансовой независимости, под которой я имею в виду возможность выбора без необходимости задумываться непосредственно о денежных средствах.
Предположим, вы устраиваетесь на свою первую работу и сразу же принимаете различные решения о том куда потратить деньги, чтобы потратить всю или большую часть вашей зарплаты, погрязая в долгах, чтобы сделать это. Самый распространенный способ сделать это — купить автомобиль и арендовать прекрасную квартиру. Теперь, спустя 6 месяцев, когда вы осознали, что ваш босс придурок и вы захотели сменить работу, у вас есть большая проблема.
Потребительские расходы (в отличие от инвестиционных расходов) в основном не нужны для дохода. В некоторых случаях (встречи с клиентами и т. д.) вам нужно будет вложить какие-то деньги (хороший тон для бизнеса). Сейчас речь не о них — это траты на бизнес. Держите их под контролем, конечно, но суть не в этом.
Для тех, кто лучше воспринимает информацию с прилагаемыми цифрами, рассмотрим это таким образом. Предположим, вы хотите, чтобы у вас было достаточно денег, чтобы иметь возможность не работать год, и вы хотите сохранить свой образ жизни в течение этого года. Как урегулирование ваших потребностей в потреблении поможет с этим? Предположим, вы начинаете с нулевой экономии. Предположим для простоты, что вы можете найти безопасные инвестиции в соответствии с уровнем инфляции… хотя это довольно оптимистично!
Если вы будете тратить на 5% меньше, чем зарабатываете, вам потребуется 20 лет, чтобы сэкономить годовую зарплату. Это никогда не сработает, потому что через 20 лет ваша жизнь полностью изменится, вы, вероятно, поженитесь и родите детей. И кто хочет ждать 20 лет, чтобы не работать один год и осуществить свою мечту?
Если вы будете тратить на 50% меньше, чем зарабатываете, вам потребуется всего два года. Намного лучше.
Но посмотрите! В приведенных рассуждениях есть ошибка, и я хочу, чтобы вы заметили её. Вы не пытаетесь накопить «зарплату за один год», а скорее пытаетесь сэкономить «годовые расходы».
Поэтому, если вы будете тратить на 5% меньше, чем зарабатываете, тогда вам понадобится всего 19 лет, чтобы получить этот год свободы. (Потому что вам нужно сохранить только 95% своей зарплаты!)
И если вы будете тратить на 50% меньше, чем зарабатываете, тогда вам понадобится 1 год (не 2!), чтобы получить этот год свободы, потому что ваши расходы меньше.
У сокращения ваших умственных ожиданий касательно того сколько вам нужно потратить, чтобы быть счастливым, есть два положительных эффекта: вы в конечном итоге экономите больше денег, и эти сэкономленные деньги в конечном итоге хранятся дольше.
Теперь для большинства молодых людей, которые будут читать это, конечной целью будет не принятие ограниченного образа жизни до конца своих дней. Но если вы действительно хотите чего-то добиться, этот метод дает вам время, которое вам нужно, чтобы попытаться.
— Каков был самый большой поворотный момент в жизни Джимми Уэйлса?
— Многие люди спрашивали меня об этом, так что слушайте.
Исходя из моего жизненного опыта, жизнь так не работает. Я думаю, что это похоже на очень распространенную теорию предпринимательства, которая предполагает, что вам нужна «одна большая идея», и богатство постучится в вашу дверь. (Это то, что заставляет многих людей бояться, что кто-то «украдет идею» — верная форма паранойи, которая убивает множество стартапов.)
Конечно, простые, но неправильные ответы включали бы «создание бесплатной онлайн-энциклопедии» или «уход с работы трейдером, чтобы основать компанию» или «изучение программирования на C, параллельно изучая что-то еще в школе».
Но моя жизнь, хорошая и плохая, — это серия решений каждый день. Некоторые решения важнее, чем другие, но ни одно из решений не важнее серии ежедневных решений. Тысячи и миллионы решений, которые вы принимаете, намного сильнее, чем любое «большое» решение.
Почему это важно? Многие молодые люди обеспокоены тем, что они примут неправильное «одно большое решение», когда наступит момент. Возможно так и будет. А может и нет. Это будет не так важно, как вы думаете. Каждый день у вас есть право решать по-другому, выбирать новый путь, а это значит принимать решения о том, изучать ли что-то новое, поработать ли лишний час или пойти домой, смотреть или не смотреть этот фильм, читать ли эту книгу или не стоит. И все эти маленькие выборы имеют решающее значение — некоторые из них будут неправильными, но старайтесь чтобы большинство из них были правильными.
— В какой благотворительной деятельности участвует Джимми Уэйлс?
— Wikipedia принадлежит Фонду Wikimedia, некоммерческой благотворительной организации 501 © (3). Я трачу большую часть времени на нее, в той или иной мере (работа над управлением, беседа с прессой, работа с сообществом), нежели чем на что-то еще. В случае с этой работой я не принимаю никаких зарплат или расходов.
— Почему кажется, что существует тенденция применять инновационные технологии по отношению к более новым проблемам, нежели пытаться найти проблемы, где более простые существующие технологии могут оказать большее влияние?
— В некоторых случаях в развивающемся мире это связано с тем, что у нетерпеливых дизайнеров и учредителей НПО слишком мало опыта в тех областях, где они пытаются помочь. Поэтому они разрабатывают решения, которые звучат очень классно и умно, сидя в Кембридже, Массачусетсе или Пало-Альто, штат Калифорния, но которые на самом деле не работают в реальном мире. Лучшие скоро узнают больше и смогут быть столь же инновационными, используя более реалистичные способы.
— Если бы Wikipedia была основана сегодня, Джимми Уэйлс создал бы ее как B-corp?
— Меня очень интересует концепция B-корпорации. Я не знаю, буду ли я рассматривать концепцию B-корпорации для Wikipedia… это историческая гипотеза с множеством переменных “что если”. Но я, конечно, был бы в этом заинтересован.
Я действительно думаю, что стоит подумать обо всех сильных сторонах и минусах. Если бы Wikipedia была коммерческим механизмом, даже с некоторыми встроенными ограничениями, средства поощрения для персонала были бы значительно разными, и не всегда в хорошем смысле. Поскольку B-корпорация является некоммерческой организацией, было бы легко получить много денег от инвесторов… которые бы тогда ожидали и заслуживали возврата денег. Получение этого возврата может побудить организацию заботиться о некоторых вещах, которые им сейчас не нужны. Я очень доволен некоммерческой структурой.
Я работаю с Лили Коул над ее стартапом, нереально сложным, и сейчас она планирует запустить его как социальный бизнес по концепции Мухаммада Юнуса. Я думаю, что это тоже интересная модель.
Я думаю, что для многих интернет-стартапов концепция B-корпорации очень хороша. Change.org — отличный пример. По самой природе бизнеса, и на благо бренда, это обнадеживает и имеет смысл для потребителей. Но в то же время основатель может привлечь капитал от инвесторов и нанять сотрудников с традиционными средствами поощрения в виде опционов на акции — и разбогатеть, если все пойдет хорошо.
Мое следующее предприятие (тссссс! Только мы здесь, в Quora, можем знать об этом!) почти наверняка будет B-корпорацией по тем же причинам.
— Почему Джимми Уэйлс считает «краудсорсинг» ужасным понятием?
Термин «краудсорсинг» исходит из термина «аутсорсинг». Основная концепция аутсорсинга — найти работу, где труд дешевле. Идея краудсорсинга состоит в том, чтобы искать самую дешевую рабочую силу из всех, заставляя общественность работать за вас.
Я думаю, что это концепция является оскорбительной и совершенно непонимающей, что происходит в сообществах интернета. Для некоторых предпринимателей в потребительском интернет-пространстве краудсорсинг представляет собой злую психологическую ловушку, которая заставляет их заниматься нереалистичными проектами.
Если ваш базовый подход состоит в том, чтобы думать: «У меня есть работа, которая вам нужна, теперь мне просто нужно заставить общественность сделать ее для меня», то вы все перепутали. Правильный подход состоит в том, чтобы думать: «Люди хотят достичь цели, мне нужно много работать, чтобы попытаться предоставить им то, что им нужно, чтобы это сделать».
Настоящие сообщества — это не ваша дешевая рабочая сила. Это настоящие люди с страстями, надеждами и мечтами. Ваша задача — помочь им делать то, что они хотят, а не извлекать из них труд.
— Что мы можем сделать, чтобы Джимми Уэйлс поговорил с нами и работал с нами, если у нас есть потрясающие идеи для стартапа?
— Отправьте мне электронное письмо. Прежде чем отправить его, просмотрите его несколько раз и удалите всю рекламу. Просто скажите мне три вещи.
Во-первых, на самом деле расскажите мне, что вы делаете. Я не хочу слышать какие-то пустые слова, просто объяснение. «Делаем мир лучше, через платформу следующего поколения для GenZ blah blah blah» — полнейшая хрень. «Мы создаем приложение для заказа пиццы. Оно лучше, чем все другие приложения, потому что похоже на Kayak — оно осуществляет метапоиск всех местных пиццерий рядом с вами, чтобы показать вам список цен согласно выбранным вами опциям» — классно.
Во-вторых, расскажите мне, как вы думаете я могу вам помочь. «Ваше видение Wikipedia вдохновило нас на контакт с вами, и мы с удовольствием от вами поработаем» — не говорит мне, что вы от меня хотите, — ерунда. «Мы хотели бы пригласить вас в качестве члена совета директоров. У нас есть инвестор, он просто ангел, но считает, что нам нужен кто-то с опытом в потребительском интернете в нашей команде. Кроме того, нам нужно познакомиться с венчурными капиталистами, и мы нацелились на 10 капиталистов, с которыми мы хотели бы работать, и думаем, что вы можете помочь нам перевести встречи с этими организациями на совершенно другой уровень». — Может, я смогу помочь с этим.
В-третьих, расскажите, как это принесет пользу мне. Я очень активен в своей благотворительной работе, но ваш стартап — это не благотворительность. (Если же благотворительность, то забудьте про последний пункт… но я уже и так являюсь советчиком во многих проектах, поэтому я, вероятно, не смогу взять на себя что-либо еще сейчас!) 🙂 «Мы думали, вам понравится встреча с молодыми предпринимателями» — ерунда. Мне в самом деле нравится встречаться с молодыми предпринимателями, я делаю это все время в рутине конференций и встречаюсь с ними через друзей и так далее. Но если вы хотите больше, чем дружеское похлопывание по спине и поощрение, тогда относитесь ко мне как к бизнесмену — давайте найдем что-то, что взаимно приятно. «Если бы вы могли присоединиться к нам в качестве советчика, мы могли бы компенсировать вам опцион на акции в количестве, соответствующем нашей стадии развития» — другое дело.
Про глобальную инициативу #philtech#philtech (технологии + филантропия)
— это открытые публично описанные технологии, выравнивающие уровень жизни максимально возможного количества людей за счёт создания прозрачных платформ для взаимодействия и доступа к данным и знаниям. И удовлетворяющие принципам филтеха:
1. Открытые и копируемые, а не конкурентно-проприетарные.
2. Построенные на принципах самоорганизации и горизонтального взаимодействия.
3. Устойчивые и перспективо-ориентированные, а не преследующие локальную выгоду.
4. Построенные на [открытых] данных, а не традициях и убеждениях
5. Ненасильственные и неманипуляционные.
6. Инклюзивные, и не работающие на одну группу людей за счёт других.
Акселератор социальных технологических стартапов PhilTech — программа интенсивного развития проектов ранних стадий, направленных на выравнивание доступа к информации, ресурсам и возможностям.
Чат в Telegram
Сообщество людей, развивающих филтех-проекты или просто заинтересованных в теме технологий для социального сектора.
#philtech news
Телеграм-канал с новостями о проектах в идеологии #philtech и ссылками на полезные материалы.
Подписаться на еженедельную рассылку
Как я 15 лет делал себе персональную Wiki для программиста · Конспекты
Существует два типа инструментов
- WYSIWYG, например, Google Doc, Word, и т.п.
- Lightweight Markup Language, например, markdown, которые можно писать в любом редакторе.
Программисты предопочтивают второе, потому что пользуются vim, emacs, кучей разных шорткатов.
Пример такой софота, который работает через Markup Languages и предназначен для wiki: Wikipad.
Григорий когда использовал Wikidpad
- 10-15 записей в день
- Текст часто меняется
- С заголовками и параграфами проблема, при чтении не видно вложенность
В итоге Григорий пришел к собственному синтаксису, похожему на markdown.
Синтаксис параграфов работает как блоки в pyton. Отступ это вложенный параграф или вложенный список. Максимальная вложенность – 6
Еще разработчики привыкли к дереву файлов(outliner)
Однако, записи программиста это не дерево, а граф. Outliner не умеет это отображать, а поиск по контенту работает лучше чем поиск по outliner.
Плагин
Сейчас Xi существует в виде плагина для раскраски синтаксиса, позволяет кликать на слова.
Каждая статья – 1 файл.
Outline`а в привычном виде нет, он переехал в начало статьи, сделан в виде ссылок на другие статьи, связанные с темой статьи.
Сейчас плагин работает в VSCode, существует отдельная цветовая схема, в которой много контрастных цветов для более гибкого обозначения типов контента. Отдельные цвета для терминов, уровня вложенности, кода, списков, примеров и т.д.
За основу взята темная тема, синтаксис разметки тоже сделан темным, чтобы сливаться с фоном редактора и не мешать во время чтения заметки.
Фичи
- Ссылки в xi поддерживаются через хеши. Т.е. можно сделать ссылку на заголовок другой статьи через якорь
- Термины выделяются пайпом
|
- На очень важные вещи, на которые обязательно нужно обратить внимение, используется вырвиглазный цвет 🙂
- Все что после вертикальной черты – код
- Списки ничем не отличаются от параграфа, можно использовать любой символ: #, *, ! и т.д.
- Есть аналог тегов
- Поиск работает через regexp по контенту, тегам, заголовкам
Для таблиц и картинок используются Google Drive и Google Sheets.
Выводы
- Развитие базы знаний это серьезная инвестиция, которая нужна не всем
- Окупается, если задачи повторяются
- Хорошо работает, если языков много
16 лучших книг для программистов / Skillbox Media
У третьего (актуального) издания на английском языке семь томов. На русский переведено четыре из них: две части первого тома, второй и третий, а также том 4А.
Перевод с английского — И. В. Красиков, С. Г. Тригуб, Ю. Г. Гордиенко
Издательство «Вильямс», 2020 год, 720 + 160 + 832 + 960 с.
Оригинальное название: The Art of Computer Programming by Donald Knuth
Зачем читать: чтобы прокачаться в вычислительной математике и анализе алгоритмов.
Сложность: 🤯 🤯 🤯 🤯 🤯
Самый классический и самый фундаментальный труд в нашей подборке: многотомник от всемирно признанного гуру в области программирования, автора 19 монографий и более сотни статей.
Труд настолько фундаментален, что в первой книге больше математики, чем программирования: математическая индукция, степени и логарифмы, матрицы и определители — вот это всё. Попадаются задания вроде «докажите утверждение» или «найдите простую замену для сложной формулы» — Кнут считает, что, прежде чем пользоваться готовыми чужими решениями, нужно разобраться в азах.
Далее в этом и последующих томах автор учит анализировать и оценивать алгоритмы, даёт «золотые решения» классических задач (сортировка, поиск, обход деревьев) — и сравнивает, чем хорошо и плохо каждое. Всё это помогает выбирать оптимальные вычислительные стратегии в реальных проектах.
Заметки на полях: читать непросто, но нужно. Тем более что про классику алгоритмизации и вычислительную сложность до сих спрашивают на серьёзных собеседованиях. А первый том «Искусства» даже завершается цитатой Билла Гейтса:
«Если вы смогли дочитать это до конца, то определённо должны отправить мне своё резюме».
Попробуете? 🙂
инфинитив | простой | программист | |||||
---|---|---|---|---|---|---|---|
соединение | эвер + причастие прошедшего времени | ||||||
причастие настоящего или герундий 1 | простой | программатор /pʁɔ.ɡʁa.mɑ̃/ | |||||
соединение | аят + причастие прошедшего времени | ||||||
причастие прошедшего времени | программа / стр.ɡʁa.me / | ||||||
единственное число | множественное число | ||||||
первый | секунды | третий | первый | секунды | третий | ||
ориентировочно | je (j ’) | вт | il, elle | ноус | vous | ils, elles | |
(простые времени) | настоящее время | программа / шт.ɡʁam / | программ /pʁɔ.ɡʁam/ | программа /pʁɔ.ɡʁam/ | программ /pʁɔ.ɡʁa.mɔ̃/ | программа /pʁɔ.ɡʁa.me/ | /pʁɔ.ɡʁam/ |
несовершенный | программа /pʁɔ.ɡʁa.mɛ/ | программа /pʁɔ.ɡʁa.mɛ/ | программатор /pʁɔ.ɡʁa.mɛ/ | программ /pʁɔ.ɡʁa.mjɔ̃/ | программа /pʁɔ.ɡʁa.mje/ | программист / pʁɔ.ɡʁa.mɛ / | |
прошлое историческое 2 | программа /pʁɔ.ɡʁa.me/ | программ /pʁɔ.ɡʁa.ma/ | программа /pʁɔ.ɡʁa.ma/ | программ /pʁɔ.ɡʁa.mam/ | программ /pʁɔ.ɡʁa.mat/ | /pʁɔ.ɡʁa.mɛʁ/ | |
будущее | программ /pʁɔ.ɡʁam.ʁe/ | программ /pʁɔ.ɡʁam.ʁa/ | программа / pʁɔ.ɡʁam.ʁa / | программистов /pʁɔ.ɡʁam.ʁɔ̃/ | программа /pʁɔ.ɡʁam.ʁe/ | программатор /pʁɔ.ɡʁam.ʁɔ̃/ | |
условно | is /pʁɔ.ɡʁam.ʁɛ/ | is /pʁɔ.ɡʁam.ʁɛ/ | programmerait /pʁɔ.ɡʁam.ʁɛ/ | программистов /pʁɔ.ɡʁa.mə.ʁjɔ̃/ | programmeriez /pʁɔ.ɡʁa.mə.ʁje/ | программатор /pʁɔ.ɡʁam.ʁɛ/ | |
(составное время ) | настоящее идеальное | настоящее указывает на эуаров + причастие прошедшего времени | |||||
pluperfect | несовершенный показатель эвер + причастие прошедшего времени | ||||||
переднее переднее 2 | прошлое историческое из эров + причастие прошедшего времени | ||||||
будущее совершенное | будущее эров + причастие прошедшего времени | ||||||
условно идеально | условное от эров + причастие прошедшего времени | ||||||
сослагательное наклонение | que je (j ’) | que tu | qu’il, qu’elle | que nous | que vous | qu’ils, qu’elles | |
(простое время ) | настоящее время | программа / шт.ɡʁam / | программ /pʁɔ.ɡʁam/ | программа /pʁɔ.ɡʁam/ | программ /pʁɔ.ɡʁa.mjɔ̃/ | программа /pʁɔ.ɡʁa.mje/ | /pʁɔ.ɡʁam/ |
несовершенное 2 | programmasse /pʁɔ.ɡʁa.mas/ | программных масс /pʁɔ.ɡʁa.mas/ | /pʁɔ.ɡʁa.ma/ | programmassions /pʁɔ.ɡʁa.ma.sjɔ̃/ | programmassiez / pʁɔ.ɡʁa.ma.sje / | programmassent /pʁɔ.ɡʁa.mas/ | |
(составные времен) | прошлое | сослагательное наклонение настоящего от эуар + причастие прошедшего времени | |||||
pluperfect 2 | несовершенное сослагательное наклонение шоир + причастие прошедшего времени | ||||||
императивный | — | | — | | | — | |
простой | — | программа / шт.ɡʁam / | — | программ /pʁɔ.ɡʁa.mɔ̃/ | программа /pʁɔ.ɡʁa.me/ | — | |
соединение | — | простой повелительный наклон эвер + причастие прошедшего времени | — | простой повелительный наклон эвер + причастие прошедшего времени | простой повелительный наклон эвер + причастие прошедшего времени | — | |
1 Французский герундий можно использовать только с предлогом en . | |||||||
2 В менее формальном письме или речи прошлые исторические, прошедшие передние, несовершенные сослагательные наклонения и плюсоверштенные сослагательные наклонения могут быть заменены указательным совершенным настоящим, указательным плюсовершенным, настоящим сослагательным наклонением и прошлым сослагательным наклонением соответственно (Кристофер Кендрис [1995], Освойте основы: французский язык , стр. 77, 78, 79, 81). |
Программирование — Wikiquote
Компьютерное программирование (часто просто программирование или кодирование) — это искусство написания набора команд или инструкций, которые позже могут быть скомпилированы и / или интерпретированы, а затем по своей сути преобразованы в исполняемый файл, который является электронным. машина может выполнять или «запускать».
Цитаты по программированию [править]
- Чем чище и приятнее программа, тем быстрее она будет работать. А если этого не произойдет, сделать это будет легко.
- Дважды меня спрашивали: «Молитесь, мистер Бэббидж, если вы введете в машину неправильные числа, получатся ли правильные ответы?» В одном случае этот вопрос задавал член верхней, а в другом — нижней палаты. Я не могу правильно понять, какая путаница идей может вызвать такой вопрос.
- Чарльз Бэббидж, Отрывки из жизни философа (1864), гл. 5: «Разностная машина № 1»
- Игра с указателями похожа на игру с огнем. Огонь, пожалуй, самый важный инструмент, известный человеку. При осторожном использовании огонь приносит огромную пользу; но когда огонь выходит из-под контроля, случается беда.
- Джон Барнс, Программирование на Аде 2012 , Cambridge University Press, 2014, стр. 189
- Программист, как и поэт, работает лишь немного в стороне от чистой мысли.Он строит свои воздушные замки из воздуха, создавая напряжение воображения. Немногие средства творчества настолько гибки, их так легко отшлифовать и переработать, так легко можно реализовать грандиозные концептуальные структуры … видимые выходы отделены от самой конструкции. […] Магия мифов и легенд сбылась в наше время. Человек набирает правильное заклинание на клавиатуре, и экран дисплея оживает, показывая вещи, которых никогда не было и не могло быть.
- Программирование компьютеров было таким увлекательным занятием. Вы создаете свою собственную маленькую вселенную, а затем она выполняет то, что вы ей приказываете.
- Винт Серф, «отец Интернета», цитируется в интервью «Your Life: Vinton Cerf» с Дэвидом Франком в бюллетене AARP (декабрь 2016 г., том 57, № 10, стр. 28).
- Компьютерные программы являются наиболее сложными, тонко сбалансированными и тонко переплетенными из всех продуктов человеческого труда на сегодняшний день.Это машины, у которых движущихся частей гораздо больше, чем у любого двигателя: части не изнашиваются, но они взаимодействуют и трутся друг о друга способами, которые сами программисты не могут предсказать.
- Джеймс Глейк (2002) Что только что произошло: хроника с информационного фронтира . п. 19 цитируется по: Джордж Степанек (2005) Секреты программных проектов: почему программные проекты терпят неудачу . п. 10
- Прикладное программирование — это гонка между разработчиками программного обеспечения, которые стремятся создавать программы, защищенные от идиотов, и вселенной, которая стремится производить более крупных идиотов.Пока что Вселенная побеждает.
- Рик Кук, The Wizardry Compiled (1989) Ch. 6
- Эффективное использование его способностей к абстракции следует рассматривать как одно из важнейших направлений деятельности компетентного программиста.
- Компьютеры — это попытка человека создать кошку: она делает все, что хочет, когда хочет и редко когда-либо в нужное время.
- Если вы солгаете компьютеру, он вас достанет.
- Не существует языка программирования, независимо от его структуры, который не позволял бы программистам создавать плохие программы.
- Ларри Флон (1975) «Об исследованиях в области структурного программирования». СИГПЛАН Нет. , 10 (10), pp.16–17
- Если я спрошу другого профессора, что он преподает на вводном курсе программирования, ответит ли он гордо «Паскаль» или робко «Фортран», я знаю, что он обучение грамматике, набору семантических правил и некоторым готовым алгоритмам, позволяя студентам самостоятельно открывать для себя какой-либо процесс проектирования.
- Независимо от того, насколько хороша демонстрация на репетиции, когда вы делаете ее перед живой аудиторией, вероятность безупречной презентации обратно пропорциональна количеству людей, которые смотрят, в зависимости от суммы денег. вовлеченный.
- [Это] напоминает мне цитату из того, что всякий раз, когда он пытался объяснить логическую структуру языка программирования программисту, это было похоже на кошку, пытающуюся объяснить рыбе, что значит быть мокрым. .
- Есть два способа создания дизайна программного обеспечения. Один из способов — сделать его настолько простым, чтобы явно не было недостатков. А другой способ — сделать его настолько сложным, чтобы не было явных недостатков.
- Для меня программирование — это больше, чем важное практическое искусство. Это также грандиозный проект в области основ знания.
- Грейс Хоппер, цитируется в Менеджмент и компьютер будущего (1962) школы менеджмента Sloan, стр.277
- Программирование: когда идеи превращаются в реальность.
- Большая часть программного обеспечения сегодня очень похожа на египетскую пирамиду с миллионами кирпичей, сложенных друг на друга, без структурной целостности, но просто созданной грубой силой и тысячами рабов.
- Преждевременная оптимизация — корень всех зол.
- Дональд Кнут, «Структурированное программирование с помощью операторов Goto». Computing Surveys 6 : 4 (декабрь 1974 г.), стр.261–301, §1.
- Преждевременная оптимизация — это корень всех зол (или, по крайней мере, большей их части) в программировании.
- Кнут называет это «изречением Хора» 15 лет спустя в «Ошибках Tex», Программное обеспечение — Практика и опыт 19 : 7 (июль 1989 г.), стр. 607–685. Однако приписывание к К. А. Р. Хоару сомнительно. [2]
- Все три статьи перепечатаны в Knuth, Literate Programming , 1992, Center for the Study of Language and Information ISBN 0937073806
- Самая важная вещь в языке программирования — это имя.Язык не будет успешным без хорошего имени. Недавно я придумал очень хорошее название, а теперь ищу подходящий язык.
- «Современные компьютеры предназначены в первую очередь для решения заранее сформулированных задач или обработки данных в соответствии с заранее определенными процедурами. Ход вычислений может зависеть от результатов, полученных во время вычислений, но все альтернативы должны быть предусмотрены заранее. … Требование предварительной формулировки или предварительного определения иногда не является большим недостатком.Часто говорят, что программирование для вычислительной машины заставляет мыслить ясно, что оно дисциплинирует мыслительный процесс. Если пользователь может заранее продумать свою проблему, симбиотическая ассоциация с вычислительной машиной не нужна.
- Дж. К. Р. Ликлайдер (1960) Симбиоз человека и компьютера | journal = Транзакции о человеческом факторе в электронике
- Один из миллиона — в следующий вторник.
- У того, кто в молодости не взломал ассемблер, нет сердца.У того, кто поступает по-взрослому, нет мозга.
- Джон Мур [ цитата необходима ] , играя на французском, говоря, что «Тот, кто не социалист в 20 лет, не имеет сердца. Тот, кто в 40 лет является социалистом, не имеет мозга».
- Языки формируют то, как мы думаем, или нет.
- Компьютерное программирование — это очень весело. Как и музыка, это умение, которое происходит из неизвестного сочетания врожденного таланта и постоянной практики. Как и рисунок, он может иметь множество целей — коммерческий, художественный или чисто развлекательный.Программисты имеют заслуженную репутацию тех, кто много работает, но им редко приписывают творческую лихорадку. Программисты говорят о разработке программного обеспечения на выходных, в отпуске и во время еды не потому, что им не хватает воображения, а потому, что их воображение открывает миры, недоступные другим.
- Лучшая книга по программированию для непрофессионала — это Алиса в стране чудес , но это потому, что это лучшая книга для непрофессионала.
- Компьютерные науки смущают компьютер.
- Алан Перлис, «Эпиграммы по программированию»
- Продолжительный контакт с компьютером превращает математиков в клерков и наоборот.
- Алан Перлис, «Эпиграммы по программированию»
- Структурированное программирование поддерживает закон исключенной путаницы.
- Алан Перлис, «Эпиграммы по программированию»
- Есть два способа писать безошибочные программы; работает только третий.
- Алан Перлис, «Эпиграммы по программированию»
- Когда кто-то говорит: «Мне нужен язык программирования, на котором мне нужно только говорить то, что я хочу сделать», дайте ему леденец.
- Программное обеспечение и соборы во многом похожи — сначала мы их строим, а потом молимся.
- Сэм Редвин [Труды 4-го Международного семинара по программным процессам, Моретонхэмпстед, Девон, Великобритания, 11–13 мая 1988 г., Компьютерное общество IEEE]
- Зачем беспокоиться о подпрограммах, если можно быстро печатать?
- Инженер Netscape, имя которого не может быть названо, однажды передал указатель на JavaScript, сохранил его в виде строки, а затем передал обратно в C, убив 30 человек.
- Настоящие программисты всегда путают Рождество и Хэллоуин, потому что 31 октября == 25 декабря.
- Любой, кто хоть немного связан с компьютерами, согласен с тем, что объектно-ориентированное программирование (ООП) — это волна будущего. Возможно, каждый 50 из них действительно пытался использовать ООП, что во многом связано с его популярностью.
- Стив Стейнберг, «Список шумихи», Wired , Vol. 1, No. 1, март / апрель 1993 г.,
- Не попадайтесь на глаза комментариям… они могут ввести в заблуждение.
- Однажды моя дочь вошла, посмотрела через мое плечо на какой-то код Perl 4 и спросила: «Что это, ругань?»
- Второй закон Вайнберга: если строители строят здания так, как программисты пишут программы, то первый появившийся дятел уничтожит цивилизацию.
- Джеральд Вайнберг цитируется в: Murali Chemuturi (2010) Освоение обеспечения качества программного обеспечения: передовой опыт, инструменты и методы для разработчиков программного обеспечения . п.ix
- Ранее приписывается Деннису Холлу из Лаборатории Лоуренса в Беркли, в книге Клиффорда Столла «Яйцо кукушки» (1989), стр. 89. «Если бы люди строили дома так, как мы пишем программы, первый дятел уничтожил бы цивилизацию».
- Просить об эффективности и приспособляемости в одной программе — все равно, что просить красивую и скромную жену. Хотя известно, что красота и скромность присущи одной и той же женщине, нам, вероятно, придется довольствоваться тем или другим.По крайней мере, это лучше, чем ничего.
- Все проблемы в информатике могут быть решены с помощью другого уровня косвенного обращения.
- Основная деятельность программирования — это не создание новых независимых программ, а интеграция, модификация и объяснение существующих.
- Терри Виноград (1991) «За пределами языков программирования», в Искусственный интеллект и разработка программного обеспечения , изд. Дерек Партридж, стр. 317
- Закон Завинского: каждая программа пытается расширяться до тех пор, пока не сможет читать почту.Те программы, которые не могут расширяться, заменяются теми, которые могут.
Клайв Томпсон, «Тайная история женщин в программировании»,
The New York Times , (13 февраля 2019 г.) [править]
Сейчас может показаться странным, что они были счастливы взять на себя случайного кандидата, не имеющего абсолютно никакого опыта в компьютерном программировании. Но в то время почти ни у кого не было опыта написания кода. Дисциплины еще не существовало; в нем было исчезающе мало курсов колледжа и не было специальностей.(В Стэнфорде, например, не было кафедры информатики до 1965 года.) Поэтому вместо этого учреждения, которым требовались программисты, просто использовали тесты способностей для оценки способности абитуриентов мыслить логически.
- Сейчас может показаться странным, что они были счастливы взять на себя случайного кандидата, не имеющего абсолютно никакого опыта в компьютерном программировании. Но в то время почти ни у кого не было опыта написания кода. Дисциплины еще не существовало; в нем было исчезающе мало курсов колледжа и не было специальностей.(В Стэнфорде, например, не было кафедры информатики до 1965 года.) Поэтому вместо этого учреждения, которым требовались программисты, просто использовали тесты способностей для оценки способности абитуриентов мыслить логически.
- Почти 200 лет назад первой женщиной, которую мы сейчас назвали бы кодировщиком, была женщина: леди Ада Лавлейс. Будучи молодым математиком в Англии в 1833 году, она встретила Чарльза Бэббиджа, изобретателя, который изо всех сил пытался разработать то, что он назвал аналитической машиной, которая была бы сделана из металлических шестерен и способна выполнять команды if / then и сохранять информацию в памяти.Очарованный, Лавлейс осознал огромный потенциал такого устройства. Она поняла, что компьютер, который может изменять свои собственные инструкции и память, может быть гораздо больше, чем механический калькулятор. Чтобы доказать это, Лавлейс написал то, что часто считают первой компьютерной программой в истории, — алгоритм, с помощью которого аналитическая машина вычисляла последовательность чисел Бернулли. (Она не стеснялась своих достижений: «Этот мой мозг — нечто большее, чем просто смертный; как покажет время», — написала она однажды.)
- [A] вызвало первый всплеск культурного внимания, так много студентов спешили поступить на факультеты информатики, что университеты столкнулись с проблемой предложения: у них не хватало профессоров, чтобы обучать всех. Некоторые добавляли препятствия, курсы, которые студенты должны были пройти, прежде чем они могли быть приняты на специальность информатика. Наказание за рабочие нагрузки и занятия, которые охватывали материал с молниеносной скоростью, отсеивали тех, кто не понял его сразу. Все это способствовало созданию среды, в которой, скорее всего, справились бы те студенты, которые уже были знакомы с программированием — в основном молодые люди.«Каждый раз, когда в поле зрения вводятся эти фильтры на входе, это, в частности, снижает участие женщин», — говорит Эрик С. Робертс, давний профессор компьютерных наук, ныне работающий в Рид-колледже, который первым изучил этот вопрос. проблема и назвал это «кризисом мощности».
- В 1991 году Эллен Спертус, ныне специалист по информатике в колледже Миллс, опубликовала отчет об опыте женщин на уроках программирования. Она составила каталог ландшафта, населенного мужчинами, которые хихикали по поводу предполагаемой неполноценности женщин, и профессорами, которые говорили студенткам, что они «слишком красивы», чтобы изучать электротехнику; Когда некоторых мужчин в Карнеги-Меллон попросили перестать использовать изображения обнаженных женщин в качестве обоев рабочего стола на своих компьютерах, они сердито пожаловались, что это цензура, подобная той, которую практикуют «нацисты или аятолла Хомейни».
Когда программирование закрывало двери для женщин в академических кругах, аналогичная трансформация происходила в корпоративной Америке. Появление того, что можно было бы назвать «культурным соответствием», изменило то, кто и почему в процессе приема на работу. Менеджеры начали выбирать программистов не столько из-за способностей, сколько из-за того, насколько хорошо они соответствуют типу личности: резкому, отстраненному мужчине-ботанику.
На самом деле сдвиг начался намного раньше, еще в конце 60-х, когда менеджеры осознали, что мужчины-программисты разделяют растущую тенденцию быть антисоциальными изоляторами, господствуя своими тайными техническими знаниями над знаниями своих боссов.Программисты были «часто эгоцентричны, слегка невротичны», как выразился Ричард Брэндон, известный аналитик компьютерной индустрии, в своем выступлении на конференции 1968 года, добавив, что «частота появления бород, сандалий и других симптомов жесткого индивидуализма или нонконформизма заметно больше среди этой демографической группы ».
В дополнение к тестированию на логическое мышление, как во времена Мэри Аллен Уилкс, компании начали использовать личностные тесты для отбора именно таких качеств едкого одиночки. «Это стало очень сильным нарративом», — говорит Натан Энсменгер, профессор информатики Университета Индианы, изучавший этот переход.Охота на этот тип личности исключала женщин. Менеджеры могут пожать плечами и принять неопрятного, небритого и угрюмого мужчину, но они не потерпят женщину, которая ведет себя так же. Программирование все чаще требовало допоздна, но менеджеры утверждали, что слишком небезопасно, чтобы женщины работали в предрассветные часы, поэтому они запрещали им задерживаться допоздна с мужчинами.
Программирование
См. Также [править]
Внешние ссылки [править]
Место, где мир создает программное обеспечение · GitHub
GitHub: Место, где мир создает программное обеспечение · GitHub
git checkout -b origin добавить экраны статуса
Лучший код начинается с запросов на вытягивание — разговоров вокруг вашего кода, где вы можете экспериментировать, устранять ошибки и создавать новые функции.
Проверка кода встроена. Запросы на вытягивание охватывают весь процесс проверки: предлагать изменения, просматривать код, запрашивать ввод, вносить предложения и подписываться в одном месте.
Знайте, когда ваш пулреквест готов к слиянию, когда все становится зеленым.Отзывы одобрены? Проверять. Сдача тестов? Проверить чек. Никаких конфликтов? Отправьте его уже.
Продолжайте работу.Просматривайте или объединяйте код, управляйте уведомлениями, просматривайте репозитории и многое другое с GitHub для мобильных устройств.
Доступно для iOS и Android
•••
трепать
➜ ~ gh pr статус Соответствующие запросы на вытягивание в cli / cli Текущая ветка Нет запроса на перенос, связанного с [main] Создано вами У вас нет открытых запросов на вытягивание Запрос на проверку кода у вас # 1401 Правильно обрабатывать и устанавливать пустые поля... [octocat: emptyBody] ✓ Прохождение проверок # 1357 Добавлены шаги подтверждения риска ... [octocat: подтверждения] x 1/3 неудачных проверок ➜ ~
Работайте, как хотите.
Поместите на него графический интерфейс с помощью GitHub Desktop или оставайтесь в командной строке с помощью GitHub CLI.
Доступно для macOS, Windows и Linux *
* Интерфейс командной строки GitHub доступен в macOS, Windows и Linux
* Рабочий стол GitHub доступен в macOS и Windows
Молниеносно быстрая облачная среда разработки с Codespaces
Узнать больше о пространствах кодов GitHub
Будущее кода находится в облаке, а не в вашей локальной копии.Codespaces предоставляет вам полную настраиваемую среду разработки поверх мощной виртуальной машины за считанные минуты.
Visual Studio Code, точка в браузере. Codespaces предоставляет самый популярный в мире настольный редактор для каждого репо. Кодируйте, создавайте, тестируйте, используйте терминал и открывайте запросы на вытягивание из любого места.
Настройте по своему вкусу. Добавьте свои любимые расширения VS Code, создайте файл конфигурации devcontainer, установите новые темы и измените настройки.
Автоматизируйте что угодно с помощью GitHub Actions
Узнать больше о действиях GitHub
Настройте CI / CD, улучшите свой DevOps и создайте сценарий всего рабочего процесса с помощью GitHub Actions. Запускайте автоматизированные рабочие процессы с помощью таких событий GitHub, как push, создание задачи, слияние и выпуск.
5,000+
Действия
Напишите свои собственные или импортируйте Действия из сообщества разработчиков открытого исходного кода, и все это в нашем редакторе мирового класса. Чувствуете себя застрявшим? По мере написания кода просматривайте документацию разработчика действий.
Изучите рынок действий
Вы можете получить все это.Выполняйте действия на любом языке или в любой операционной системе, в Linux, macOS, Windows, ARM и контейнерах. Или все сразу со сборками матриц.
С 70 миллионами заданий, выполняемых в месяц, вы находитесь в хорошей компании с Actions, сервисом CI номер один на крупнейшей в мире платформе для разработчиков.
Говоря об автоматизации, Dependabot поддерживает ваши проекты в актуальном состоянии с помощью автоматических запросов на вытягивание, которые обновляют все ваши зависимости.Просто просмотрите и объедините, чтобы ваше программное обеспечение было в безопасности.
Узнать больше о Dependabot
Нашли уязвимость? Наши инструменты исправления с рекомендациями по безопасности помогают разработчикам выявлять и раскрывать их ответственно, чтобы специалисты по обслуживанию могли исправлять их в выделенных частных рабочих областях.
Сделайте свой вклад
Небольшие эксперименты, вдохновляющие изобретения и программное обеспечение, от которого зависит каждый — код, который вы пишете на GitHub, может достигать одной или миллионов кодовых баз.
Зарегистрируйтесь на GitHub
Связаться с отделом продаж
Вы не можете выполнить это действие в настоящее время.Вы вошли в систему с другой вкладкой или окном. Перезагрузите, чтобы обновить сеанс.
Вы вышли из системы на другой вкладке или в другом окне. Перезагрузите, чтобы обновить сеанс.
DigitalOcean — Облако для разработчиков
DevOps
«DigitalOcean не только предоставляет инфраструктуру мирового класса, но и действительно привлекает разработчиков. Это облегчает им нашу работу в плане предоставления им услуг по управлению зданием ».
Роксана Чобану, технический директор
SaaS
«Нам нужна удобная для разработчиков инфраструктурная платформа, которая позволяет нам сосредоточиться на создании программного обеспечения, а не на управлении инфраструктурой.
Фима Лешинский, технический директор
AdTech
«DigitalOcean предоставляет нам идеальный набор инструментов для прибыльного ведения бизнеса SaaS, не заставляя нас чувствовать необходимость становиться системными администраторами на полную ставку».
Роман Свичар, технический директор
DevOps
«DigitalOcean не только предоставляет инфраструктуру мирового класса, но и действительно привлекает разработчиков. Это облегчает им нашу работу в плане предоставления им услуг по управлению зданием ».
Роксана Чобану, технический директор
SaaS
«Нам нужна удобная для разработчиков инфраструктурная платформа, которая позволяет нам сосредоточиться на создании программного обеспечения, а не на управлении инфраструктурой.
Фима Лешинский, технический директор
AdTech
«DigitalOcean предоставляет нам идеальный набор инструментов для прибыльного ведения бизнеса SaaS, не заставляя нас чувствовать необходимость становиться системными администраторами на полную ставку».
Роман Свичар, технический директор
SaaS
«Нам нравится опыт разработчиков, мы можем точно прогнозировать наши затраты и можем увеличивать или уменьшать масштаб по мере роста трафика».
Махабуб Хан, соучредитель и генеральный директор
Gamified Training
«Я работал с Kubernetes раньше, на практике, самостоятельно, но интеграция с DigitalOcean и предоставление Kubernetes были самыми беспроблемными из всех, что я когда-либо видел. далеко.
Джеймс Хукер, технический директор
SaaS
«Что нам действительно нравится в платформе DigitalOcean, так это простота использования».
Ачют Кришна, технический директор
SaaS
«Нам нравится опыт разработчиков, мы можем точно прогнозировать наши затраты и можем увеличивать или уменьшать масштаб по мере роста трафика».
Махабуб Хан, соучредитель и генеральный директор
Gamified Training
«Я работал с Kubernetes раньше, на практике, самостоятельно, но интеграция с DigitalOcean и предоставление Kubernetes были самыми беспроблемными из всех, что я когда-либо видел. далеко.
Джеймс Хукер, технический директор
SaaS
«Что нам действительно нравится в платформе DigitalOcean, так это простота использования».
Ачют Кришна, технический директор
О проекте — Project Euler
О проекте Euler
Что такое проект Эйлер?
Project Euler — это серия сложных задач математического / компьютерного программирования, для решения которых потребуется нечто большее, чем просто математическое понимание. Хотя математика поможет вам найти элегантные и эффективные методы, для решения большинства задач потребуется использование компьютера и навыков программирования.
Мотивация для запуска Project Euler и его продолжения состоит в том, чтобы предоставить пытливому уму платформу, чтобы вникнуть в незнакомые области и изучить новые концепции в развлекательном и развлекательном контексте.
На кого нацелены проблемы?
Целевая аудитория включает студентов, для которых базовая учебная программа не утоляет их жажду учиться, взрослых, чье образование не было в первую очередь математикой, но интересовалось математикой, и профессионалов, которые хотят, чтобы их решение задач и математика оставались на переднем крае.
В настоящее время у нас есть
1036528 зарегистрированных участников, которые решили хотя бы одну проблему, представляющую 220 населенных пунктов по всему миру, и в совокупности используют 108 разных языков программирования для решения проблем.
Может кто-нибудь решить проблемы?
Проблемы разнятся по сложности, и для многих это индуктивное цепное обучение. То есть, решив одну проблему, вы познакомитесь с новой концепцией, которая позволит вам взяться за ранее недоступную проблему.Таким образом, целеустремленный участник будет медленно, но верно решать каждую проблему.
Что дальше?
Чтобы отслеживать ваш прогресс, необходимо настроить учетную запись и включить файлы cookie.
Если у вас уже есть учетная запись, войдите в систему. В противном случае, пожалуйста, зарегистрируйтесь — это совершенно бесплатно!
Однако, поскольку проблемы являются сложными, вы можете просмотреть Проблемы перед регистрацией.
«Проект Эйлер существует, чтобы поощрять, бросать вызов и развивать навыки и удовольствие всех, кто интересуется увлекательным миром математики.
10 лучших программистов в мире всех времен
Вот список 10 лучших программистов в мире за все время.
1. Деннис Ричи
Деннис МакАлистер Ричи был американским ученым-компьютерщиком, который «помогал формировать цифровая эра ». Он создал язык программирования C и вместе с давним коллегой Кеном Томпсоном операционную систему Unix. Ричи и Томпсон получили премию Тьюринга от ACM в 1983 году, медаль Хэмминга от IEEE в 1990 году и национальную медаль. технологий от президента Клинтона в 1999 году.Ричи был главой отдела исследований системного программного обеспечения Lucent Technologies, когда вышел на пенсию в 2007 году.
2. Бьярн Страуструп
Бьярне Страуструп — датский ученый-компьютерщик, наиболее известный благодаря созданию и развитию широко использовал язык программирования C ++. Он является заслуженным профессором-исследователем, заведует кафедрой компьютерных наук в Инженерном колледже Техасского университета A&M, приглашенным профессором Колумбийского университета и работает в Morgan Stanley.
3. Джеймс Гослинг
Джеймс Артур Гослинг — канадский ученый-компьютерщик, наиболее известный как отец языка программирования Java. Джеймс также внес значительный вклад в несколько других программных систем, таких как NeWS и Gosling Emacs. Благодаря своим необычным достижениям Гослинг был избран иностранным ассоциированным членом Национальной инженерной академии США.
4. Линус Торвальдс
Линус Бенедикт Торвальдс — финско-американский инженер-программист, который был основной силой, стоящей за разработкой ядра Linux.Позже он стал главным архитектором ядра Linux, а сейчас действует как координатор проекта. Он также создал систему контроля версий Git, а также программное обеспечение для ведения журнала погружений Subsurface. Вместе с Шинья Яманака он был удостоен награды Millennium Technology Prize 2012 от Технологической академии Финляндии в знак признания его создания новой операционной системы с открытым исходным кодом для компьютеров, которая привела к широко используемому ядру Linux.
5. Андерс Хейлсберг
Андерс Хейлсберг (Anders Hejlsberg) — известный датский инженер-программист, разработавший несколько популярных и коммерчески успешных языков программирования и инструментов разработки.Он является создателем популярного языка программирования C #. Он был первоначальным автором Turbo Pascal и главным архитектором Delphi. В настоящее время он работает в Microsoft в качестве ведущего архитектора C # и основного разработчика TypeScript.
6. Тим Бернерс-Ли
Сэр Тимоти Джон «Тим» Бернерс-Ли, также известный как «TimBL», — британский ученый-компьютерщик, наиболее известный как изобретатель Всемирной паутины. Он внес предложение о системе управления информацией в марте 1989 года и реализовал первую успешную коммуникацию между клиентом протокола передачи гипертекста (HTTP) и сервером через Интернет.Бернерс-Ли — директор Консорциума Всемирной паутины (W3C), который наблюдает за постоянным развитием Интернета.
7. Брайан Керниган
Брайан Уилсон Керниган — канадский ученый-компьютерщик, который работал в Bell Labs вместе с создателями Unix Кеном Томпсоном и Деннисом Ричи и внес свой вклад в разработку Unix. Он также является соавтором языков программирования AWK и AMPL. Имя Кернигана стало широко известно благодаря соавторству первой книги по языку программирования C с Деннисом Ричи.
8. Кен Томпсон
Кеннет Томпсон, которого в хакерских кругах обычно называют Кеном, является американским пионером информатики. Проработав в Bell Labs большую часть своей карьеры, Томпсон разработал и внедрил оригинальную операционную систему Unix. Он также изобрел язык программирования B, прямой предшественник языка программирования C, и был одним из создателей и первых разработчиков операционных систем Plan 9. С 2006 года Томпсон работает в Google, где он стал соавтором языка программирования Go.
9. Гвидо ван Россум
Гвидо ван Россум — голландский программист, наиболее известный как автор языка программирования Python. В сообществе Python Ван Россум известен как «Доброжелательный диктатор на всю жизнь» (BDFL), что означает, что он продолжает контролировать процесс разработки Python, принимая решения в случае необходимости. Он работал в Google с 2005 по 7 декабря 2012 года, где половину своего времени уделял разработке языка Python.В январе 2013 года Ван Россум начал работать в Dropbox.
10. Дональд Кнут
Дональд Эрвин Кнут — американский ученый-компьютерщик, математик и почетный профессор Стэнфордского университета. Он является автором многотомного труда «Искусство программирования». Кнута называют «отцом» анализа алгоритмов. Он внес свой вклад в разработку строгого анализа вычислительной сложности алгоритмов и систематизировал формальные математические методы для этого.В процессе он также популяризировал асимптотические обозначения. Кнут является создателем компьютерной системы набора текста TeX, соответствующего языка определения шрифтов и системы рендеринга METAFONT, а также семейства гарнитур Computer Modern.
Motoko, язык программирования для построения непосредственно в Интернете
В Dfinity мы создаем Internet Computer , децентрализованную платформу облачных вычислений, которую мы представляем как цельную программную вселенную, в которой разработчики могут развертывать приложения и сервисы непосредственно в Интернете.Чтобы реализовать это видение, мы выбрали WebAssembly в качестве лингва-франка среды исполнения платформы, чтобы разработчики могли программировать ее на любом языке, который компилируется в WebAssembly.
Мы также сочли важным создать специализированный язык программирования под названием Motoko, который предназначен для непосредственной поддержки модели программирования Интернет-компьютера, чтобы упростить эффективное создание приложений и использование некоторых преимуществ. из наиболее необычных особенностей этой платформы.
Мы рады рассказать вам немного о том, что делает этот проект таким особенным.
WebAssembly
Сначала мы должны кратко поговорить о WebAssembly — a.k.a. Wasm (да, правильно написано без заглавных букв). Как вы, возможно, знаете, Wasm — это новый формат низкоуровневого кода, который призван быть портативным, безопасным и эффективным. Первоначальным вариантом использования был Интернет, но на самом деле это название неправильное: когда мы разрабатывали Wasm в рабочей группе W3C, мы тщательно делали его как открытый стандарт и универсальную платформу.То есть он не нацелен на какой-либо конкретный язык программирования, парадигму, вычислительную среду или платформу, и мы позаботились о том, чтобы он вообще не был привязан к сети. Так что совершенно не случайно Wasm получает распространение во многих других средах, таких как облачные вычисления, периферийные вычисления, мобильные, встроенные системы, IoT и блокчейны.
При разработке Wasm учитывалось множество конструктивных соображений, некоторые из которых были очевидными, а некоторые довольно тонкими. Слишком много, чтобы вдаваться в подробности. Достаточно всестороннее обсуждение технических целей, вариантов дизайна, формальной семантики и методов реализации Wasm можно найти в научной статье, которую мы опубликовали в Communications of the ACM (более старая и техническая версия этой статьи находится в свободном доступе здесь) .
Основное отличие Wasm от других виртуальных машин заключается в том, что он не оптимизирован для какого-либо конкретного языка программирования, а просто абстрагирует базовое оборудование с байтовым кодом, непосредственно соответствующим инструкциям и модели памяти современных процессоров. Вдобавок к этому Wasm поддерживает песочницу за счет строгой модульности и жесткой математической спецификации, которая гарантирует, что выполнение будет безопасным, свободным от неопределенного поведения и (почти) полностью детерминированным. Более того, у этих свойств есть математическое доказательство, проверенное машиной!
В целом, эти свойства были предназначены для того, чтобы сделать Wasm привлекательным выбором для широкого диапазона сред и сценариев использования, которые связаны с высокими требованиями к переносимости, безопасности, универсальности и производительности, например, Интернет-компьютер Dfinity.
Создание компьютера в Интернете
Интернет-компьютер — это децентрализованная платформа облачных вычислений, на которой будет размещено безопасное программное обеспечение и новое поколение открытых Интернет-сервисов. Он использует протокол сильного криптографического консенсуса для безопасной репликации вычислений в одноранговой сети (потенциально ненадежных) вычислительных узлов, возможно, перекрытых множеством виртуальных подсетей (иногда называемых шардами ). Преимущества Wasm сделали его очевидным выбором для представления программ, работающих на этой платформе.Нам также понравилась идея не ограничивать разработчиков одним выделенным языком платформы, а сделать его потенциально открытым для «всех».
Во всяком случае, это теория. На практике перенос существующего языка программирования на Wasm не совсем тривиально. Очевидно, это требует реализации новой серверной части компилятора. Это весело, но на этом усилия не заканчиваются: для этого также требуется перенос языковой системы времени выполнения и библиотечных примитивов. И еще есть несколько функций, особенно относящихся к более высокоуровневым языкам, которые в настоящее время не могут быть легко реализованы в Wasm, например: потоки, сопрограммы, исключения и хвостовые вызовы.Несмотря на то, что различные предложения по обогащению Wasm соответствующими функциями находятся на горизонте, они еще не завершены для стандартизации.
Хотя уже существует множество экспериментальных реализаций языка, нацеленных на Wasm, большинство из них еще не готовы к использованию. Те, которые включают в себя системные языки низкого уровня, такие как C / C ++ и Rust. Они, безусловно, хороши для своих сценариев использования, но это далеко не идеальные инструменты для разработки высокоуровневых приложений для Интернет-компьютера, где доступность, производительность и высокая надежность, как правило, более желательны, чем ручное вмешательство в управление памятью.
На некоторых платформах, включая Internet Computer, существуют дополнительные препятствия, которые необходимо преодолеть для запуска Wasm, и они связаны с ограничениями вычислительной среды, которую они предоставляют. Например, Интернет-компьютер Dfinity очень мало похож на обычную операционную систему: в нем нет таких функций, как файлы, ввод-вывод или другие возможности, которые часто принимаются как должное в языковых реализациях и широко используются во время выполнения или библиотеках. Это означает, что перенос существующего языка — это больше, чем просто вопрос настройки кода: вам может потребоваться найти новые средства для замены использования отсутствующих функциональных возможностей платформы, удаления их или вообще сделать другой выбор дизайна.Такие усилия, как WASI, пытаются до некоторой степени решить эту проблему, но все еще находятся в зачаточном состоянии.
Неизбежно, эти факторы делают языковой перенос на Интернет-компьютер Dfinity существенной работой, даже при принятии языка, для которого уже существует общий порт Wasm.
В то же время язык для Интернет-компьютера должен обеспечивать доступ к основным концепциям платформы: модели распределенного программирования с асинхронной передачей сообщений, таким понятиям ресурсов, как циклы (a.к.а. газ) и несколько других идиосинкразий. Конечно, все они могут быть доступны в виде библиотек, но язык, который изначально включает соответствующие конструкции, может обеспечить гораздо более плавное программирование.
Итак, если нам все равно нужно работать, чтобы оторваться от земли, почему бы не заняться созданием чего-то, что может обеспечить оптимальное взаимодействие с пользователем и передать наше видение того, как программировать Интернет-компьютер?
Мотоко
Вот почему, несмотря на все риски создания еще одного языка, мы решили создать Motoko .Нам нужен был безопасный, простой в использовании язык, который легко раскрывает концепции платформы, а также язык, который выглядел бы достаточно дружелюбным и доступным для большинства программистов. В настоящее время эта последняя цель делает практически неизбежным попадание в лагерь языков с точками с запятой и фигурными скобками. И подходящего языка в этом лагере не было.
Но довольно обычная кожа Мотоко — это только внешность: ее внутренняя часть соответствует современному языку. Например, каждая конструкция является выражением, у нее есть замыкания, у нее есть варианты типов и статически проверяемое сопоставление с образцом, у нее есть сборка мусора и, конечно же, у нее есть гибкая система типов, которая на самом деле надежна, т.е.е., на самом деле гарантирует отсутствие определенных ошибок, таких как сбои, неопределенное поведение, неверная интерпретация данных или просто пропуск случая в переключателе. Никаких дыр!
В то же время мы намеренно пытались не фантазировать и не изобретать велосипед, а, скорее, опирались на богатую историю, как практическую, так и теоретическую, и признавали уроки, которые были извлечены за десятилетия в этой области. Помимо согласованного сочетания хорошо понятных функций, дизайн Motoko включает в себя множество мелких решений, позволяющих свести к минимуму использование ножных пистолетов и ошибиться с точки зрения безопасности, например.g., числа не могут переполняться по умолчанию, локальные переменные по умолчанию неизменяемы, параллельное выполнение по умолчанию является атомарным, null не может выполняться по умолчанию, поля по умолчанию являются закрытыми и т. д. Да, и здесь нет наследования, только подтипы.
Реализация этих частей Motoko и их компиляция в Wasm — обычное ремесло компилятора. Компилятор Motoko, написанный на OCaml, использует типизированное промежуточное представление, несколько проходов преобразования и выводит байтовый код Wasm. Сгенерированный модуль Wasm включает небольшую систему времени выполнения, написанную на C и Rust, которая в основном реализует простой сборщик мусора, использующий память Wasm в качестве своей кучи.Это было несложно, но, безусловно, здесь есть много возможностей для улучшения.
Актеры
Однако центральной особенностью Motoko является прямая поддержка актеров как в синтаксисе, так и в системе типов. Модель актера — это хорошо известная концепция, которой уже более 40 лет, но, к сожалению, она почти не вошла в основные языки. Актер похож на объект (а в Motoko даже выглядит так), поскольку он инкапсулирует частное состояние вместе с набором методов для обработки сообщений, которые могут быть отправлены ему.Но все сообщения отправляются асинхронно . Следовательно, в отличие от обычных методов в объектно-ориентированном стиле, методы-субъекты не дают результатов. Более того, все сообщения принимаются субъектом последовательно, то есть у него есть неявная очередь сообщений, а методы выполняют атомарно , даже если сообщения отправляются одновременно.
Акторы
— отличная модель для параллельного программирования, поскольку они автоматически предотвращают состояния гонки (благодаря атомарности и инкапсулированному состоянию) и взаимоблокировки (поскольку выполнение никогда не блокируется) и, следовательно, исключают множество ошибок параллелизма.И все это без необходимости когда-либо определять блокировку от программистов. Акторы также являются отличной моделью для распределенного программирования, потому что асинхронность, естественно, имеет дело с задержкой, связанной с отправкой сообщения потенциально удаленному получателю. И, наконец, акторы отлично подходят для Интернет-компьютера Dfinity, где приложения развертываются в форме так называемых контейнеров — по сути, акторы представлены в виде модулей Wasm, которые могут обмениваться данными между подсетями. Оказывается, концепция модуля Wasm хорошо подходит для этого, потому что мы можем напрямую интерпретировать экспорт модуля как методы-акторы.Таким образом, актер Motoko компилируется в модуль Wasm, где методы становятся экспортированными функциями Wasm со специальными соглашениями о параметрах, определенными платформой.
Короче говоря, приложение в Motoko — это актор (или несколько), который, в свою очередь, представляет собой большой асинхронный объект, скомпилированный в модуль Wasm. Согласно концепции памяти Wasm, такой субъект может сразу управлять внутренним состоянием объемом до 4 ГиБ, хотя это можно еще больше увеличить, связав несколько модулей Wasm, каждый из которых имеет свою собственную память.Нам любопытно посмотреть, как быстро первые пользователи столкнутся с этим ограничением памяти.
Фьючерс
Чтобы сделать асинхронное программирование более удобным и позволить выразить его в последовательном «прямом стиле», Мотоко перенимает еще одну 40-летнюю идею из анналов исследований языков программирования, хотя, к счастью, в последнее время она стала немного более популярной: Futures (в некоторых сообществах также называется обещания ). В Motoko они материализуются в форме «асинхронных значений», значений типа async
При этом, методы-субъекты в конце концов могут иметь результаты, если они являются фьючерсами. Можно ожидать, что фьючерсы получат свое значение, но только внутри другого асинхронного выражения, похожего на монады async / await, известные из других современных языков.
Компилятор Motoko реализует это через традиционное преобразование CPS (стиль передачи продолжения), превращая каждую точку ожидания в отдельную функцию Wasm (плюс некоторую среду закрытия), представляющую продолжение ожидания.Фактически, это двунаправленный CPS, потому что каждое сообщение также может иметь ответ об отказе с соответствующим продолжением отказа. По соглашению, метод с асинхронным результатом — это метод, который отправляет ответное сообщение, содержащее значения результата в качестве аргументов. Это сообщение получает созданная функция продолжения, которая затем может возобновить выполнение захваченного. Ожидание ответа не блокирует актера — в это время он может свободно получать другие сообщения.
Стойкость
Еще одним важным соображением для Motoko было разрешение разработчикам использовать технологию блокчейн без необходимости изучать совершенно новый тип вычислений.Поэтому мы извлекли все специальные знания, которые могут вам понадобиться в текущем поколении языков программирования блокчейнов. Например, нет наблюдаемого понятия высоты блока или блока, нет явных конструкций для обновления состояния в цепочке блоков, а также нет другого API для записи данных в постоянное хранилище, такое как файлы или базы данных (хотя это можно было бы эмулировать как библиотеку) . Вместо этого Интернет-компьютер реализует ортогональную персистентность — это еще одна старая идея, при которой программа имеет иллюзию того, что она работает «вечно», а ее память остается активной (по крайней мере, до тех пор, пока она не будет явно отключена).В Motoko это означает, что разработчикам не нужно беспокоиться о явном сохранении своих данных или возиться с файлами или внешней базой данных: любые значения или структуры данных, хранящиеся в переменных программы, все равно будут там, когда придет следующее сообщение, даже если это месяцы спустя.
Платформа заботится о прозрачном сохранении и восстановлении частного состояния накопителя между вызовами методов. Это было относительно легко переоборудовать на движок Wasm, потому что состояние модуля Wasm четко изолировано в памяти, глобальных объектах и таблицах модуля.По большей части достаточно наблюдать воспоминания Wasm с использованием методов виртуальной памяти, предоставляемых операционными системами. Таким образом, платформа знает, когда страницы в такой памяти были изменены, и может принимать любые меры, необходимые для сохранения грязных страниц, а также их хеширования для протокола распределенного консенсуса.
Beyond Motoko: определения интерфейсов
Поскольку на Интернет-компьютере работает Wasm, Motoko — лишь один из вариантов создания приложения — и это сделано намеренно.Мы с нетерпением ждем возможности выбора других языков. Даже в этом случае, поскольку каждый язык будет единообразно компилироваться в накопители, представленные в Wasm, эти накопители могут свободно связываться друг с другом посредством отправки сообщений независимо от их исходного языка.
Чтобы сделать такую совместимость четко определенной, мы также ввели общий язык определения интерфейса ( IDL ) с именем Candid , который не зависит от Motoko. Он описывает набор сообщений, воспринимаемых накопителем, и тип данных, которые отправляются вместе.Данные описываются в Candid комбинацией канонических типов данных (числа, текст, массивы, записи, варианты, функции, ссылки на другие накопители), которые не зависят от системы типов Motoko или любого другого языка программирования.
Фу, еще одна система типов? Что ж, программисты, вероятно, будут довольны тем, что компилятор Motoko может автоматически использовать и создавать такие описания интерфейсов для экспорта и импорта акторов и сопоставлять их с соответствующими типами Motoko.Он также автоматически генерирует правильный код Wasm для сериализации и десериализации данных аргументов для каждого сообщения, прозрачно преобразовывая внутреннее представление Motoko в двоичный формат, указанный Candid.
Таким образом, программы Motoko могут взаимодействовать с внешними накопителями типизированным образом и выражать удаленные вызовы, как если бы они были локальными объектами в программе. И это независимо от того, написаны ли удаленные контейнеры на Motoko или, скажем, на Rust; описания интерфейса канистры достаточно в качестве информации о типе.Помимо простого удобства, интерфейсы также обеспечивают сильную форму модульности, при которой программы могут быть проверены на соответствие типу других участников / накопителей без доступа к их реализации.
Заключение
Наша цель состоит в том, чтобы Интернет-компьютер стал мультилингвистической платформой, где все языки имеют равные права, могут беспрепятственно взаимодействовать через границы контейнера, а Motoko — лишь один из многих вариантов. Это важно, чтобы сделать компьютерную платформу Интернет открытой.
Wasm пока что зарекомендовал себя как универсальный формат кода для достижения этой цели. Мы особенно выигрываем от его простоты, модульности, а также безопасной и детерминированной семантики. Но, несмотря на эти прекрасные свойства, перенос компиляторов и библиотек, не говоря уже о приложениях между различными экосистемами Wasm, не так прост, как можно было бы надеяться, поскольку он включает гораздо больше, чем просто код. Но Wasm еще молод, и следует ожидать определенных препятствий.
Самая большая грядущая функция Wasm, которую мы с нетерпением ждем, — это появление первоклассных ссылочных типов и ссылок на функции.Это позволит значительно упростить системный API, через который модули Wasm (и, следовательно, программы Motoko) взаимодействуют с платформой Internet Computer). Заинтересованные программисты могут найти более подробную информацию о SDK здесь и внести свой вклад в базовую библиотеку Motoko через GitHub здесь.
Андреас Россберг — исследователь и инженер в DFINITY, который возглавляет разработку Motoko, нового языка программирования для Интернет-компьютера DFINITY.