[Из песочницы] Стать Цукербергом или детство программиста

В детстве я мечтал стать Марком Цукербергом. Пока мои друзья грезили профессиями летчиков, врачей и космонавтов, я планировал запрограммировать самую большую ИТ-компанию. Марк Цукерберг ещё не родился, а я уже хотел им быть.
Не помню, когда и откуда впервые услышал про компьютеры. Скорее всего, это были книги Кира Булычева или Евгения Велтистова. В то время человечество возлагало на компьютеры большие надежды, и множество фантастических романов идеализировало цифровое будущее. В живую же компьютеры мало кто видел, поэтому первое знакомство с программированием началось с карандаша и листа бумаги. Я рисовал алгоритмы, запускал у себя в голове цикл фон Неймана и представлял, как выполняется поставленная программа. Все мои алгоритмы работали идеально и без ошибок.

Затем у меня появился конструктор, обучающий основам построения алгоритмов. Он состоял из панели, множества проводов и переключателей. Аппарат позволял автоматизировать расчёт ответов по анкетам, которые нужно было заранее составить на бумаге. Соединяешь проводами контакты, устанавливаешь переключатели в разные положения и в итоге получаешь сумму. Множество лампочек создавали эффект важной работы.

МК-52


Когда в стране появились первые программируемые калькуляторы, я сразу же стал за ними охотиться. Самый лучший калькулятор МК-52 выпускался в Киеве. Не знаю как, но, не имея доступа к интернету, я узнал, что ближайший магазин, где можно приобрести калькулятор моей мечты, находится в Белоруссии. Стоило это чудо техники 115 рублей — огромная по тем временам сумма. Спасибо родителям: оценив моё рвение, они пообещали съездить в отпуск и привезти вожделенную технику.

В ожидании калькулятора я развлекался с логарифмической линейкой. Конечно, это не программирование, но необходимость продумывать алгоритм вычисления превращала процесс счета в занимательную игру. Я до сих пор благодарен судьбе, что она сохранила для меня логарифмическую линейку и руководство по использованию. Это научило меня прикидывать в голове ответ, прежде чем что-то посчитать. Для принятия управленческих решений часто достаточно знать порядок величины, а точные числа лишь сбивают с толку.

И вот мне привезли калькулятор. Это был выход на новый уровень. Вокруг программирования на МК-52 формировалось какое-никакое сообщество, в журналах публиковали статьи и примеры программ. Будете смеяться, но мне удалось запрограммировать несколько полноценных игр — высадку на Луну, автомобильные гонки и даже зачатки Minecraft (та сюжетная линия, где стреляешь из лука, а калькулятор выдает ответ — попал/не попал).

eocevtnjphqhk3sfd5elrgzuq3y.jpeg
Калькулятор МК-52

Эффект присутствия захватывал дух, модный нынче Oculus Rift со своим VR не дает и малой доли тех ощущений. Конечно, для полного погружения приходилось выключать свет и запираться в шкафу, что создавало некоторые неудобства, но оно того стоило. Боец МК-52 прослужил мне почти 10 лет, в студенческие годы я считал на нем лабораторные и курсовые.

В том же году родился Марк Цукерберг.

Спектр-001


Затем я услышал про Basic. Не скажу, что он сбил меня с толку, но пришлось вернуться к бумаге и карандашам (вы же помните, что компьютера у меня еще не было?). Это немного расстраивало. Но тут в магазине «Электрон» неожиданно появились бытовые компьютеры «Спектр-001»! Родители снова пошли мне навстречу.

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

tqjmkj9pmpysthd3uhayet4uzes.jpeg
Спектр-001

Из инструментов программиста на этом чуде техники были доступны только машинные коды. К сожалению, в комплекте поставки не было даже ассемблера (или был, но я не знал что это такое, мой детский мозг не был готов воспринимать такие сложности). О какой-либо литературе для начинающих и речи не бы. Пришлось развлекаться поиском счетчиков жизней в играх, что само по себе было очень интересным занятием. А кто не мечтал хоть раз почувствовать себя хакером?

ZX Spectrum


За взломом тетриса незаметно пролетел год и, наконец, случилось одно из главных событий моей виртуальной жизни — я стал счастливым обладателем настоящего персонального компьютера — ZX Spectrum. Несмотря на свои 8 бит и скромный объем оперативной памяти в 48 Кбайт, этот малыш умел больше, чем современные макбуки.

