Кариера

Петър Маймунков: Автоматизирайте решенията на проблемите си

Computer World

Петър МаймунковПетър Маймунков има бакалавърска степен по математика и компютърни науки от Харвард от 2001 г., магистърска степен по компютърни науки от Нюйоркския университет от 2003 г. и докторска степен от Лабораторията по компютърни науки и изкуствен интелект в Масачузетския технологичен институт (MIT) от 2012 г.

Докато следва в Нюйоркския университет, негов ръководител е проф. Давид Мазиер, с когото създава най-успешния си проект досега - Kademlia - дистрибутиран алгоритъм, който позволява на милиарди пиъри съвместно да съхраняват и откриват инормация.

През 2012 г. Петър Маймунков започва работа в Tumblr, където създава нова парадигма за ефективен развой и поддръжка на дистрибутирани приложения за обработка на данни, наречена Go Circuit.

Той се интересува от всички аспекти на дистрибутираните приложения - езиците и инструментите за тяхното изграждане, софтуерните метафори от по-високо ниво, създавани, за да скриват сложната семантика на подсистемните сривове в дистрибутирани системи, проектирането и анализа на нумерични алгоритми за пивот проблеми, както и инструментите за peer-to-peer системи.

Освен това Петър Маймунков се занимава активно с Ащанги йога и скално катерене.

Кои са уменията, които най-много са ви помогнали да постигнете това високо кариерно развитие в сферата на ИТ?

Много интересно и почти учудващо е, че всичко излиза от едно умение, което е почти незабелжимо.

Като бях по-малък никога не забравях да наблюдавам себе си по какъв начин решавам проблеми.

Веднъж моят дядо ми каза: ”Глупавите хора не се учат от грешките си. Умните хора се учат от грешките си. А най-умните хора се учат от грешките на другите”.

Какво означава това? В моят случай беше следното - ако аз открия някаква неефикасност, която ми вземаше от най-ценната валута - времето. Времето е пълен комунизъм и от него няма бягане. Всички имаме еднакво време и въпросът е кой ти го краде. Питах се кои домашни и кои начини на мислене ме ограбват от времето ми, което исках да прекарвам в моите забавления, които нямаха нищо общо с училище. Исках да правя видео и какво ли не друго.

Аз наблюдавам не само своя начин на мислене, но и на другите хора и виждам дупките в начина, по който мислят за света.

С годините започнах да прилагам това в софтуера и това доведе до интересни резултати и генерира кариерата ми.

Кое постижение считате за върха на своята кариера досега в ИТ?

До много скоро смятах, че Kademlia е моето най-голямо постижение, но вече смятам, че това е нов език за програмиране, който е много прост и генерален. Т. е. с него можете да програмиране неща, които например са в сферата на дизайна, както се работи с HTML, но също така и изчислителни алгоритми. Това все още не е излязло на практика, но ще се случи през близките няколко месеца. С други думи, става въпрос за език с много проста граматика, който се чувства изключително удобен за каквито и да е програми. Такъв език в момента не съществува на пазара.

Що се отнася до предходното ми голямо постижение - Kademlia - при него можете да видите как единствено свободата на мозъка, без никаква цел, мандатирана от друг човек, може да те отведе до дълбоки идеи. В момента, в който се опитате да решите нечий проблем, вие се поставяте в стая с четири стени и няма излизане оттам, тъй като накъдето и да се насочите, вие ще се ударите в стена преди въобще да започнете да мислите за каквото и да било.

Беше годината, в която се появи Napster. Това беше като една интересна метафора. До предишния ден трябваше да влизам в един огромен магазин - Power Records, който вече не съществува - пълен със CD-та. Всички струваха по $20. Но много често исках да си купя диск само заради една песен. И тогава се появи Napster и си казах: “Napster е все едно да вляза в Power Records и да си взема каквото си искам без пари”. Хареса ми страшно много като концепция и изведнъж, след една година, музикалната индустрия ни го отне. Бяха изпратили някакъв документ и в крайна сметка услугата трябваше да спре. Толкова се нервирах, че някакви адвокати са ми отнели забавлението, че седнах да измисля някакво техническо решение, така че да премахна слабостта на това, което стана. А това, което стана, беше, че създателят на Napster имаше някакъв много прост сайт, на който изпратиха този легален документ, който най-общо гласеше: “Спирай каквото правиш, докато не се разберем”. Тогава забелязах нещо - юридическата система може да има мнение само за неща, които са преди Интернет, защото тя не беше променена за Интернет. Следователно, тази система може да изпрати писмо за спиране на даден бизнес, само ако бизнесът е единично физическо място. Но с помощта на технологиите можем да разпилеем информацията на един милион места. Тогава един милион писма ли ще изпратят?

