14 Июня 2015
393

Педиатр-программист: Как я попал в Майкрософт | "(лирическое отступление) Школа и медвуз", часть 2 из 7

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

Часть 1: Поворот
Часть 2: (лирическое отступление) Школа и медвуз
Часть 3: Microsoft Student Partners Germany
Часть 4: Подготовка к интервью
Часть 5: Интервью
Часть 6: Практика в Майкрософт Бинг в Сан-Франциско
Часть 7: Работа в Майкрософт Бинг изнутри

Для связи со мной всегда можно использовать адрес: мой_ник_на_пикабу@gmail.com
=============

Честно говоря, я никогда не думал, что когда-то буду работать в США и тем более в такой компании, как Майкрософт. Как-то, когда я еще учился в школе и случайно увидел Эйфелеву башню на иллюстрации в учебнике французского языка, я невольно посмотрел в окно, где тогда еще был СССР, и подумал – «да, Эйфелеву башню я увижу разве что на более качественной иллюстрации и вряд ли я когда-то окажусь в Париже». Попасть в Париж через окно чердака, как в популярном тогда фильме «Окно в Париж», было для меня более реальным, чем съездить в Париж. По многим причинам, и не в последнюю очередь по финансовым.

У меня, как и у любого ребенка, были свои мечты, кем я хотел бы стать. Сначала я хотел быть космонавтом, потом пожарником (после посещения музея пожарного дела), потом мне хотелось вырасти и ремонтировать телевизоры. Все закончилось в 8 лет, когда папа принес домой первый мой компьютер. Компьютер этот выглядел не совсем так, как сегодня мы привыкли (см. иллюстрацию): это была такая черная коробка, чем-то похожая на обувную, на которой сверху была наклеена разноцветная бумага с нарисованными разными цветами клавишами и покрытая блестящей плёнкой. Это было достижение советской мысли, персональный компьютер БК-0010. (см. иллюстрацию в комментариях)

Вместе с компьютером шла кассета с пятью играми, которые можно было загружать, если подключить к компьютеру магнитофон. Игры были написаны на «алгоритмическом языке Фокал», интерпретатор которого был встроен в ПЗУ, и были по сегодняшним меркам довольно примитивными: кости, поиск сокровища в лабиринте («Фараон»), прохождение каких-то препятствий человечком. Игры, собственно, меня то и не заинтересовали так сильно, как сам компьютер и возможности поиграться с ним, попробовать что-то своё.

Но тут папа достал толстую книжку, что лежала в одной коробке с компьютером, и сказал, что сначала мне нужно прочитать её полностью. Книжка называлась очень странно «Персональный компьютер БК-0010. Руководство системного программиста». Последние два слова из названия книги я не понял совсем. Начав её читать, я осознал, что после 10-й страницы я уже не понимаю практически ничего. Те отдельные слова, что я знал, не сильно помогали понять смысл.

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

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

Прорыв у меня случился во втором или третьем классе, когда мы проходили умножение многозначных чисел «в столбик». Команда Фокала “T 3456 x 4567 = “ давала мне сразу окончательный ответ, а мне необходимо было записать в столбик «полное» решение. Сначала я вручную умножал первое число на отдельные разряды используя несколько команд -- «Т 3456 x 4 =», «T 3456 x 5 =» -- но скоро мне это надоело.

Тогда-то я и задумался: я нельзя ли написать такую программу, которая бы выдать решение в нужной мне форме? Самой сложной проблемой в решении этой задачи было найти i-ю цифру с конца числа, так как Фокал не поддерживал операции с символами (только с числами). В результате долгих размышлений я нашел такой способ: делим исходное число на 10, отбрасываем дробную часть, умножаем полученный результат на 10 и вычитаем его из оригинального числа. Таким образом мы получаем последнюю цифру числа.

После этого вторым трудным шагом было написание рекурсивного алгоритма (я просто банально не знал, как посчитать число знаков в числе, логарифмы в школе проходят сильно позже), который извлекал числа с конца второго числа, пока они там были, умножал на первое число и записывал результат с необходимым сдвигом. Сама программа, наверное, была строчек 20, но я был очень горд, что мог ее написать и аккуратно переписал её в тетрадку, что я завел для своих программ. С этого момента все космонавты, пожарные и милиционеры у меня отошли на второй план, и я знал, что я хочу стать «информатиком»...

