Недавно на нашем ютуб-канале выступила Ольга Кунявская, младший научный сотрудник лаборатории «Центр биоинформатики и алгоритмической биотехнологии» СПбГУ.
Оля в науке уже 4 года и сейчас учится на втором курсе магистратуры НИУ ВШЭ — Санкт-Петербург по направлению Software Engineering. Закончила Академический университет по направлению биоинформатика.
Делимся записью эфира и расшифровкой.
Меня зовут Ольга Кунявская, я работаю в лаборатории, которая называется «Центр биоинформатики и алгоритмической биотехнологии». Сначала я расскажу предысторию того, как я попала в биоинформатику, какой у меня был бэкграунд; потом расскажу общие факты про нашу лабораторию, а потом расскажу про три проекта, которыми я сейчас занимаюсь.
Я из Москвы, родилась и выросла Москве. Начала учить программирование в 8 классе, в школе активно занималась олимпиадами, в том числе в 11 классе стала призером Всероссийской олимпиады по информатике. После этого я поступила в Академический университет Санкт-Петербурга; мне кажется, это было правильным решением. Там была сильная программа по математике и программированию, и мне очень нравилось учиться. Я действительно много училась; была тем безумным человеком, который делал домашки в тот же день, когда их выдают, и получает все зачеты до зачетной недели. У нас реально классное образование.
Хотя в школе все было иначе; я была достаточно хорошо подкована в алгоритмах и математике, но у меня была тройка по биологии, английский язык в 10 классе – примерно на уровне elementary (после 11 –pre-intermediate), и у меня в принципе не получалось писать связные тексты и выражать свои мысли. И еще я дислексик, читаю примерно в два раза медленнее, чем среднестатистический человек; когда я пишу, у меня в абзаце текста обычно бывает куча ошибок – за диктанты мне обычно ставили двойку после прочтения первого абзаца. По окончанию школы у меня были не слишком развиты soft skills – просто потому, что в школе они не особо требуются, чтобы продвигаться. Умеешь решать задачи – хорошо, ты занимаешь высокие места, поступаешь в университет, который хочешь, и soft skills, чтобы чего-то достичь, не нужны.
С этим багажом я в какой-то момент начала заниматься биоинформатикой, на втором курсе университета. К третьему курсу нам требуется выбрать направление, до этого идет общий трек. В университете я многим интересовалась, у меня была радость от того, что я понимаю различные вещи, что у предметов, которые мне нравятся, есть крутые преподаватели. На втором курсе ко мне даже подходил куратор и спрашивал, чем я хочу заниматься: обычно было понятно, каким направлением интересуется человек, но я будто бы интересовалась всем сразу, мне все нравилось, и я везде хорошо успевала. Я решила взять какой-то проект, чтобы попробовать разобраться в том, чем я хочу заниматься. Было много направлений, из которых я не могла сделать выбор. Была теоретическая информатика, которая мне очень нравилась; разработка ПО, языки программирования, какие-то другие направления – и биоинформатика. Я решила пойти от противного: вроде бы биоинформатика – это, должно быть, то, чем я точно не хочу заниматься из-за приставки «био», и именно по ней я взяла проект – чтобы понять, что мне это точно не нравится, и спокойно перейти к чему-то еще.
Я даже помню, как я пришла получать проект. Я пришла, сказала, что хочу попробовать проект из этой темы, что я могу кодить и знаю алгоритмы, но не знаю биологию. Мне сказали: да, есть проект, который можно попробовать, и спросили: знаешь центральную догму молекулярной биологии? Я ее, конечно, не знала. Мой будущий научный руководитель (который сейчас мой коллега) сказал: хорошо, вот у нас есть ДНК, что мы из неё получаем? Я: РНК. Он: правильно, а из РНК мы что получаем? Я: не знаю. Он: ну, белки получаем – сейчас все расскажу, там все просто.
В общем, не поняла я тогда, что биоинформатика мне не нравится. Это было 4 или 5 лет назад, и за это время многое изменилось. У меня откуда-то взялась тяга к знаниям по биологии – хотя я до этого никогда не учила ее специально. Может быть, потому, что я теперь в этом постоянно нахожусь. И английский я выучила.
Q: ?Что значит: читаю в два раза медленнее, чем другие? Научные тексты нагружены информацией, и часто для понимания их приходится перечитывать несколько раз. Это же не приключенческие романы.
А я приключенческие романы в два раза медленнее читаю. То есть, если дать обычный текст обычному человеку и мне, то я прочитаю в два раза медленнее, еще и вероятностно. Знакомые слова я хорошо читаю, а незнакомые приходится угадывать. У меня есть какое-то видение: наверное, вот там такое слово. Я могу подробнее рассказать про дислексию, если интересно; в целом, это такое нарушение, когда человек воспринимает мир немного по-другому и видит его скорее картинками, поэтому возникают сложности с чтением и письмом, возникают специфические ошибки (например, иногда получаются перевернутые буквы). Представьте, что иногда буквы переставляются, или как-то взлетают – поэтому читать тяжело.
Теперь про лабораторию. Я по тому же проекту, который взяла, защитила диплом. В какой-то момент сходила на стажировку в лабораторию летом, пока училась, и, как только университет закончила, устроилась на работу в нашу лабораторию в СПБГУ, где сейчас и работаю. Это мое первое, единственное и неповторимое место работы, все это время я занимаюсь биоинформатикой.
Лаборатория достаточно маленькая, в ней около 15 человек. Хочу сразу отметить, что я в лаборатории сейчас самая младшая и по возрасту, и по времени работы в этой лаборатории, и по времени работы в сфере биоинформатики – меня окружают гораздо более опытные коллеги. Я сейчас – младший научный сотрудник, так что я пока не являюсь каким-либо крупным авторитетом в нашей области.
(только что мне написали коллеги, что у нас недавно появилась одна новая сотрудница, которая еще младше меня)
Лаборатория появилась в СПБАУ в 2010 году. Поскольку это было до того, как я начала заниматься биоинформатикой, для меня это равносильно тому, как если бы она существовала всегда. Потом она переехала в СПБГУ — уже давно, я не помню когда именно – и при мне она всегда была там.
Q: ?Моё восхищение. А сколько вам лет? Возможно, я прослушал
Мне 24 года. Я такая старая, потому что, с одной стороны, я учусь на шестом курсе, а с другой – я в третьем классе оставалась на второй год. Со школой вообще сложная история – кроме этого, у меня в 9-м классе была неаттестация по английскому языку. И еще я после бакалавриата пропускала год; сейчас я должна была бы уже выпуститься из университета, но еще учусь на шестом курсе. Ну, я не расстраиваюсь.
Основал нашу лабораторию Павел Певзнер – достаточно крупный ученый, у него много научных статей; он придумал прорывной алгоритм сборки генома, использующий графы Де Брюина, это было важное открытие. Я еще расскажу про Павла и про работу с ним дальше, когда перейду к центральному проекту, в котором я работаю.
У нас небольшой коллектив — в основном, парни лет 30-ти, которые защитили кандидатскую, или находятся в процессе защиты. Почти все сотрудники имеют программистский или математический бэкграунд; есть также и физики, а одна коллега закончила медицинский.
Q: ?как относитесь к популяризатору и биоинформатику же Александру Панчину?
Нормально отношусь. Я читала его книги по биоинформатике, они мне понравились; я вообще люблю научно-популярную литературу, ничего против нее не имею. Мне кажется, он толково пишет.
Я чуть не забыла предупредить слушателей, чтобы не создавать ложное впечатление о лабораториях биоинформатики. У нас не самая типичная лаборатория; собственно, различные лаборатории очень сильно отличаются друг от друга и могут заниматься совершенно разными задачами. Наша специфика (или история, или уклон) — в том, что мы именно разрабатываем софт, которым потом пользуются биоинформатики и биологи. Поэтому у нас большинство людей – программисты.
Перейду к проектам, которыми я занимаюсь. Сейчас их три, и они очень разные. Я занимаюсь ими вместе с разными людьми, и у всех у них разная специфика и предметная область. Поэтому, в целом, из них можно получить общее представление о том, чем у нас в лаборатории занимаются – хотя и не полное. Я начну со SPAdes – это интересная, специфическая вещь.
Это крупный проект нашей лаборатории. Он написан на плюсах, там достаточно много сложного кода с большим уровнем абстракции, темплейтов и прочего. Ему уже около 10 лет, и этим продуктом активно пользуются – он действительно востребован. Он представляет из себя геномный сборщик; я расскажу, что это такое.
Давайте считать, что геном – это очень длинная строка, составленная из 4 букв. Мы хотим получить её целиком, но изначально она у нас есть в виде мелких подстрок. Их очень много, в них встречаются ошибки. Сборкой единой строки и занимается геномный сборщик. Обычно Павел Певзнер во время рассказа про SPAdes использует метафору про газеты; я ее слышала уже слишком много раз, но вот: пусть у нас будет куча копий какого-нибудь одного выпуска газеты. Эту кучу вдруг разорвало на огромное количество маленьких обрывков, и теперь нам надо восстановить единственную и неповторимую изначальную копию, чтобы узнать, что там было написано.
Для меня этот проект – про разработку; то есть, мне биологическую легенду даже знать необязательно. Это большой проект, и я не разрабатываю основные алгоритмы SPAdes. SPAdes уже написан, и у него есть куча подпроектов, ответвлений: metaSPAdes собирает метагеномы, plasmidSPAdes собирает плазмиды, coronaSPAdes (по-моему, неофициальное название) собирает, как ни странно, ретровирусы (могу пояснить, что такое ретровирусы). Есть сотрудники, которые в этих алгоритмах разбираются, работают с ними, понимают, в чем их специфика, знают, как их собирать, разрабатывают их. Моя задача в проекте – непосредственная оптимизация: поскольку SPAdes очень популярен, им много кто пользуется, и ему приходится работать с очень большими данными, его надо очень круто оптимизировать. Истории типа «а давайте хранить в этой структуре не int64, а в случае, если в графе мало ребер и их количество помещается в int32, хранить int32». Алгоритмы тут тоже есть, но они связаны не с биологией, а с тем, как лучше все оптимизировать, как сделать такой код, чтобы программа занимала меньше памяти, работала быстрее, была лучше распараллелена. В мои задачи в этом проекте еще входит тестирование, поддержка кода; хотя именно сейчас я не очень много времени уделяю этому проекту. Если, например, пользователь пишет, что в каком-то случае что-то не запускается, то надо сидеть и разбираться, что пошло не так и как этот баг исправить. Разработка разработкой. Один из моих руководителей (у меня четыре разных руководителя) занимается этим проектом гораздо более плотно, каждую неделю делает много патчей.
На самом деле, разработка в этом проекте подразумевает некоторые тонкости. У меня есть много друзей-программистов, и, когда я с ними общаюсь, я часто слышу фразы типа «ой, программа столько работает – 30 секунд, ее невозможно дебажить, надоело». Когда я начала работать над этим проектом, оказалось, что по меркам биоинформатиков быстрая обработка данных (для «маленьких» наборов тестовых данных – например, мне рекомендовали использовать «маленький» геном кишечной палочки) – это 10 минут. Особенно сложно, когда тестируешь на кластере, потому что к этим 10 минутам еще и добавляется очередь – непонятно, когда твой код запустится. Конечно, есть OpenMPI для локальной эмуляции кластера, но иногда на локальном кластере может работать, а на реальном – падать, и тогда надо разбираться, почему. Я уточняла у моих коллег, как они с этим живут; мне рассказывали мудрую мысль: думать, прежде чем запускать (много думать, много читать логику, понимать, что пойдет не так, исправлять, потом запускать). Здесь еще спасают логи, потому что у SPAdes очень хорошее логирование всего; это очень важно: когда мы сами пишем программу, нам нужно смотреть на логи в случае падения и восстанавливать, в чем была ошибка, без перезапуска. А еще мы должны уметь понимать по присланным логам, что именно упало у пользователя – при том, что пользователь мог обрабатывать очень большие данные, и программа могла упасть после недели работы (такое бывает при работе с метагеномами).
Кстати, поясню, что такое метагеном. Я рассказывала, что мы строим геном из кучи мелких подстрок; представьте теперь, что в той метафоре с газетами лежат газеты не одного, а разных выпусков. И требуется восстановить каждую газету. То есть, в метагеномике ставятся задачи восстановления геномов всех организмов, фрагменты геномов которых присутствуют; например, когда надо определить, какие бактерии есть в слюне. Поэтому metaSPAdes работает гораздо дольше обычного.
Еще одна важная вещь – мультизадачность. Мои коллеги реально умеют переключать контекст; я не понимаю, как они это делают. Они могут дописать код, запустить программу на 10 минут, эти 10 минут заниматься совершенно другим делом (переводить диссертацию, читать статьи, отвечать на письма), потом посмотреть, как отработало, поправить, запустить снова – и так далее.
Q: а какие языки основные используются?
C++ и Python. SPAdes – это проект на С++ с оболочкой на Python. Я в том числе занималась тем, что переписывала эту оболочку – там было около десяти тысяч строк кода, и надо было разделить legacy-код, инкапсулировать отдельно составление pipeline и запуски, чтобы запускать на кластере. То есть, на Python тоже довольно много работы, хотя и проект на С++.
У меня так не получается. Если я сосредоточилась и настроилась на дебаг, но после запуска ушла читать статью – я к этому дебагу не вернусь. У меня были такие дни, когда было ощущение, что единственное, что я делала в течение дня – это ждала выполнения программы. Бывает сложно; ну, такая специфика.
Перейду ко второму проекту, который называется Nerpa. Сейчас буду биологические легенды; здесь это очень важно, и в биологии нужно разбираться.
Давайте вспомним основы — как появляются белки. У нас есть ДНК, и из нее мы получаем РНК; можно представить, что ДНК – это большая библиотека, а РНК – это небольшая статья, которую мы скопировали и дальше будем работать. Как будто мы пришли в библиотеку и запросили эту статью, но библиотека сами статьи не выдает – они слишком ценные, а выдает только копии. И дальше мы с этими копиями работаем; можем выкидывать, можем что угодно делать. После получения РНК получается непосредственно белок; у нас есть рибосома, которая по этой РНК ползет и считывает (синтезирует) белок. Она считывает по три буквы, которые есть в РНК: алфавит примерно такой же, как в ДНК, копирование почти 1 в 1. По этим трем буквам определяется, какая должна быть аминокислота; а аминокислоты – это уже алфавит, из которого состоит белок. Появляется цепочка аминокислот, и она сворачивается в белок.
Но это не единственный механизм синтеза; нерибосомные пептиды получаются по-другому, и как раз ими я занимаюсь. Прикол в том, что про другие способы синтеза белков никто не рассказывает. Я уже на спор рассказываю, чем я занимаюсь: иногда бывает, что новый биолог, закончивший биофак МГУ или СПБГУ, даже по направлению биоинформатики или молекулярной биологии, не знаком с нерибосомными пептидами.
Давайте снова представим геном. Но в этом случае в нем закодирован не сам нужный белок, а комплекс белков, который будет его производить. Производимый белок – это и есть нерибосомный пептид, и в этом есть некоторые нюансы.
Кстати, часто в биоинформатике возникает такая проблема: вместо общеизвестных названий алгоритмов и биологических терминов придумываются свои. Биологи часто жалуются.
Белковый комплекс, который непосредственно закодирован в геноме, называется нерибосомная синтетаза. Сложность в том, что мы хотим узнать непосредственно из генома, какой белок она будет производить – хотя вместо него зашифрован потенциально огромный, непонятный, сложный белковый комплекс. Но это очень важно – для создания антибиотиков, иммунодепрессантов, других медицинских веществ. Понимание механизмов создания белков помогает непосредственно производить вещества (именно с точки зрения фармацевтики). Кроме того, появляются возможности для биоинженерии: понимание механизмов может позволить менять участки генома таким образом, чтобы получать вариацию нерибосомного пептида, которая будет более эффективна как антибиотик, например. Открытие новых антибиотиков очень важно и полезно, потому что периодически появляются устойчивые бактерии – из-за того, что очень часто антибиотики прописываются не по делу или принимаются просто так, по ощущениям, без соблюдения курса лечения. В таких случаях антибиотики убивают часть бактерий, но, так как курс лечения не продолжается сколько надо, самые приспособляемые бактерии остаются, и следующие их поколения становятся устойчивыми к примененному препарату. Мораль – не пейте антибиотики не по делу, а, если пьете – допивайте, как сказал врач. Кстати, пенициллин – это, по большей части, нерибосомный пептид.
Восстановить чисто по геному вещество, которое будет получаться – это сложно еще и потому, что могут возникать некие модификации уже после синтеза вещества белковым комплексом (добавление сахаров, спонтанные реакции и т.д.), но моя задача проще. У меня есть база данных секвенированных геномов, и есть база производимых веществ, и моя задача – сказать, какие бактерии какие вещества производят, поскольку может быть неизвестно, кто именно производит открытый нерибосомный пептид. И еще я должна сопоставлять конкретные участки генома с аминокислотами – иногда известно, что бактерия производит, но непонятно, где именно в геноме это зашифровано.
Когда я начинала работу в этом проекте, я думала, что он несложный и маленький. Но, чем больше я им занимаюсь, тем больше открывается разных тонкостей – с нерибосомными пептидами постоянно что-то не так. Я читаю литературу, там написано – синтез производится так-то и так-то. А потом я смотрю в базу – и получается, что именно такой синтез получается только в трети случаев. Нерибосомный пептид постоянно имеет какие-то исключения. Какие-то куски генома переставляются, и меняется порядок аминокислот. Или домен C_Starte; у белкового комплекса, который синтезирует нерибосомный пептид, доменная структура, и время от времени первым доменом является C_Starte. И в литературе пишут, что он может быть только в начале. Но, когда я посмотрела на данные, я нашла такой нерибосомный пептид, где C_Starte встречается в начале и в середине; когда идет C_Starte, соединение не такое, как в остальных местах, а немного другое. Я проверяла, что, если взять нерибосомные пептиды и попробовать найти решение для «общих случаев» — оставить только те, которые под все описанные правила синтеза подходят — то данных останется мало. Почти все нерибосомные пептиды откинутся в сторону. Еще бывает, что какие-то аминокислоты внезапно «склеиваются», например, или происходят спонтанные модификации. Поэтому над этими данными приходится много страдать.
А еще этот проект – кладезь моего разностороннего развития. Тут важна биологическая легенда – то есть, знать биологию действительно надо; надо понимать на некотором уровне органическую химию, чтобы понимать, как образуются связи. У меня была история про придумывание алгоритмов, потом – история о том, что пора изучать теорвер и матстатистику; потом неожиданно понадобилась веб-разработка, потому что этим инструментом пользуются биологи – а они не хотят работать через командную строку, им нужен нормальный интерфейс (и мне тоже). А я программирование всего 10 лет изучаю! Потом я разбиралась, как настроить NGINX, чтобы сервис заработал.
Очень много анализа данных, разбора в том, как эти данные устроены и откуда их брать (находить их – очень большая проблема). В какой-то момент это меня демотивировало – приходилось развиваться в многих различных областях одновременно; было такое ощущение – «любить всех – не любить никого». Есть же такие люди, которые занимаются чем-то одним и разбираются в этом очень хорошо: если это веб-разработка, то этот человек любой сайт с закрытыми глазами сверстает, например. А у меня пошла такая история, что я вроде как изучаю сразу все. Сейчас я уже стала относиться к этому по-другому, и мне стало легче жить с этим – то есть, да, я изучаю много всего – и не так глубоко, как хотелось бы; ну, может быть, лет через 40 я буду знать все эти области так глубоко, как мне хочется.
Сейчас еще существует история про Machine Learning (ML). У нас есть ребята из etBrains Research, которые в этом проекте занимаются ML – почему-то там постоянно появляются люди, которые хотят заниматься этим проектом. Они пытаются применять Hidden Markov Model, чтобы решать эту задачу. Кстати, когда я рассказывала нашим коллегам из JetBrains про задачу – просто про то, как она устроена, какие важные места надо учитывать – моя собеседница сказала: наверно, ты в лаборатории биолог? Видимо, я теперь могу производить впечатление настоящего биолога.
Перейду на третий проект – центромеры. Я начала заниматься им совсем недавно, в сентябре – помню, как обрадовалась, когда мне предложили заниматься им.
Но сначала хочу рассказать байку про еще одну специфику биоинформатики. Я сейчас на шестом курсе учусь, с сентября начались курсы, в том числе программирования на GPU. Я читаю домашнее задание – и думаю: в чем здесь смысл? Тут же задача уже сформулирована и сказано, что надо сделать. Есть еще такая история: хочется чего-то сделать, есть примерное понимание того, что нужно получить в итоге – но только на уровне «сделать все хорошо», а что именно хочется получить – непонятно.
Итак, центромеры; здесь должно быть проще, чем с нерибосомными пептидами. Представьте себе хромосому – ту самую картинку, похожую на «Х». На самом деле, она принимает такую форму только в процессе деления клетки. В этот момент генетическая информация дважды продублирована, и эта буква – на самом деле две сестринские хроматиды. То место, где они сцепляются – это как раз и есть центромера, которую интересно изучать. Потом эти хроматиды растаскиваются за центромеру на разные части клетки.
Центромера – этот тот регион хромосомы, который до недавнего времени (буквально до этого года) не был собран. Он достаточно сложен. Сейчас появились новые способы секвенирования генома – более длинные риды (те самые кусочки газет из метафоры), более качественные, возможность гораздо лучше собирать геном. Есть T2T Consortium – это сообщество ученых, которые хотят собрать геном «от теломеры до теломеры». Теломера – это такой участок хромосомы, который показывает возраст клетки; каждый раз, когда клетка делится, от теломеры отрезается часть, и поэтому количество возможных делений клетки ограничено. Сейчас уже создана первая «чистая» версия генома человека, в которой собраны все участки. Возможно, если вы интересуетесь научно-популярной биоинформатикой, вы слышали, что в 90-х годах был Проект генома человека, и в начале 00-х он как бы завершился; об этом писали большие статьи в журналах – якобы, мы теперь все знаем о жизни. На самом деле, та версия совсем не была полной. Там было множество участков типа «здесь слишком сложно, пока мы его оставим, когда-нибудь потом дособираем». Сейчас именно это и было сделано; центромера – это как раз очень сложный для сборки участок. С точки зрения строки это – история про тандемные повторы. То есть, у нас есть коротенькая строчка, которая повторяется очень много раз на этом участке. Причем повторяется не полностью: различные повторения могут отличаться на пару нуклеотидов. Но мы хотим все это восстановить. Обычно используется X-хромосома: её собирать и изучать удобнее всего, потому что она у мальчиков только одна; если хромосом две – все усложняется.
Итак, у нас есть строка, есть похожая строка, которая слегка отличается, и есть еще много подобных строк. И нужно восстановить этот огромный тандемный повтор в центромере; при этом, каждая строка включает примерно пару тысяч «букв», и их всего около полутора тысяч. Это очень грубое представление, конечно. При этом есть маленькие повторчики – по 171 «букве», которые различаются между собой примерно в 20% случаев; они складываются в большие строки-повторы по 12 штук.
Центромера уже собрана, этим занимались мои коллеги. Моя история заключается в том, что я должна понять эволюцию центромеры – хотя сама задача еще не сформулирована. То есть, мы знаем, что мы хотим разобраться, каким образом эти строки скопировались в таком порядке, почему где-то одни мутации, а где-то – другие, как эта эволюция происходит; это пока совсем не понятно, как и то, как мы собираемся сделать восстановление. Пока мы занимаемся рисованием данных в разные стороны и пытаемся что-то понять.
Q: Циклы C++
На самом деле, у меня есть похожая аналогия в биоинформатике. То есть, когда ДНК копируется в РНК – это транскрипция, а РНК в белок – это трансляция, и я никак не могла перестать их путать. Но потом я запомнила так: ДНК в РНК – это как скрипт на Python, ничего не переводить, сразу исполнить: транскрипция. А трансляция – это нечто более сложное, будто бы трансляция байткода.
Чем мне этото проект очень нравится – так это тем, что это первый проект, в которым я работаю с крупными учеными. Им активно занимается Павел Певзнер – очень крутой алгоритмист, и у него есть такой очень крутой скилл: переводить непонятную биологическую задачу в строгую математическую. Он умеет построить и сформулировать модель для этого, что очень сложно и очень важно. Формулировка задачи – это значительная часть работы, сформулированная задача уже наполовину решена. Еще я работаю с Иваном Александровым – это человек, который очень много занимался центромерами. С ним комфортно общаться, я периодически приношу ему новые данные и мы их совместно разбираем. Он активно интересуется тем, что я делаю, дает рекомендации. На последней встрече был забавный эпизод: я рассказывала ему про мономеры, которые я делаю, а Иван рассказывал мне про классификацию данных повторов в центромере. Я спросила, где можно про это прочитать, и он предложил мне большую обзорную статью по классификации данных в центромере, которую он сам написал в 2001 году. Он писал большие обзорные статьи, когда я еще читать не умела! И, когда я читала эту статью, я нашла ссылки на другие статьи Ивана по центромерам – одну из них он написал в 1986 году! То, что у меня есть возможность работать с этими людьми и учиться у них – это очень ценно для меня, мне действительно интересно быть здесь и получать здесь опыт.
Q: ?Как к вам в лабораторию попали люди с «несоответствующим» образованием?
Я не очень знаю, как попадать к нам. Условно, простой способ выглядит так: если вы студент, например, института биоинформатики или каких-нибудь программистских университетов – СПБГУ, питерской «вышки» и так далее – то у нас есть проекты. Можно, как сделала я на втором курсе, приходить, брать проекты, работать с нами. Какие-то люди нам нравятся, приживаются у нас, после этого мы берем их к себе работать. Еще у нас есть летняя стажировка; каждый год она набирается по-разному, в мой год было 10 человек. В лабораторию набирают стажеров, смотрят, кто нравится, кто не нравится, кто как приживается. При этом я начинала свою карьеру в биоинформатике, не зная о биологии почти ничего, и прижилась.
Насчет «несоответствия» — я не очень поняла. Оно как раз соответствует.
Реклама! Приходите к нам работать в СПБГУ. Есть еще питерская «вышка»; я закончила АУ, это очень классное место, я очень довольна, что туда поступила. Сейчас наша образовательная программа переехала в питерскую «вышку», все люди, которые делают нашу программу, переехали туда. Там очень сильное программистское образование, если вы думаете, куда поступать – рекомендую ее.
В статье на Хабре я дам ссылку на свой телеграм-канал.
Еще хотела рассказать про английский. Он у меня вообще не прогрессировал с 1 класса, в 10 классе у меня все еще было elementary. Но потом я нашла хорошую преподавательницу, и английский начал очень быстро прогрессировать. Я считаю, что это преподавательница, которая супер круто занимается с технарями, с людьми с техническим складом, и очень сильно прогрессирует английский. И поэтому я хочу ее посоветовать, к ней можно обращаться.
Q: как переключаетесь между проектами?
Ну, один день – один проект, другой день – другой проект.
Cсылки:
Сайт нашей лабы.
Группа лабы в ВК.
Мой блог в телеграмме.
Образовательная бакалаврская программа в Питерской Вышке.
Моя статья про SE магу в Питерской Вышке.
Хорошая преподавательница английского по скайпу: skype: evgeniya.prischepova
Что было ранее
- Илона Папава, Senior Software Engineer в Facebook — как попасть на стажировку, получить оффер и все о работе в компании
- Борис Янгель, ML-инженер Яндекса — как не пополнить ряды стремных специалистов, если ты Data Scientist
- Александр Калошин, СEO LastBackend — как запустить стартап, выйти на рынок Китая и получить 15 млн инвестиций.
- Наталья Теплухина, Vue.js core team member, GoogleDevExpret — как пройти собеседование в GitLab, попасть в команду разработчиков Vue и стать Staff-engineer.
- Ашот Оганесян, основатель и технический директор компании DeviceLock — кто ворует и зарабатывает на ваших персональных данных.
- Сания Галимова, маркетолог RUVDS — как жить и работать с психиатрическим диагнозом. Часть 1. Часть 2.
- Илья Кашлаков, руководитель фронтенд-отдела Яндекс.Денег — как стать тимлидом фронтендеров и как жить после этого.
- Влада Рау, Senior Digital Analyst в McKinsey Digital Labs — как попасть на стажировку в Google, уйти в консалтинг и переехать в Лондон.
- Ричард «Левелорд» Грей, создатель игр Duke Nukem 3D, SiN, Blood — про личную жизнь, любимые игры и о Москве.
- Вячеслав Дреер, гейм-дизайнер и продюсер игр с 12-летним стажем — про игры, их жизненный цикл и монетизацию
- Андрей, технический директор GameAcademy — как видеоигры помогают прокачивать реальные навыки и найти работу мечты.
- Александр Высоцкий, ведущий PHP-разработчик Badoo — как создаются Highload проекты на PHP в Badoo.
- Андрей Евсюков, заместитель CTO в Delivery Club — про найм 50 синьоров за 43 дня и о том, как оптимизировать фреймворк найма
- Джон Ромеро, создатель игр Doom, Quake и Wolfenstein 3D — байки о том, как создавался DOOM
- Паша Жовнер, создатель тамагочи для хакеров Flipper Zero — о своем проекте и другой деятельности
- Татьяна Ландо, лингвист-аналитик в Google — как научить Google-ассистента человеческому поведению
- Путь от джуна до исполнительного директора в Сбербанке. Интервью с Алексеем Левановым
- Как Data Science продает вам рекламу? Интервью с инженером Unity
- Как я переехал в Лондон c Revolut
- Завтрак с легендарным геймдизайнером Американом МакГи: о новой Алисе, России и депрессии
- Как организовать IT-конференцию и не сойти с ума
- Чем биоинформатика отличается от вычислительной биологии — краткое введение
- Профессия системный аналитик: развитие сообществ, популяризация профессии и подготовка
wormball
> Представьте, что иногда буквы переставляются, или как-то взлетают – поэтому читать тяжело
А как с этим программировать-то?
olga24912
Мой диалог с другом.
Я: ну вот, хейт на Хабре пошёл. Спрашивают "а как дислексия вообще с программированием связана?". Да не связана она никак. Я просто задавала какой-то контекст про себя.
Друг: да, на Хабре обычно любят технические статьи, а у тебя статья не супер техническая. Но тут она и не задумывалась быть технической, вообще не твоя вина.
Я: там ещё в комментарии мем совсем обидный. Написан "Hello world" на плюсах и медведь, который говорит "к черту программирование". Из серии я уже "Hello world" на плюсах прочитать не могу!?
Друг: обидный комментарий, но думаю, у него быстро появятся дизлайки, не обращай внимание.
Друг: кстати, кажется тут просто вопрос скорее из любопытства. Спрашивают, как с дислексией программировать.
Я: Разве?
Друг: а в меме, кстати, буквы в словах переставлены.
Я: Да ладно!? Ты серьезно!? Правда что ли переставлены?
Так вот, попробую ответить на вопрос. Если честно у меня никогда не возникало проблем ни с чтением, ни с написанием кода. В целом, мне кажется, что механизмы как написания, так и чтения кода сильно отличаются от процесса чтения и написания текста на естественном языке.
Обычно, когда читаешь код в любом случае нужна какая-та концентрация внимания и в основном идет история что бы понять логику, алгоритм происходящего и как связаны различные абстракции между собой. То есть в коде именно как такого "текста" достаточно мало.
Более того, ключевых слов в коде достаточно ограниченное количество и понятно исходя из контекста, какое слово где может быть. Потом мне вообще не нужно именно "читать" слово, когда дело касается кода.
Про написание кода. Почему я вообще когда-то в школе полюбила программирование.Это стал для меня самым понятным и простым способом выражать мысли. Мне очень нравилось, что решив задачку я могу выразить решение в виде понятного кода с чёткими законами. Во многом потому что как превращать решение в код нас учили, а как придуманное решение выражать в слова никто не учит. Из серии это как-то все сами умеют и это само собой разумеющиеся вещь. А у меня то решение задачи в голове со словами вообще никак не связано. Какое-то долгое время я оформляла решения задач по математике в виде псевдокода, просто потому что у меня не получалось по-другому записать то, что у меня в голове.
Про сам набор кода, ну я же в целом знаю в каком порядке буквы должны идти друг за другом, у меня есть мышачная память, на какие-то частые слова, в среде разработки есть автодополнение, неправильно написанные слова подсвечиваются. В общем, вообще не вижу никаких проблем касательно набора кода.
Ну и ещё комментарий, дислексиков где-то около 10% населения. Скорее всего среди ваших знакомых есть дислексики, просто вы об этом не догадываетесь. Это всё-таки особенность, которая не кидается в глаза, особенно с учётом того, что очень многие дислексики стараются это скрывать.
wormball
Вот честное слово, ничего обидного я не подразумевал. Напротив, исключительно уважение и зависть. Лично я научился читать в 3 года и всегда считался вундеркиндом. Пока не поступил на биофак МГУ, где этих вундеркиндов хоть жопой ешь. А теперь мне 37 годиков, и я не умею решительно ничего, кроме как смотреть ютуб и писать петросянские каменты на хабр (по большим праздникам). Вот ту же биоинформатику я хотел изучить ещё тогда, когда вы пешком под стол ходили, однако до сих пор этого не сделал. И с программированием то же самое — что-либо сложнее хелло ворлда я написать не могу, хотя я пытался.
potan
А Вы не пробовали программировать на APL-подобных языках (A+, K, J)? Те, кто их освоил, могут программировать гораздо быстрее нормального человека. Вдруг дислексия здесь дает преимущества.
inetstar
Спасибо за статью. Мне вот интересно, зарплаты адекватные современному миру в таких биоинформационных лабораториях или типа 25т/месяц?
olga24912
У нас стажеры получают больше 25т/месяц :) Ну я считаю, что моя текущая зарплата примерно сравнима с middle разработчиком в Яндексе в Питере, что соотвествует моей текущей квалификации. Нашла какую-то статью на хабре где рынок зарплат изучался и у меня зарпалата больше медианы если смотреть на middle c++ developer.
potan
У плюсовиков зарплаты занижены, так как не так уж много проектов его используют, а изучают его много народу.