5 известных программистов в мире, которые начинали с нуля

5 известных программистов в мире, которые начинали с нуля Лайфстайл

Известные программисты, начинавшие с нуля — это разработчики, которые создали технологии, лежащие в основе современного IT, когда готовых курсов, фреймворков и туториалов еще не существовало и учиться приходилось по ходу дела. Ниже — пять таких имен: что каждый из них сделал, с чего начинал и какой урок отсюда полезен новичку.

Сразу честная оговорка про «с нуля». Почти у всех героев этого списка было сильное образование, и «нуля» в смысле «без базы» тут не было. «С нуля» здесь означает другое: они работали в эпоху, когда сама область только формировалась, готовых учебников по их задачам не было, а решения приходилось изобретать первыми. Именно этому — учиться в условиях, когда ответа еще нет, — у них и стоит поучиться.

1. Тим Бернерс-Ли — создатель Всемирной паутины

Британский ученый Тим Бернерс-Ли придумал World Wide Web (Всемирную паутину) в 1989-1991 годах, работая в европейской лаборатории CERN. Важно не путать: интернет как сеть существовал и раньше, а Бернерс-Ли создал именно веб — способ связывать документы гиперссылками поверх интернета.

Он собрал три опоры, на которых веб держится до сих пор: протокол HTTP (как браузер и сервер обмениваются данными), язык разметки HTML (как размечена страница) и адрес URL (как найти ресурс). Первый в мире веб-сайт заработал в 1991 году.

По образованию он физик, окончил Куинз-колледж Оксфордского университета в 1976 году. Программированием увлекся во время работы в британской компании Plessey Telecommunications. В 1994 году основал W3C — консорциум, который до сих пор развивает стандарты веба.

За вклад в развитие интернета королева Елизавета II посвятила его в рыцари в 2004 году. Известен он и своей позицией: веб должен оставаться открытым и общедоступным.

Есть у него и знаменитая самоирония по поводу синтаксиса адресов:

Если бы я знал, сколько людей по всему миру будут набирать URL, я бы не стал ставить в синтаксисе двойной слэш.

Урок для новичка: самые устойчивые вещи получаются из простых, открытых соглашений. HTTP и HTML легко было освоить и внедрить — поэтому веб и разошелся по миру.

2. Дональд Кнут — отец анализа алгоритмов

Американский ученый Дональд Кнут известен прежде всего многотомником «The Art of Computer Programming» («Искусство программирования»), который он пишет с 1968 года и который стал настольной книгой по алгоритмам для нескольких поколений разработчиков. За фундаментальный вклад он получил премию Тьюринга в 1974 году.

Кнут — это про строгий анализ: как оценивать, сколько операций и памяти потребует алгоритм, и доказывать это, а не полагаться на интуицию. Отсюда и прозвище «отец анализа алгоритмов».

Помимо теории, он оставил и практический инструмент: систему компьютерной верстки TeX и связанный с ней язык описания шрифтов METAFONT. На TeX и его надстройках до сих пор верстают научные статьи и книги по математике.

Учился он на математика в Case Institute of Technology (сейчас часть Case Western Reserve University), позже стал профессором Стэнфордского университета, где преподает и сегодня как почетный профессор. Ему приписывают формулу об осознанном понимании:

Лучший способ по-настоящему понять что-то — попробовать объяснить это компьютеру.

Урок для новичка: привычка спрашивать «а сколько это стоит по времени и памяти?» отличает инженера от того, кто просто заставил код заработать.

3. Брендан Айк — создатель JavaScript

Американский программист Брендан Айк создал язык JavaScript в 1995 году, работая в компании Netscape. По известной истории, первый рабочий прототип он собрал примерно за десять дней. Сегодня JavaScript — основной язык веб-страниц, на нем так или иначе работает почти каждый сайт.

Позже Айк стал одним из основателей проекта Mozilla и участвовал в создании браузера, из которого вырос Firefox. Некоторое время он был техническим директором, а затем и генеральным директором Mozilla.

В 2015-2016 годах он запустил собственный проект — браузер Brave с упором на приватность и блокировку слежки, и до сих пор руководит этой компанией. По образованию учился в Университете Санта-Клары и в магистратуре Иллинойского университета в Урбане-Шампейне.

Урок для новичка: язык, который «сделали за пару недель под конкретную задачу», спустя годы стал одним из самых массовых в мире. Готовый идеальный дизайн не обязателен для старта — важнее, чтобы инструментом было удобно решать реальную задачу здесь и сейчас.

4. Соломон Хайкс — создатель Docker

Франко-американский программист Соломон Хайкс подарил индустрии Docker — инструмент, который упаковывает приложение вместе со всем окружением в контейнер и одинаково запускает его на любой машине. Публично он представил Docker в 2013 году; проект вырос из его компании dotCloud.

Важное уточнение против частого мифа: Хайкс не «изобрел контейнеры первым в мире». Изоляция процессов на уровне операционной системы существовала и до него — механизмы ядра Linux (namespaces, cgroups), а еще раньше FreeBSD Jails и Solaris Zones. Заслуга Docker в другом: он сделал контейнеры простыми и удобными, и они стали массовым стандартом.

