Карьера программиста. Глава 1. Первая программа

в 11:38, , рубрики: Карьера в IT-индустрии, книга карьера программиста, Читальный зал

imageУважаемые читатели Хабра, представляю вашему вниманию серию постов, которые в будущем я планирую объединить в книгу. Я захотел покопаться в прошлом и рассказать свою историю, как я стал разработчиком и продолжаю им быть.

Про предпосылки попадания в IT, путь проб и ошибок, самообучения и детской наивности. Свой рассказ я начну с самого раннего детства, и закончу его сегодняшним днем. Я надеюсь, что эта книга будет особенно полезной для тех, кто только учится на IT-специальность.

А те, кто уже работают в IT — возможно проведут параллели со своим путем.

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

Начиная от преподавателей в университете, заканчивая крупными венчурными инвесторами и владельцами многомиллионых компаний.

На сегодняшний день готовы 3.5 главы книги, из возможных 8-10. Если первые главы найдут положительный отклик у аудитории, я опубликую всю книгу целиком.

О себе

Я не Джон Кармак, Николай Дуров или Ричард Мэттью Столлман. Я не работал в таких компаниях как Yandex, ВКонтакте или Mail.ru.

Хотя у меня был опыт работы в крупной корпорации, о котором я обязательно расскажу. Но думаю, суть не столько в громком имени, сколько в самой истории пути в разработчики, и далее, в победах и поражениях, которые были за мою 12-летнюю карьеру в коммерческой разработке. Конечно у некоторых из вас, опыт в IT куда больше. Но верю, что драмы и победы, которые были за мою нынешнюю карьеру — стоят того, чтобы их описать. Событий было очень много, и они все разноплановые.

Кто я сегодня, как разработчик
— Участвовал в более 70 коммерческих проектах, многие из которых писал с нуля
— В десятке собственных проектов: open-source, стартапы
— 12 лет в IT. 17 лет назад — написал первую программу
Microsoft Most Valuable Person 2016
— Microsoft Certified Professional
— Certified Scrum Master
— На хорошем уровне владею C#/C++/Java/Python/JS
— Основное место работы сегодня — фриланс-биржа Upwork. Через нее работаю на компанию, которая занимается NLP/AI/ML. Имеет базу в 1 миллион пользователей
— Выпустил 3 приложения в AppStore и GooglePlay
— Готовлюсь основать собственную IT-компанию, вокруг проекта, который сейчас разрабатываю

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

Вот пожалуй все обо мне, что касается темы книги. Далее — моя история.


История. Начало

Впервые я узнал, что такое ЭВМ, когда мне было 7 лет. Я только пошел в первый класс и на уроке ИЗО нам дали домашнее задание сделать ЭВМ из картона, поролона и фломастеров. Разумеется мне помогали родители. Мама в начале 80-ых годов училась в техническом ВУЗе и не по наслышке знала, что такое ЭВМ. За курс обучения, она даже успела по пробивать перфокарты и позагружать их в гигантскую советскую машину, которая занимала львиную долю учебной комнаты.

Домашнее задание мы выполнили на 5, потому что все делали старательно. Нашли плотный лист картона формата А4. Из старых игрушек вырезали кружочки из поролона, а фломастерами нарисовали пользовательский интерфейс. Кнопок у нашего устройства получилось немного, но мы с мамой назначили им нужный функционал и на уроке я показывал учителю, как нажимая на кнопку «Вкл.», в уголке «экрана» загорается лампочка, попутно дорисовывая фломастером красный кружок.

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

1
Советский компьютер «Поиск» и периферия: телевизор «Электрон», магнитофон «Вега» и аудиокассета с языком BASIC

Мы начали разбираться, как эта вся система работает. В комплекте с ЭВМ было пару аудиокассет, сильно потрепанная инструкция и еще одна брошюра с заголовком — «Язык программирования BASIC». Несмотря на мой детский возраст, я старался активно участвовать в процессе подключения шнуров к магнитофону и телевизору. Затем мы вставили одну из кассет в отсек магнитофона, нажали на кнопку «Вперед» (т.е. начать воспроизведение) и на экране телевизора высветилась непонятная псевдографика из текста и черточек.

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

Из детских воспоминаний, я конечно помню все гаджеты, которые родители мне покупали, сложившись с другими родственниками. Первая погремушка была всем известная игра «Волк ловит яйца». Ее я прошел довольно быстро, увидел долгожданный мультик в конце и захотелось чего-то больше. Потом был Тетрис. На то время он стоил 1,000,000 купонов. Да, дело было в Украине в начале 90-ых, и за успехи в учебе мне подарили миллион. Заслуженно чувствуя себя миллионером, я заказал родителям эту более сложную игру, где нужно было правильно раскладывать падающие сверху фигуры разных форм. В день покупки, Тетрис у меня невозбранно отняли родители, которые сами не могли от него отлепиться дня два.

1
Знаменитые «Волк ловит яйца и Тетрис»

