Category: лытдыбр

Category was added automatically. Read all entries about "лытдыбр".

awesomeness

Как я сдавала экзамен по алгоритмам

Эти сутки, посвящённые сдаче экзамена, были настолько стрессовыми, что я просто в терапевтических целях обязана поведать об этом всему миру! :)

Это был экзамен по курсу «Algorithms: Design and Analysis, Part 2», который я проходила с конца января. Курс рассчитан на 7 недель, но занял у меня без малого пять месяцев. Поэтому экзамена я ждала как избавления :) Решила, что надо собрать волю в кулак и закончить курс в эти выходные!

Конечно, лекции первых недель уже успели забыться. Поэтому я села повторять материалы и повторно проходить все тесты в качестве подготовки. В час ночи с пятницы на субботу, ага. К четырём утра материалы первых двух недель были пройдены, ура! Наутро предстояло бегло пробежаться по оставшимся четырём. Когда я всё закончила, времени было часа три дня.

Оставался экзамен, каких-то двадцать вопросов и победа! Это я сейчас понимаю, что это была не самая замечательная идея... но вчера я, как истинный студент, не видела ничего ненормального в том, чтобы «ночью поучиться да утром повторить, чтобы днём сдать экзамен» :))) Каких-то двадцать вопросов.

Примерно к 12-му вопросу я поняла, что что-то как-то оно идёт со скрипом! В ноутбуке оставалось 42% батарейки, я удобно расположилась в диване-облаке, хлебнула ещё божественного руандийского кофе и, стиснув зубы, продолжила. На 17-м я отчётливо ощутила, что больше не-ле-зет. Что-то похожее у меня было, пожалуй, только раз в жизни. На коллоквиуме на первом курсе, когда профессор (не будем показывать пальцем!), пытаясь доказать мне, что я знаю предмет на отлично, продержал меня в экзаменационном зале пять часов.

Оставалось каких-то несчастных 4 вопроса! Я ответила на последние три. 17-й держался насмерть. Задача заключалась в следующем: были даны две очень похожих NP-complete задачи и две идентичные модификации к условиям. Из полученных четырёх упрощённых задач надо было выбрать те, которые принадлежат к классу P. От усталости я едва могла представить себе в голове оригинальные задачи и как они соотносятся друг с другом.


Лев, посмотрев в мои безумные глаза, поинтересовался, «что там за вопрос», но тут же предложил расставить галочки наугад. Поскрипев мозгами в мета-пространстве знаний, я как истинный студент-недоучка сумела расставить все галочки (безошибочно, как потом выяснилось). Всё, submit!

75%, даже при проходных 70%, это фактически провал. Потому что 25% мы получаем «автоматом» просто отсекая очевидно бредовые варианты (там по 4 ответа на каждый вопрос), и ещё 33% — согласно теории вероятности. Итого знаний в моём ответе 17% и незнаний 25%. И это жутко досадное ощущение, что вот он, мой потолок... По крайней мере, так воспринимал ситуацию мой выжатый как лимон мозг.

Может быть, через пару дней я посмотрю на всё это по-другому.
awesomeness

Пара соображений по поводу HackerRank

Мне очень понравились идея и реализация проекта! В конкурсе продолжительностью сутки даются 8 задач разного уровня. Задачу надо запрограммировать на одном из языков и загрузить свой код на сайт. После этого его автоматически пропускают через тесты и для каждого теста сообщают статус: ok/timeout/wrong answer/segmentation fault/etc. По результату выполнения всех тестов решение получает определённый балл, от 0 до максимального для этой задачи. Код можно загружать сколько угодно раз, учитываться для данной задачи будет лучший результат.

1. Богатый выбор языков — порядка 3-4 десятков.

2. Первая задача — фактически smoke test того, что вы всё поняли правильно в плане работы с входными данными и вывода результатов.

3. Хорошее, на мой взгляд, распределение уровней сложности. На интуиции и базовых знаниях алгоритмов можно выехать вплоть до уровня "moderately difficult". При этом наивная имплементация скорее всего не позволит получить максимальный балл даже на этом уровне.

4. Соревновательный момент работает! При всей моей сумасшедшести я бы не села за новую задачу в шесть утра, если бы мне не претило позорное 500-какое-то-там место. Соревновательность других же даёт понять, каков же на самом деле мой реальный уровень и как его можно улучшить. Оно, конечно, бьёт по самолюбию, но не катастрофически.

5. Лекции по алгоритмам с Курсеры — большая подмога! А конкурс, в свою очередь, помогает научиться применять полученные на курсах знания для решения новых задач и показывает, где есть пробелы.

Итог: тем, кто хочет подтянуть свои навыки, но у кого вечно нет на это достаточно свободного времени, такие конкурсы помогут сдвинуться с мёртвой точки. Мне всё очень понравилось. Часто такие «подрывы» делать не будешь, но раз в пару-тройку месяцев мне это будет очень полезно.
awesomeness

Грядет эпоха нетбуков

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