Python: Зачем социологу, лингвисту и биоинженеру знать этот язык программирования
Почему Python, а не другие языки программирования?
Python уже используется во многих отраслях – лингвистике, социологии, биологии, статистике, астрономии, маркетинге и так далее. Он применяется везде, где нужно анализировать большие данные, моделировать и проверять гипотезы. Например, астрономам уже не нужно смотреть в телескоп – они используют накопленные данные за весь период наблюдений и с помощью «Питона» обрабатывают полученные с телескопов изображения, строят астрономические расчёты и предсказывают движение небесных тел.
К тому же именно Python позволяет «говорить» на одном языке с очень и очень большим количеством специалистов. Понимать будут не только вас – понимать будете и вы. Это важно: сейчас при публикации рецензируемых материалов-исследований в научных журналах требуется предоставить данные, на основе которых сделаны выводы, зачастую вместе с кодом, который позволил бы работать с этими данными. Получается, если вы не владеете «Питоном», то не сможете оценить всю глубину опубликованного в журнале Nature исследования, а значит, ограничите себя в профессиональном развитии.
Практиковаться в несложных скриптах на Python можно почти сразу: логичность их построения делает порог входа в язык довольно низким, а сам язык – демократичным. Глубоких математических или IT-знаний он не требует, так что освоить его под силу любому человеку.
Наконец, Python удобен – в его экосистеме создано множество отраслевых библиотек. В данном случае речь не про огромные тома литературы по теории, а о сборниках полезного для конкретного направления функционала. Фактически из такой библиотеки можно брать написанный кем-то другим и проверенный фрагмент кода, а затем использовать для решения своих задач. В Python сейчас большое количество «лего-кубиков», из которых легко составлять прикладные вещи для решения своих задач. Не обязательно знать, как реализована сортировка, чтобы применить её в своей работе.
Как Python используется в биотехнологиях?
Представьте, что перед вами стоит задача создать белок, который, например, ляжет в основу вакцины. Можно пойти традиционным путем и долго колдовать в лаборатории над пробирками. А можно взять на вооружение возможности программирования и избежать необходимости надевать латексные перчатки и долго проводить эксперименты в лаборатории.
Проверить свою гипотезу можно удаленно в роботизированных лабораториях, куда отправляются команды, созданные с помощью скриптов на Python, что позволяет работать над проектом от идеи белка до его экспрессии в бактериальной клетке. И это не виртуальные, а реально существующие в физическом мире лаборатории, только они могут находиться за тысячи километров от ученого и выполнять эксперименты без необходимости посещения локации.
Есть и достаточно большое количество профильных библиотек с готовым набором функций специально для биологов и биотехнологов. Одна из самых распространенных – Biopython, в которую входят модули для работы с последовательностями ДНК, РНК. В эту библиотеку включены синтаксические анализаторы для чтения всех основных генетических баз данных и многое другое.
Другой пример – открытая библиотека Molecular Modeling Toolkit (MMTK) для моделирования биомолекул. На официальном сайте python.org можно почитать, как эту библиотеку использует сотрудник Национального центра научных исследований Франции (Centre National de la Recherche Scientifique). Данную библиотеку ученый выбрал, потому что его исследовательская работа была сосредоточена на разработке новых методов моделирования и возможность модификации была особенно важным критерием – библиотека предоставила для этого удобные инструменты. Таким образом исследователь сокращает процесс разработки за счет использования накопленного отраслевого опыта, не тратя время на изобретение велосипеда.
Сейчас эксперты сходятся во мнении: разработки в медицине, биологии, фармацевтике все больше и больше будут уходить из реального мира в виртуальный. Просто потому, что это выгодно с точки зрения финансовых затрат и времени, которое уходит на опыты. Гораздо проще и быстрее смоделировать тысячу экспериментов с изменением вводных на компьютере или в облаке, чем провести их в лаборатории. Конечно, отказываться от такого способа пока рано, но весомую часть подготовительной работы перенести в цифровой мир уже можно.
Как Python используется в лингвистике?
Среди важных задач лингвистов – исследование больших текстовых массивов, сравнение и прочие трудоемкие и затратные по времени процессы. Python помогает их ускорить. Например, можно использовать NLTK (Natural Language Toolkit), комплекс лингвистически ориентированных модулей на языке Python, который содержит набор исполняемых скриптов, направленных на обработку текстовых файлов. Для прикладной лингвистики это бесценных инструментарий.
Не забудем и о том, что лингвисты сейчас активно привлекаются для обработки естественного языка Natural language processing (NLP) – это весьма распространенный тренд, ведь все виртуальные помощники должны работать именно с естественным языком. На Python создана целая коллекция инструментов и библиотек для решения задач, связанных с NLP.
Как Python используется в социологии?
Что такое социология? Это наука об обществе, составляющих его системах и закономерностях его функционирования и развития. А раз речь зашла о закономерностях, то в центре оказывается сбор и анализ данных. И чем этих данных больше, тем сложнее их анализировать в ручном режиме.
Фактически социологи сейчас должны обладать навыками data scientist – применять научные методы при работе с данными. И программирование здесь придется как нельзя кстати.
Для наглядности возьмем пример из сферы социологии еды (да-да, социологам интересно в том числе то, что мы предпочитаем есть на обед). Представьте таблицу в несколько тысяч строк и огромное число колонок, в которых простые и сложные продукты питания разложены на компоненты – не только белки, жиры и углеводы, но и каждый микроэлемент в отдельности. Это, кстати, реально существующая таблица, составленная Министерством сельского хозяйства США и выложенная в открытый доступ. К примеру, мы хотим сравнить продукты по уровню содержания железа. Можно с помощью Excel сравнивать показатели по всем десяткам тысяч продуктов. А можно написать скрипт, который позволит не только отсортировать продукты, но и проанализировать данные, найти закономерности и получить интересные выводы.
Есть и библиотеки, которые будут полезны для социологов. Среди них, к примеру, Matplotlib, где можно найти инструменты для визуализации данных в двухмерной графике, или Pandas для работы с данными в числовых таблицах.
Где учиться?
Во-первых, можно взять себя в руки и освоить Python самостоятельно. Для этого, например, можно воспользоваться официальным учебником, который есть в открытом доступе. Учебник на английском языке – заодно будет возможность подтянуть и его.
Кроме того, есть множество бесплатных уроков – от ориентированных на «чайников» до тайных лайфхаков для Python-джедаев. Например, потребности базового уровня вполне можно закрыть с помощью бесплатных курсов на платформе Stepik – их, кстати, рекомендуют использовать для подготовки к олимпиадам НТИ. Бесплатный вводный курс есть и на Яндекс.Практикуме, причем по его итогам можно будет не только научиться азам программирования, но и создать первый проект. А если понравится – продолжить и полноценно освоить навыки разработки на Python. Есть и профильные ресурсы – например, http://rosalind.info ориентирован на применение Python в биоинформатике.
Для расширения базовых умений можно попробовать себя в соревновании с другими разработчиками на Python – в битвах кода. Для этого тоже есть специальные площадки (https://www.codewars.com/ или https://projecteuler.net/), которые позволят сделать шаг от уровня ученика к мастерству.
Еще лет 20 назад вряд ли кто-то согласился бы с тем, что работа в офисных программах – обязательный навык для всех без исключения: ученых, учителей, медиков, фермеров – список можно продолжать бесконечно. Сейчас же это именно так и никого не удивляет. Программирование на Python может ждать такая же судьба. Уже сегодня почти каждая отрасль может получить бонусы от того, что сотрудник знает этот язык и умеет на нем работать – не быть гуру в программировании, а владеть Python ровно настолько, чтобы повышать свою эффективность, избавляться от рутинной работы и оставлять место для творчества. Последнее же всегда приятно и полезно.