Потом были игровые приставки. Наша семья жила в небольшом доме, где в соседней комнате жили также мои дядя с тетей. Дядя был военным-летчиком, прошел горячие точки, поэтому несмотря на свою скромность был очень хваткий и мало чего боялся, после реальных боевых действий. Также как и многие люди в 90-ых, мой дядя занялся бизнесом и у него был довольно неплохой достаток. Так в его комнате появился импортный телевизор, видеомагнитофон, а затем приставка Subor (аналог Dendy). У меня захватывало дух, когда я смотрел, как он играет в Super Mario, TopGun, Terminator и прочие игры. А когда он передавал мне в руки джойстик — моему счастью не было предела.

1
Восьмибитная приставка «Сюбор» и легендарный «Супер Марио»

Да, я как все обычные дети, кто рос в девяностых, проводил весь день во дворе. То играя в пионер-болл, то бадминтон, то лазя по деревьям в саду, где росло много разных фруктов.
Но эта новинка, когда ты можешь управлять Марио, прыгать через препятсвия и спасать принцессу — была в разы интересней любых жмурок, ладушек и классиков. Поэтому, видя мой неподдельный интерес к приставкам, родители дали мне задание выучить таблицу умножения. Тогда они исполнят мою мечту. Ее учат во втором классе, а я только закончил первый. Но, сказано — сделано.

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

Так проходили год за годом. Выходили игровые приставки следующего поколения. Сначала Sega 16-bit, потом Panasonic, потом Sony PlayStation. Игры были моим развлечением, когда я вел себя хорошо. Когда был какой-то косяк в школе или дома — у меня забирали джойстики и играть я разумеется не мог. И еще конечно словить момент, когда ты вернулся из школы, а отец еще не вернулся с работы, чтобы занять телевизор — тоже было своеобразной удачей. Так что сказать, что я был игроманом или просиживал целыми днями за играми — сказать нельзя. Возможности такой не было. Я скорей целый день проводил во дворе, где тоже можно было найти что-нибудь интересное. Например, совсем дикая игра — перестрелки воздушками. В наше время уже не встретишь такого во дворах, а тогда — это была настоящая война. Пейнтбол — это просто детская забава, по сравнению с тем побоищем которое мы устраивали. Воздушки ведь были заряжены плотными пластмасовыми пулями. И выстрелив в другого пацана в упор, оставался синяк на пол руки или живота. Так и жили.

image
Игрушечное ружье из детства

Не лишним будет упомянуть фильм «Хакеры». Вышел он как раз в 1995 году, в главной роли с 20-летней Анджелиной Джоли. Сказать, что фильм произвел на меня сильное впечатление — ничего не сказать. Ведь детское мышление воспринимает все за чистую монету.

А как эти ребята лихо обчищали банкоматы, выключали светофоры и игрались с электричеством по всему городу — для меня это была магия. Тогда мне в голову зашла мысль, что круто было бы стать таким всемогущим как Хакеры.

Спустя несколько лет, я покупал каждый номер журнала «Хакер» и пытался хакнуть Пентагон, хотя интернета у меня еще тогда не было.

image
Мои герои из фильма «Хакеры»

Настоящим открытием был для меня уже настоящий ПК, с 15-ти дюймовым ламповым монитором и системным блоком на базе процессора Intel Pentium II. Разумеется, его купил себе дядя, который уже к концу девяностых поднялся достаточно высоко, чтобы позволять себе такие игрушки.

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

— А можно я включу компьютер?
— Да, делай с ним что хочешь, — ответила любящая тетя.

Разумеется, я и делал с ним что хотел. На рабочем столе Windows 98 были разные значки. WinRar, Word, FAR, Косынка, игры. Поклацав во все значки, мое внимание остановилось на FAR Manager. С виду непонятный синий экран, но с длинным списком (файлов), которые можно запускать.

Поочередно нажимая на каждый, я отлавливал эффект происходящего. Что-то срабатывало, что-то нет. Через время, я понял, что файлы которые заканчиваются на ".exe" — самые интересные. Они запускают разные клевые картинки в которые тоже можно поклацать. Так я запустил наверное все имеющиеся exe-файлы на компьютере дяди, а затем меня еле оттянули за уши от сверх-интересной игрушки и повели домой.

FAR-manager
Тот самый FAR Manager

Потом были компьютерные клубы. Мы с другом часто захаживали в них, поиграть в Counter-Strike и Quake по сети, чего дома сделать нельзя было. Я часто просил у родителей мелочь, чтобы пол часа поиграть в клубе. Видя мои глаза, как у кота из Шрека, они предложили мне еще один выгодный контракт. Я заканчиваю учебный год без троек, а они мне покупают компьютер. Контракт был подписан в начале года, в сентябре, а вожделенный ПК должен был поступить аж в июне, и при условии соблюдения договоренностей.

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

Уже весной, предвкушая покупку ПК, произошло наверное самое знаковое событие в моей жизни. Я, стараюсь думать наперед, и поэтому в один прекрасный день заявил отцу:

— Пап, я же не умею пользоваться компьютером. Давай запишемся на курсы.

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

Помню свое первое занятие. Долго грузящаяся Windows 98, затем слово взял препод:

— Так. Перед вами рабочий стол Windows. На нем расположены значки программ. Внизу кнопка Пуск. Запомните! Вся работа начинается с кнопки Пуск. Нажмите ее левой кнопкой мыши.
Он продолжал.
— Здесь — вы видите установленные программы. Калькулятор, Блокнот, Word, Excel. Также вы можете выключить компьютер нажав на кнопку «Завершение работы». Пробуйте.
Наконец он перешел к более сложной для меня части на тот момент.
— На рабочем столе, говорил препод, вы также можете видеть программы, которые можно запустить двойным кликом.
— Двойным!? — Это как вообще?
— Давайте попробуем. Запустите Блокнот два раза щелкнув по нему левой кнопкой мыши.

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

Потом было обучение Word'у, Excel'ю. В один день, мне просто дали полистать картинки природы и памятников архитектуры. Это было самое интересное занятие на моей памяти. Уж куда веселей, чем учиться форматировать текст в Ворде.

По соседству с моим ПК, обучались другие студенты. Пару раз я попадал на ребят, которые писали программы, при этом бурно обсуждая этот процесс. Меня это тоже заинтересовало. Помня фильм Хакеры и надоевший MS Office, я попросил, чтобы меня перевели на курсы программирования. Как и все знаковые события в жизни, это произошло спонтанно, из интереса.

На первое занятие по программированию я прибыл с мамой. Не помню почему так. Видимо она должна была договариваться за новые курсы и внести оплату. На дворе была весна, было уже темно. Мы через весь город доехали на маршрутке-Газеле до окраины, дошли до пресловутой
панельной Хрущевки, поднялись на этаж и нас впустили.

Меня посадили за крайний компьютер и открыли программу с полностью синим экраном и желтыми буквами.

— Это Turbo Pascal. Прокомментировал свое действие преподаватель.
— Вот смотри, тут я написал документацию, как-что работает. Почитай, ознакомся.

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

Наконец через некоторое время, ведущий курса протянул мне распечатанный листок A4. На нем была написана какая-то странность, которую я раньше мельком видел на мониторах ребят с курсов программирования.
— Перепиши то, что тут написано. Скомандовал препод и удалился.
Я стал писать:
program Summa;

Написал я, попутно выискивая на клавиатуре английские буквы. В Ворде то, я хоть на русском тренировался, а тут надо и другие буквы учить. Программа набиралась одним пальцем, но очень старательно.
begin, end, var, integer — что это? Хотя английский я учил с первого класса и знал значение многих слов, но я не мог увязать это все вместе. Я как дрессированный медведь на велосипеде, продолжал крутить педали. Наконец что-то знакомое:
writeln ('Введите первое число');
Затем — writeln ('Введите второе число');
Затем — writeln ('Результат = ',c);

image
Та самая первая программа на Turbo Pascal

Фух, написал. Убрал руки с клавиатуры, и стал ждать появления гуру для дальнейших инструкций. Наконец он подошел, пробежал глазами по экрану и сказал нажать клавишу F9.
— Сейчас программа компилируется и проверяется на ошибки, сказал гуру
Ошибок не было. Тогда он сказал нажать Ctrl+F9, что мне тоже в первый раз нужно было объяснять пошагово. Что нужно зажать Ctrl, потом нажать F9. Экран стал черным и на нем наконец появилась понятная мне запись: «Введите первое число».
По команде учителя я ввел 7. Затем второе число. Я ввожу 3 и нажимаю Enter.

Молниеносно появляется строка на экране 'Результат = 10'. Это была эйфория и ничего подобного в жизни я ранее не испытывал. Как будто вся Вселенная открылась передо мной и я попал в какой-то портал. По телу прошло тепло, на лице появилась улыбка, и где-то очень глубоко в подсознании я понял — что это мое. Очень интуитивно, на уровне эмоций я начал ощущать, какой огромный потенциал в этой жужжащей коробке под столом. Сколько всего можно сделать своими руками, а она это исполнит!

Что это вообще какая-то магия. В моей голове совершенно не укладывалось, как тот желтый непонятный текст на синем экране, превратился в удобную и понятную программу. Которая еще сама и считает! Меня удивлял не сам подсчет, а то что написанные иероглифы, превращаются в калькулятор. Между двумя этими событиями была пропасть на тот момент. Но интуитивно я чувствовал, что эта железяка может почти все.

Почти всю дорогу домой в маршрутке, я был словно в космосе. В моей голове крутилась эта картинка с надписью «Результат», как так получилось, что еще может эта машина, смогу ли я сам что-то написать без листочка. Тысяча интересующих меня вопрос, волновали и вдохновляли одновременно. Мне было 14 лет. В тот день профессия выбрала меня.

Продолжение следует…

Автор: Денис

Источник

* - обязательные к заполнению поля