Кар'єра програміста. Розділ 1. Перша програма

Кар'єра програміста. Розділ 1. Перша програмаШановні читачі хабра, представляю вашій увазі серію постів, які в майбутньому планую об'єднати в книгу. Я захотів покопатися в минулому та розповісти свою історію, як я став розробником і продовжую ним бути.

Про передумови потрапляння в 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
- Зарплата - 6000-9000 $ / міс. залежно від навантаження
— Основне місце роботи сьогодні — фріланс-біржа Upwork. Через неї працюю на компанію, яка опікується NLP/AI/ML. Має базу в 1 мільйон користувачів
— Випустив 3 додатки в AppStore та GooglePlay
— Готуюся заснувати власну IT-компанію навколо проекту, який зараз розробляю

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

Ось, мабуть, усе про мене, що стосується теми книги. Далі моя історія.

Історія. Початок.

Вперше я дізнався, що таке ЕОМ, коли мені було 7 років. Я тільки пішов у перший клас і на уроці ІЗО нам дали домашнє завдання зробити ЕОМ з картону, паралону та фломастерів. Зрозуміло, мені допомагали батьки. Мама на початку 80-х років навчалася в технічному ВНЗ і не з чуток знала, що таке ЕОМ. За курс навчання, вона навіть встигла пробивати перфокарти і завантажувати їх у гігантську радянську машину, яка займала левову частку навчальної кімнати.

Домашнє завдання ми виконали на 5, бо все робили старанно. Знайшли щільний аркуш картону формату А4. Зі старих іграшок вирізали кружечки з паралону, а фломастерами намалювали інтерфейс користувача. Кнопок нашого пристрою вийшло небагато, але ми з мамою призначили їм потрібний функціонал і на уроці я показував вчителю, як натискаючи на кнопку «Увімк.», у куточку «екрану» загоряється лампочка, попутно домальовуючи фломастером червоний кружок.

Наступний перетин з обчислювальною технікою у мене стався десь у тому віці. У вихідні я часто гостював у бабусі з дідом, який у свою чергу торгував різним барахлом і також охоче скуповував його за копійки. Старий годинник, самовари, кип'ятильники, значки, мечі воїнів 13-го століття та інше. Серед усього цього різноманіття речей хтось приніс йому ЕОМ, який працював від телевізора та аудіомагнітофона. Благо у бабусі було і те, й інше. Радянського виробництва, очевидно. ТБ Електрон з вісьмома кнопками для перемикання каналів. І двокасетний магнітофон Вега, який міг навіть перезаписувати плівкові аудіокасети.
Кар'єра програміста. Розділ 1. Перша програма
Радянський комп'ютер «Пошук» та периферія: телевізор «Електрон», магнітофон «Вега» та аудіокасета з мовою BASIC

Ми почали розуміти, як ця вся система працює. У комплекті з ЕОМ було кілька аудіокасет, сильно пошарпана інструкція і ще одна брошура із заголовком — «Мова програмування BASIC». Незважаючи на мій дитячий вік, я намагався брати активну участь у процесі підключення шнурів до магнітофона та телевізора. Потім ми вставили одну з касет у відсік магнітофона, натиснули на кнопку «Вперед» (тобто почати відтворення) і на екрані телевізора висвітлилася незрозуміла псевдографіка з тексту та рис.

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

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

Кар'єра програміста. Розділ 1. Перша програма
Знамениті «Вовк ловить яйця та Тетріс»

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

Кар'єра програміста. Розділ 1. Перша програма
Восьмибітна приставка «Сюбор» та легендарний «Супер Маріо»

Так, я, як усі звичайні діти, хто ріс у дев'яностих, проводив весь день у дворі. То граючи в піонер-бол, то бадмінтон, то лазячи по деревах у саду, де росло багато різних фруктів.
Але ця новинка, коли ти можеш керувати Маріо, стрибати через перешкоди і рятувати принцесу — була в рази цікавішою від будь-яких жмурок, долонь і класиків. Тому, бачачи мій непідробний інтерес до приставок, батьки дали мені завдання вивчити таблицю множення. Тоді вони здійснять мою мрію. Її навчають у другому класі, а я лише закінчив перший. Але, сказано, зроблено.

Більш сильної мотивації, ніж своя ігрова приставка, було неможливо придумати. І вже за тиждень я з легкістю відповідав на запитання «сім'ю дев'ять», «шість три» та подібні. Тест був зданий і мені купили омріяний подарунок. Як ви дізнаєтеся далі, приставки та комп'ютерні ігри зіграли чималу роль у тому, щоб я захопився програмуванням.

