01 December 2023

Про хобби вне работы

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

Пару месяцев назад поставил себе игрушку "Human Resource Machine", в которой надо решать задачи путем программирования. Визуализировано это дело через трудовые будни офисного работника, но используемый язык программирования при этом весьма примитивен и больше всего похож на язык ассемблера. Из-за чего даже самые простые задачи решаются весьма многословно и крайне моторошно. Но, не смотря на все это, игруха меня так крепко зацепила, что я начал рубиться в нее просто в режиме запоя и не успокоился, пока полностью не добил в течении нескольких дней.  

А теперь спросите меня, чем я занимаюсь на работе...

 

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

Я вообще чертовски далек от всех этих продвинутых фокусов типа "динамического программирования", алгоритмов балансировки деревьев, бла-бла-бла, но решение задачек оказалось чертовски увлекательным и аддитивным занятием, даже более веселым, чем пазлы в "Human Resource Machine". 

На некоторых задачках получилось показать даже весьма приличные результаты:


Интереса ради посмотрел на лучшие ответы для решенных задач на JavaScript, чтобы понять, как они соотносятся с эффективностью моих C++ решений. 

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

По итогу, как набор пазлов, LeetCode штука прикольная, но насиловать этим людей на интервью -- упаси госпади!