oyo4v8mx3qzawtzwakwfoqduwgs.jpeg
ZX Spectrum

Во-первых, можно было сразу создавать программы на Basic. Никаких танцев с бубном — включил и работай. У него был цветной дисплей! Понятное дело, роль дисплея выполнял все тот же папин телевизор, но в интерфейсе и играх можно было использовать 8 цветов и два значения яркости.

Во-вторых, к компьютеру подключался магнитофон, чтобы сохранять создаваемые программы. Кассетами можно было делиться с друзьями, чем все активно и занимались. Прийти к другу на чай, поставить на запись кассету и под непрерывные завывания двоичного кода вести беседы о цифровом будущем — любимое времяпровождение гиков 80-х.

По программированию процессора ZX-80 литературы хватало, и я наконец погрузился в творческий процесс. Всё свободное время я что-то кодил. Что это были за программы! Гитарная примочка, заставляющая обычную фанерную гитару звучать, будто это Fender (ладно, поймали, тогда я не знал про американские гитары). А еще — возможность оцифровки и записи звука. Про MP3 я также еще не знал и алгоритм оцифровки придумал самостоятельно. Помните про 48 Кбайт? В них удалось записать первые секунд 10 «Smoke on the water». Современные кодеки отдыхают. Всем известные игры, вроде змейки, тоже надо было закодить.

elkck2qansogu7asesypat6285y.jpeg
Супруга играет в Color Lines

А затем мы создали первую в мире, и надо полагать, последнюю сеть на основе компьютеров ZX Spectrum. Больше не надо было бегать с кассетами к друзьям — можно было передать файл по сети! Энтузиасты разворачивали на своих компьютерах станции с модемами. Они назывались BBS или нодами. Дозвонившись на такой модем по телефону, можно было посмотреть список файлов, скачать или загрузить свои, а также пообщаться в чате с оператором.

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

Тем временем прогресс не стоял на месте. Железный занавес постепенно рассыпался — всё больше плодов «загнивающего капитализма» становилось доступно советским гражданам. Пришли и компьютеры IBM PC. С точки зрения программиста это было жуткое и унылое зрелище.

Программировать на таком компьютере вообще не хотелось. Оставалось только рубиться с друзьями в Duke Nukem и читать bash.org. Поэтому перелистнем эту страницу воспоминаний и перейдём к эпохе веб-программирования.

Веб-программирование


Первый выход в интернет состоялся по междугородней связи. Я понятия не имел, что такое интернет, однако, работа над созданием Спектрум-сети давала общие представления и привлекала своими возможностями.

Ещё ни в чем не разобравшись, я понял, что мне нужен сайт, свободно зарегистрировал 4-буквенный домен и начал осваивать html.

Тем временем Марк Цукерберг учился в средней школе.

HTML-верстка была проста и неприхотлива, динамический контент создавался с помощью Cgi Perl. Вам приходилось видеть код программ, написанных на Perl? Их легко узнать — все пишется в одну строку, и большую часть кода занимают не привычные слова, а непонятные символы. Своей магией Perl напоминал мне ассемблер.

fcnia7n_zvxrxlvw1o5ohlv-6os.jpeg
Магический Perl

Самой популярной поисковой системой того времени был справочник «Желтые страницы». Да, это был бумажный справочник, который продавался в магазине. В нем можно было найти по алфавиту или тематике нужный продукт. Единственное отличие от обычного справочника в том, что в «Желтых страницах» приводились не почтовые адреса и телефоны, а ссылка на сайт. Круто, правда?

К чему это я


Не каждому суждено стать Марком Цукербергом. Не получилось и у меня. Кто-то создает новые продукты, чтобы перевернуть мир, а кто-то получает удовольствие, собирая с ребенком робота на базе Arduino.

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

Позже я узнал, что Цукерберг учился психологии, а не программированию. И я задумался: так ли важен инструмент, на котором ты создаешь свой продукт? Тогда я понял — он выбирал цель, а не средства.

Кто готов идти дальше и менять мир к лучшему? Придумывайте хорошие идеи, а инструменты найдутся.

Автор — Антон Соколов, основатель и технический директор Деасофт

© Habrahabr.ru