Но время шло, сменился строй за окнами школы, наша школа стала экспериментировать с методами обучения, вводить элементы Вальдорфской системы. Система оценок вдруг стала из 5-бальной 15-бальной, появилась внутришкольная валюта «талант», которую можно было заработать ответами на каверзные вопросы и, накопив некое количество талантов, купить контрольную работу. Вокруг меня все менялось – и в стране, и в школе, неожиданно то, чем мы гордились – октябрятская звёздочка и пионерский красный галстук – вдруг стали предметами культа личности и люди стали гордиться тем, что никогда не были пионерами.

Компьютер у меня сменился сначала на ZX Spectrum, а потом на более продвинутый его вариант «Профи», где я наконец-то познакомился с ассемблером и долгими вечерами сидел в ZXASM (ассемблер) + STS (отладчик) стараясь написать собственную операционную систему. За три года я довольно далеко продвинулся: написал библиотеку работы с пропорционально-ширинными шрифтами (стандартно там шрифты все моноширинные), оконный менеджер, библиотеку графического указателя, что управлялся клавиатурой или джойстиком. На основе этих трех библиотек я написал свой примитивный файловый менеджер, что-то вроде Проводника в Windows, и стал раздумывать как можно написать диспетчер задач на основе той ограниченной поддержки прерываний, что была реализована в Спектруме. На этом я и остановился. (см. иллюстрацию в комментариях)

В школе у нас стояли «двойки» (IBM PC 286), списанные из какой-то спонсорской организации, где мы, как и большинство школьников того времени, «мучали Паскаль», штудировали книжку Хершеля и играли в игры типа первой Цивилизации. К сожалению, олимпиады по информатике тогда еще не проводились так массово и централизованно как сейчас, да и участвовать в них от моей школы посылали более способных в информатике (а таких было несколько!). Но к концу школы я вполне хорошо разбирался в программировании на тот момент времени, хотя, конечно, у меня не было никакого опыта написания серьезных приложений или опыта участия в олимпиадах с автоматической оценкой решений. (см. иллюстрацию в комментариях)

Постепенно шла к концу школа, и надо было выбирать себе ВУЗ по профессии. Однако вопрос выбора у меня не стоял. Весь 10-й и 11-й класс я усиленно готовился к поступлению в медицинский университет. Почему медицинский? Потому что мама у меня врач. Она честно мне сказала: «В жизни можно иметь много хобби и одну профессию. И пусть это профессия будет медицина. Вот если вдруг что случится, война или что – ну кому нужны будут информатики? Врачи же всегда будут нужны». Это был сильный аргумент. Тогда у меня не было чётких приоритетов в жизни. Мне казалось, что мне всё по плечу, а медицина была такой хорошей планкой, прыжком на высоту которой это можно было проверить.

Я успешно сдал вступительный экзамен по химии (после которого у меня остался на всю жизнь клок седых волос, так как решение ключевой задачи до меня дошло только за 15 минут до конца экзамена) и как медалист прошёл сразу на бюджет Педиатрического факультета. Потом были шесть удивительных лет в моей жизни. Медицина это действительная такая интегративная область знаний, где можно применять и высшую математику (в биофизики, физиологии, фармакологии) и просто уметь объединять тысячи вроде бы разрозненных фактов в единую систему (анатомия, гистология, патологическая анатомия, «топочка»). В какой-то момент огромный объем знаний, что дается несколько вразнобой на разных кафедрах, должен ассимилироваться в голове в единую четкую систему того, как устроен и работает человеческий организм в здравии и болезни – и эта система называется «клиническое мышление».

Довольно рано я начал заниматься наукой на кафедре физиологии и еще во время учебы мне удалось получить приглашения выступить с научными докладами в Украине и Италии, а также сделать практику в Германии. В результате по итогам этой практики меня и пригласили в аспирантуру в Берлин. Для меня этот вариант оказался просто спасением, так как в родном моем городе места мне, конечно же, не нашлось и меня собирались отправить работать врачом в небольшое татарское село Дрожанное, чтобы, по словам декана, «отработать своё бесплатное медицинское образование). Я плюнул на всех, поругался с проректором и деканом на распределении и уехал в Германию в аспирантуру в Charit, известную берлинскую клинику.

(продолжение следует)
Показать полностью

Как я и знакомые прощаются по телефону.

Я: пока.
Знакомые: ага, пока, до скорого, что, да, да, пока, ага, может быть, ага, да, не знаю, пока, что, да нет, пока, да, пока, ага пока. Кстати, ты знал, что Людка родила?
Мои подписки
Подписывайтесь на интересные вам теги, сообщества, авторов, волны постов — и читайте свои любимые темы в этой ленте.
Чтобы добавить подписку, нужно авторизоваться.

Отличная работа, все прочитано! Выберите