Как я победил в олимпиаде по программированию, не умея программировать
Не совсем победил, а занял второе место, хотя и имел все шансы и на первое, и не совсем не не умел, но об этом со всеми подробностями дальше.
Вообще топик скорее пятничный, поэтому ничего страшного не случится если вы отложите его чтение на соответствующий день.
Итак, на дворе осень 97 года, я ученик 10 (предпоследнего) физ-мат класса общеобразовательной школы. Я в этом классе и в этой школе новичок, и наверное единственный кто добирается в школу каждый день на автобусе, т.к. живу не в этом микрорайоне.
В один из дней, меня вызывают в класс информатики, где вместе с учителем оной присутствовал и директор школы. Мне торжественно объявляют что в РайОНо было решено провести районную олимпиаду по программированию в нашей школе, т.к. она на хорошем счету и у нас целых два класса информатики. И для того, что бы поддержать престиж хозяев данного мероприятия нам срочно нужен участник от нашей школы, а я идеальный кандидат, по их мнению, и да, олимпиада через неделю.
Не то что бы я не умел программировать вообще, программировать я умел, но маленько не на том языке, на котором предполагалось проводить олимпиаду. Да и не в том объеме, если честно.
На мое робкое замечание, что я знаю только бейсик, а надо знать паскаль, мне дали бумажный самоучитель по турбо паскалю и уверили, что победы от меня никто не ждет, надо просто не ударить в грязь лицом и вполне будет достаточно занять место где-нибудь в середине.
Тут наверное стоит рассказать, почему выбор пал именно на меня, новичка в этой школе. Все банально, мой багаж знаний по computer science, в тот момент, наверное, был самым большим во всей школе. И учитель знал это, т.к. один летний месяц я провел в этой школе, посещая летний компьютерный лагерь который они организовывали. Самый большой багаж знаний школы состоял из опыта программирования на бейсике в начале 90-х на БК-шке, программировании на Лого в 6-7 классах, знания как отключить клавиатуру с помощью кнопки Fn на ней и курсов дизайнера законченных при Авиационном институте. Не густо) но научится программировать я всегда хотел (да и сейчас не оставляю эти попытки) поэтому вызов был принят и я погрузился в изучение сделал попытку овладеть данным языком и средой разработки за 24х7 часов.
Первая сложность была в том, что в компьютерном классе турбо паскаля отродясь не было а его установка на наши машины была запланирована только в день Х силами сторонних преподавателей. Учитель информатики то же не могла мне ничем помочь, т.к. имела не профильное образование и на уроках преподавала только пакет офисных программ. Оставалось изучать язык только по выданной книге, но ее чтение привело меня в уныние и она была заброшена. Было решено призвать на помощь коллективный разум, в лице Гугла районной детской библиотеки, где обнаружился один экземпляр книги «100 задач по программированию». Особо ценным в ней было то, что задачи там разбирались как раз на паскале. Ее чтение я продолжал до самого дня Х, но опять же, сухая теория без практики большой пользы не принесет. В итоге, за неделю мой скилл в программировании не увеличился а возможно даже уменьшился т.к. была внесена сумятица новыми терминами, понятиями.
В день Х я собрал все свое мужество и выдвинулся в сторону своей школы. Иллюзий я не питал, но был план спрятать имеющиеся в моем распоряжении книги в соседнем кабинете и когда уже будут известны конкретные задачи, выйти в «туалет» и попробовать на основе этих книг написать что то отдаленно похожее на программы. Получив задание все приступили к программированию довольно шустро. Я, что бы не сильно выделятся, то же что то набирал для отвода глаз, когда подходила наша преподавательница я улыбался и говорил что все нормально, хотя понимал что всё хуже некуда и даже если мне разрешат пользоваться книгами в открытую, то это мне не поможет решить ни одну задачу из положенных пяти. Время нам дали часа три на все про все.К исходу второго часа я был уже на грани бросить все и уйти громко хлопнув дверью. Но очень хотелось показать моим новым одноклассникам и одноклассницам что я крут, и мозг начал искать решения выхода из патовой ситуации.
Тут как нельзя кстати, вспомнилась особенность организации нашего компьютерного класса, все компьютеры класса не имели своих жестких дисков, загружались по сети и хранили свои данные на жестком диске центрального компьютера (тонкости всей инфраструктуры сейчас уже не помню, но этого для развития сюжета и не нужно). Аккуратно, что бы не привлекать внимание соседей, пытаясь сдержать улыбку до ушей я начал просматривать папки своих оппонентов, куда они уже сохраняли свои труды на протяжении двух часов. Найдя папку где уже было 5 файлов с самым большим количеством кода я решил что скорей всего это наиболее правильно решенные задачи и скопировал их к себе в папку соответственно переименовав. Каких то особых моральных мучений я не помню, хотя сейчас понимаю что это было не правильно, был только страх быть пойманным за таким нелицеприятным делом, но опять повторю, что моему мозгу было все равно как достичь нужный результат и решение было принято. На всякий случай я поменял имена переменных которые использовались в коде и в самый последний момент специально сделал одну ошибку, т.к. понял что занявший первое место едет уже на городскую олимпиаду, и провалится там с треском мне совсем не хотелось (вероятность того что и городскую олимпиаду проведут в нашей школе была минимальной).
Где то примерно через неделю пришли результаты, меня торжественно перед всем классом поздравили с почетным вторым местом, подарили ценный приз в виде упаковки цветных 3-х дюймовых дискет и почетную грамоту. Не знаю произвело ли это на девчонок моего класса впечатление, но через некоторое время мною была получена записка от тайной поклонницы с признанием в любви, но кто это я так и не выяснил, т.к. в мои руки попала игра Fallout и на ближайшие полтора года у меня была только одна страсть которая не давала спать, учится и интересоваться чем то еще в этой жизни.
В последующие годы я так и не овладел программированием, хотя попытки время от времени предпринимал. Была даже попытка попасть на курсы тестировщиков в Epam, но пройти собеседование не получилось т.к. по их мнению не было видно сильного желания с моей стороны. Сейчас я уже принял решение бросать свою нынешнюю деятельность (немного промышленности, много бумаг в системе качества, общение с заказчиками на не интересные вечно повторяющиеся темы), доработаю до НГ, получу 13 зарплату и уйду в никуда, изучать java что бы потом устроится на позицию юниора. Скопленных денег хватит на 3-4 месяца, да и жена пока работает а ее декрет только в стадии подготовки. В общем хорошее время что бы оглянуться назад, посмотреть вперед и попробовать себя именно в том к чему лежит душа. Поэтому и пересматривается жизнь, вспоминается где повернул не туда, где приложил не достаточно усилий и как надо было бы по хорошему действовать. Но все мы крепки задним умом, а решимость на поступки нужна сейчас.
Если кто-то из пользователей Хабра, в 97 году проживал в Советском районе города Самары и участвовал в районной олимпиаде и занял 3 или 4 место, простите и знайте, что вы на самом деле были достойны более высокого места за свои знания (дискетки могу вернуть). Если найдется тот кто занял тогда 1 место, с меня пиво.