Так проходили рік у рік. Виходили ігрові приставки наступного покоління. Спочатку Sega 16-bit, потім Panasonic, потім Sony PlayStation. Ігри були моєю розвагою, коли я поводився добре. Коли був якийсь одвірок у школі чи вдома — у мене забирали джойстики і грати я, зрозуміло, не міг. І ще звичайно впіймати момент, коли ти повернувся зі школи, а батько ще не повернувся з роботи, щоб зайняти телевізор — теж було своєрідним успіхом. Тож сказати, що я був ігроманом чи просиджував цілими днями за іграми — сказати не можна. Можливості такої не було. Швидше цілий день проводив на подвір'ї, де теж можна було знайти щось.
цікаве. Наприклад, зовсім дика гра – перестрілки повітрями. У наш час уже не зустрінеш такого у дворах, а тоді це була справжня війна. Пейнтбол - це просто дитяча забава, порівняно з тим побоїщем, яке ми влаштовували. Адже повітряні були
заряджені щільними пластмасовими кулями. І вистріливши в іншого пацана впритул, залишався синець на підлогу руки чи живота. Так і мешкали.

Кар'єра програміста. Розділ 1. Перша програма
Іграшкова рушниця з дитинства

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

Кар'єра програміста. Розділ 1. Перша програма
Мої герої з фільму «Хакери»

Справжнім відкриттям був для мене вже справжній ПК, з 15-дюймовим ламповим монітором та системним блоком на базі процесора Intel Pentium II. Зрозуміло, його купив собі дядько, котрий уже до кінця дев'яностих піднявся досить високо, щоб дозволяти собі
такі іграшки. Вперше мені включили якусь гру, і це не було надто захоплюючим. А ось одного разу, настав судний день, зірки зійшлися в ряд і ми прийшли в гості до дядька, якого не було вдома. Я поцікавився:
- А можна я увімкну комп'ютер?
- Так, роби з ним що хочеш, відповіла тітка, що любить тітка.

Зрозуміло, я й робив із ним що хотів. На робочому столі Windows 98 були різні піктограми. WinRar, Word, FAR, Косинка, ігри. Поклацаючи на всі значки, моя увага зупинилася на FAR Manager. На вигляд незрозумілий синій екран, але з довгим списком (файлів), які можна запускати. По черзі натискаючи на кожен, я відловлював ефект того, що відбувається. Щось спрацьовувало, щось ні. Через час, я зрозумів, що файли які закінчуються на ".exe" - найцікавіші. Вони запускають різні кльові картинки, в які теж можна поклацати. Так я запустив напевно всі наявні exe-файли на комп'ютері дядька, а потім мене ледве відтягли за вуха від надцікавої іграшки і повели додому.

Кар'єра програміста. Розділ 1. Перша програма
Той самий 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);
Кар'єра програміста. Розділ 1. Перша програма
Та сама перша програма на Turbo Pascal

Фух написав. Прибрав руки з клавіатури, і почав чекати на появу гуру для подальших інструкцій. Нарешті він підійшов, пробіг очима екраном і сказав натиснути клавішу F9.
— Зараз програма компілюється та перевіряється на помилки, сказав гуру
Помилок не було. Тоді він сказав натиснути Ctrl+F9, що мені теж треба було пояснювати покроково. Що потрібно затиснути Ctrl, а потім натиснути F9. Екран став чорним і на ньому нарешті з'явився зрозумілий запис: «Введіть перше число».
За командою вчителя я запровадив 7. Потім друге число. Я вводжу 3 та натискаю Enter.

Блискавично з'являється рядок на екрані 'Результат = 10'. Це була ейфорія і нічого подібного в житті я раніше не відчував. Начебто весь Всесвіт відкрився переді мною і я потрапив до якогось порталу. По тілу пройшло тепло, на обличчі з'явилася посмішка, і десь дуже глибоко в підсвідомості я зрозумів. що це моє. Дуже інтуїтивно, на рівні емоцій я почав відчувати, який величезний потенціал у цій коробці, що дзижчить під столом. Скільки можна зробити своїми руками, а вона це виконає!
Що це взагалі якась магія? У моїй голові зовсім не вкладалося, як той жовтий незрозумілий текст на синьому екрані перетворився на зручну та зрозумілу програму. Яка ще сама і рахує! Мене дивував не сам підрахунок, а те, що написані ієрогліфи, перетворюються на калькулятор. Між цими двома подіями була пропасти на той момент. Але інтуїтивно я відчував, що ця залізяка може майже все.

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

Далі буде ...

Джерело: habr.com

Додати коментар або відгук