В момента, в който достигнах до тази реализация, започнах да мисля с такъв хъс, че след 1-2 г. измислих най-простия алгоритъм за разпиляване на информация. Бях толкова щастлив, че ще вкарам един юмрук в лицето на системата. Когато измислиш някакво оръжие, което въобще не съществува в схемана на обектите, които адвокатите имат написани на хартия, тя нямат никакъв шанс. Това беше толкова приятна и забавна мисъл - да нервирам хиляди адвокати с една идея.

Това е Kademlia и тази идея ми помогна да открия всички дупки в мисловния си процес. Осъзнах, че докато не построиш нещо сам, не знаеш нищо.

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

Обикновено всеки си има своите т. нар. productivity hacks и много топ мениджъри споделят своите в LinkedIn. Какви са вашите?

Аз обичам да работя сам, макар че обичам да съм сред хора. Но осъзнах, че, ако искам да работя сам, не мога да се боря с другите със средствата, които те ползват, тъй като хората, които работят в отбори, разполагат с много повече ефективни часове за работа и, ако използвам същите средства като тях, нямам никакъв шанс.

Ето какво измислих в крайна сметка.

Първо, човек трябва да изобретява нови езици. Може да звучи странно, но това е на-силното оръжие. Погледнете големите компании и се замислете как се построява такава структура. Това е като една дистрибутирана програма, в която на човешки език хората си казват: “това ти е шефът и той има такива и такива свободи”. Хората си обясняват един на друг какви са правилата и затова една огромна структура от хиляди души може да бъде координирана и да работи в някаква насока. Осъзнах, че всички тези, които организират големи групи от хора, са програмисти. Но как това се трансферира добре в Интернет сферата? Отговорът е, че ако човек иска да е самостоятелно толкова силен, колкото е компания със 100 инженери, начинът е следния - да си създавате абстрактни служители. Звучи налудничаво, но е така и никой не може да отрече моята продуктивност.

Научаваш се програмираш на първия си програмен език и прекарваш известно време, докато го изучиш. Построяваш си няколко библиотеки, които ти вършат полезна работа в сферата на това, което те интересува. Но в един момент трябва да спреш и да осъзнаеш, че, ако продължаваш да си правиш библиотеки, в крайна сметка няма да можеш да ги ползваш ефективно. Става много сложно да си помниш собствените интерфейси.

Затова отговорът е да научиш даден език, да построиш няколко библиотеки за главните неща и в момента, в който станат 5-6-7, ги консолидираш. За да направиш това, трябва да изобретиш първия си програмен език, което обаче е много деликатно. Смисълът на това е, че езикът те връща в един много прост синтаксис. Ние непрекъснато създаваме нови неща, но в момента на създаването повишаваме когнитивната цена на нашата текуща библиотека. Когато консолидираме, смъкваме когнитивната цена до нула, но си задържаме експресивността, която сме построили до момента. И когато правиш това 10 г., резултатът е програмен език - такъв, какъвто до няколко месеца ще пусна - с който аз сам можех да тичам в кръгчета около колегите си от Tumblr. Можех сам да построя част от Tumblr за една седмица, която отбор от 7-8 програмисти и още администратори не можеше да построи и за 1 г. Звучи много странно, но не е, ако имаш техника.

Мисля, че в бъдеще компаниите далеч няма да имат толкова много служители, а ще използват техника, подобна на моята, която ще им позволи да си организират автоматично с езици всички видове задачи - счетоводство, маркетинг, дизайн, всичко.

Замислете се за Twitter - нещо толкова просто, че може да се обясни с няколко изречения. И все пак компанията има хиляди инженери, които работят всеки ден. Ще кажете, че има огромни обеми от информация, с които трябва да се справят, но това са количествени измверения, а не качестявени. Когнитивната енергия се ползва само за квалитетни неща - решаването на проблеми. Всичко останало е количествено, а количествените неща никога не трябва да изискват когнитивна цена.

Компании, като Twitter и Facebook, са пълни с изключително умни хора, които гледат в грешната посока. Те си фокусират интелигентността в това как да си подобрят технологиите, построени със стари, глупави, неефективни програмни езици. Те трябва да мислят къде в своя процес харчат когнитивна енергия, за да решават количествени проблеми, и защо не се научават от грешките си, така че веднъж, след като решат някакъв малък проблем, да автоматизират решението му, а не да го описват в документация, която после всички да трябва да четат. Затова и аз съм толкова продуктивен.

Интервюто проведе Тихомир Иванов





© Ай Си Ти Медиа ЕООД 1997-2019 съгласно Общи условия за ползване

X