Стоит развести и два близких понятия. Контейнер — это не то же самое, что виртуальная машина: виртуальная машина эмулирует целый компьютер со своей операционной системой, а контейнер использует ядро хозяйской системы и изолирует только процесс. Поэтому контейнер стартует быстрее и весит меньше, но это не «просто быстрая виртуалка».

Из Docker Хайкс ушел в 2018 году и позже занялся новыми инструментами для разработчиков.

Урок для новичка: сильная идея часто не в том, чтобы придумать технологию с нуля, а в том, чтобы сделать уже существующую доступной каждому.

5. Брэм Коэн — создатель BitTorrent

Американский программист Брэм Коэн придумал протокол BitTorrent в 2001 году и представил его на конференции CodeCon в 2002 году (одним из организаторов которой он был). BitTorrent — это способ раздавать файлы напрямую между пользователями: чем больше людей качают файл, тем больше источников его отдают, и нагрузка не ложится на один сервер.

Технология оказалась полезной далеко за пределами файлообмена: по протоколу BitTorrent распространяют, например, крупные обновления игр и дистрибутивы, а сам подход к распределенной передаче данных применяют многие сервисы.

По одной из историй, программировать Коэн начал еще ребенком. Позже, в 2017 году, он основал проект Chia Network — криптовалюту с необычным механизмом на основе свободного места на дисках вместо энергоемких вычислений.

О старте BitTorrent он вспоминал с самоиронией — что писал протокол, будучи безработным и сидя дома. Это и есть та самая работа «с нуля»: без гарантий, без команды и без уверенности, что получится.

Урок для новичка: масштабируемое решение рождается из правильной идеи, а не из большого бюджета. Один человек с рабочим протоколом изменил то, как весь мир передает большие файлы.

Коротко: кто что создал

Программист Что создал Год Где встречаем сегодня
Тим Бернерс-Ли World Wide Web (HTTP, HTML, URL) 1989-1991 любой сайт и ссылка
Дональд Кнут анализ алгоритмов, TeX с 1968 учебники по алгоритмам, научная верстка
Брендан Айк язык JavaScript 1995 интерактив почти на каждом сайте
Соломон Хайкс Docker 2013 контейнеры в разработке и на серверах
Брэм Коэн протокол BitTorrent 2001 распределенная раздача файлов

Что общего у всех пятерых: они не ждали готового учебника по своей задаче, разбирались в смежных областях и доводили идею до работающего инструмента, которым потом пользуются миллионы. Ни у кого из них не было курса «как сделать веб» или «как написать язык» — его просто не существовало.

Выводы

  • «С нуля» у героев списка — это не отсутствие образования (у большинства сильная база в физике, математике, информатике), а работа в эпоху, когда готовых учебников и курсов по их задачам еще не было.
  • Каждый довел идею до работающего инструмента, которым сегодня пользуются миллионы: Бернерс-Ли — веб (HTTP, HTML, URL), Кнут — анализ алгоритмов и TeX, Айк — JavaScript, Хайкс — Docker, Коэн — BitTorrent.
  • Сильная идея часто не в том, чтобы изобрести технологию первым: Docker популяризировал уже существовавшую контейнеризацию, а веб вырос на простых и открытых соглашениях.
  • Масштаб не требует большого бюджета — JavaScript собран за считаные дни, а BitTorrent написан одним безработным программистом дома.
  • Общий урок для новичка: разбираться в смежных областях, задавать вопрос о цене решения по времени и памяти и доводить идею до удобного рабочего инструмента.

С чего начать сегодня, если хочется так же

Хорошая новость для тех, кто вдохновился: начинать сейчас проще, чем героям этого списка. Там, где им приходилось изобретать подход первыми, у вас есть структурированные программы, разобранные примеры и живая обратная связь. «С нуля» больше не значит «в одиночку и вслепую».

Освойте тему на практике

Типичная точка входа — Python: у него простой синтаксис, на нем пишут и первые скрипты, и серьезные проекты, поэтому его часто берут как первый язык. Если хочется системно освоить базу программирования, а не собирать знания обрывками, посмотрите курс Основы программирования (Python). Понять формат и уровень до старта помогают бесплатные открытые уроки Otus — живые занятия с преподавателями, куда можно прийти и задать вопрос.

FAQ

Правда ли, что все эти программисты начинали совсем без образования? Нет. У большинства было сильное профильное образование (физика, математика, информатика). «С нуля» тут — про эпоху, когда готовых учебников и курсов по их задачам еще не было, а не про отсутствие базы.

Кто из них считается «изобретателем интернета»? Точнее говорить не «интернета», а «Всемирной паутины». Интернет как сеть создавали раньше и коллективно; Тим Бернерс-Ли придумал веб — систему связанных гиперссылками страниц поверх интернета.

С какого языка новичку логичнее начинать — как эти герои? Повторять их путь буквально не нужно: они писали на C, ассемблере и языках своего времени под конкретные задачи. Сегодня для старта чаще берут Python из-за простого синтаксиса и широкого применения.

OTUS Журнал
Скидка 5% 14-20 сентября на курсы (popup)