Уведомления
Авторизуйтесь или зарегистрируйтесь, чтобы оценивать материалы, создавать записи и писать комментарии.
Авторизуясь, вы соглашаетесь с правилами пользования сайтом и даете согласие на обработку персональных данных.
- 23.09.2020
- Редакция Naked Science
-
29 311
Python, взгляд разработчика: чем этот язык программирования круче остальных и почему его легче учить начинающим
«Пайтон», а не «питон» — и как это связано с особенностями языка
По-русски этот язык программирования часто называют «питон», что неверно, ведь профессию веб-разработчик на Python назвали не в честь змеи, чье русское название так звучит, а в честь некогда популярного британского шоу «Монти Пайтон».
И название дано не просто так: создатель языка Гвидо ван Россум изначально планировал его с целью получить забавный — то есть нескучный — мощный, но простой в освоении инструмент. В отличие от типичных языков того времени, Python не использует компиляцию. То есть текст программы перед запуском не транслируется в машинный код до выполнения, а транслируется построчно, что заметно экономит время в конце написания кода, когда у программиста на C++ будет идти компиляция. Но на этом отличия от стандартного языка программирования только начинаются, а не заканчиваются
Во-первых, Гвидо ван Россум с самого начала настаивал, чтобы программный код в его языке был понятен как «обычный английский». И это действительно неплохо: зная английский даже на среднем уровне, любому будет куда проще начать пользоваться Python. Для большинства языков программирования код заметно дальше от обычного английского. Во-вторых, он исходил из необходимости сделать язык для выполнения простых ежедневных задач, предназначенных для людей, у которых дефицит времени на программирование на C++ и ему подобные традиционные языки.
Исходно сам этот язык не рассматривался ван Россумом в качестве чего-то действительно крупного: он видел в нем просто частный инструмент для написания небольших программ. В 1990 году таких было немного, а операционные системы, текстовые редакторы и тому подобное писались на совсем иных языках старшего поколения.
В 1990-х и нулевых годах ситуация постепенно менялась. Обнаружилось, что для ряда мелких задач Python подходит куда лучше: главное, он больше подходил для решения целого ряда задач бурно развившегося тогда интернета — от простейшей обработки поисковых запросов (у того же Google), до все более и более сложных. Сегодня на нем же работают Dropbox, Pinterest и Reddit — а равно и Instagram, и многое другое.
Кстати, с самого начала идеология Python — опенсорсная, то есть многие ресурсы, использующие его в своей работе, постоянно выкладывают все новые образцы открытого кода, позволяющего даже начинающему программисту на этом языке увидеть, как он работает «у больших игроков».
Сегодня, через 30 лет после выпуска «несерьезного» языка, названного в честь комика, уже очевидно: столь мощный и длительный рост был бы невозможен без наличия у него весомых преимуществ перед традиционными игроками, теми же языками семейства С и многими другими.
Плюсы и минусы: что делает Python таким популярным
Но сила этого языка не только в простом и понятном коде. Он не заставляет указывать тип данных — достаточно просто объявлять переменную, а Python из контекста сам «догадается», что это: целое число, значение с плавающей запятой или что-то еще. Для новичка в программировании это заметно упрощает обучение.
Кроме того, у него огромное количество самых разных библиотек — одно из следствий большой популярности языка, ясной из графика ниже. В анализе больших данных поможет Pandas, технических расчетов — SciPy, с математическими матрицами — NumPy и так далее. В популярных ныне машинном обучении и нейросетях популярность пользуются Scikit-Learn, но список библиотек этого языка много шире перечисленного.
Наконец, ключевой плюс: в сравнении с обычными, компилирующими языками типа С++ Python буквально в разы повышает производительность труда программиста. Число символов в типичной программе на Python — 20-35 процентов от программного кода на языке С++ или Java для аналогичной программы. Это значит не просто меньший ввод с клавиатуры, но и то, что разработчик сможет потратить на написание программы во столько же раз меньше времени — а потом потратит в три-пять раз меньше времени на отладку этой программы. Именно в этом причина постоянного роста популярности языка Python, сегодня ставшего самым упоминаемым в самых разных местах.
Именно поэтому Google применяет Python в своем поисковике, на том же языке в большой степени основаны YouTube и BitTorrent. И потому же его широко применяют в NASA и научном мире.
Конечно, бесплатных завтраков не бывает. Меньшие трудозатраты, в том числе на подразделение типов данных, значит, что сам Python должен взять на себя функции, которые не пожелал заранее выполнить программист. Программе необходимо зарезервировать достаточно места для каждой переменной, чтобы она работала вне зависимости от ее типа. Использование памяти «с запасом» требует больше работы от компьютера — и при одинаковых задачах программы на Python от двух до десятка раз медленнее обычных.
Вот только в наше время это не критично: ведь этот язык часто применяют для узких задач (вовсе не для написания операционных систем), а современные процессоры очень мощны. Конечный пользователь получит выдачу от Google не за 0,01, а за 0,1 секунды — и на практике даже не заметит разницы, поскольку для него это слишком малый отрезок времени.
Более того: сегодня в мире нет дефицита вычислительных мощностей. Массовое распространение производительных многоядерных процессоров — как центральных, так и графических — означает, что в подавляющем большинстве случаев скорость выполнения прикладной программы не играет заметной роли.
А вот проблема с числом подготовленных программистов вполне реальна — и здесь «минус» Python оказывается его же плюсом: более продолжительная работа программы позволяет писать ее намного быстрее. Значит, для ряда заказчиков программу успеет написать добросовестный программист, а не стандартный производитель «индусского кода». Увы, ведь именно на последних зачастую лежит вина за подавляющее большинство «глюков», с которыми сталкиваются конкретные пользователи.
Почему в случае этого языка стоит учиться на фулстек-разработчика
Традиционно разработку делят на фронтенд и бэкенд. Несколько упрощая, фронтенд отвечает за интерфейс, с которым работает конечный пользователь, а бэкенд — то, что внутри у решения, собственно программный «движок» продукта. Отсюда — бэкенд- и фронтенд-разработчики.
Но конкретно для Python наиболее разумным будет — и в ряде посвященных этой теме курсов, как, например, у Skill Factory по нему это особо подчеркивается — выбрать своим направлением подготовки фулстек-разработчика. Так называют тех, кто должен разбираться во всем объеме проекта, и во фронтенде, и в бэкенде. Это не значит, что такой разработчик обязан знать все и сразу: он может быть джуниором, начинающим, но видеть проект с разных сторон.
Почему это крайне желательно именно для Python? Простой и быстрый в освоении язык программирования часто используется для компактных задач, и возможности четко разделять разработчиков по фронтенду и бэкенду здесь порой нет. К тому же, окончив курсы фулстек-разработчика Python, вы сможете впоследствии свободнее выбирать, что вам действительно ближе — фронтенд или бэкенд.
Наконец, в ряде случаев трудно действительно эффективно программировать тот же интерфейс, не представляя работы «внутренностей» программы. И точно так же может быть не лучшим решением менять «начинку» того или иного сайта без учета нужд пользователей, привыкших к старом интерфейсу. Если такая смена будет проведена чистым «бэкендером», есть риск, что кажущееся ему логичным «улучшение» для конечного пользователя обернется резким падением возможностей продукта.
Любой из нас сталкивался с чем-то похожим: «обновлениями», которые хочется отменить и «вернуть все как было», но уже поздно. Как мы видим, фулстек-разработчик в наши дни — не прихоть, а реальная необходимость. И чем раньше мы ее осознаем, тем быстрее сможем расшить многие «узкие места».
Что конкретно нужно, чтобы начать программировать на Python
Конечно, интернет полон статей «как освоить Python за месяц самому», зачастую авторства, что характерно, индийских программистов. Но надо понимать, что на самом деле качественно подготовиться к написанию программ на нем за такое время невозможно: да и вообще сделать это самому, по самоучителям — откровенно не лучшая идея.
Возьмем типичный качественный курс по этому языку от Skill Factory: он предусматривает 15 месяцев занятий по 10 часов в неделю, 600 часов! Очевидно, повторить нечто подобное за месяц самостоятельно вряд ли получится.
И дело не только в том, что на нормальных курсах вам предложат преподавателей, персональных менторов, тренажеры, домашние задания, интерактивные вебинары и, наконец, учебные проекты постепенно нарастающего уровня сложности. Дело прежде всего в том, что рынок основательно заполнен разработчиками-джуниорами, подготовленными по «индийскому методу». И они сами про себя честно говорят, что выходят на работу доучиваться, а не работать в полную силу с самого начала.
Естественно, работодатели несколько насторожены к таким самоучкам или выпускникам «ударных двухмесячных курсов». Как говорит Игорь Мосягин, R&D-разработчик в Lamoda, сейчас «кандидатам не хватает базовых технических знаний при отборе на вакансию». И откуда бы этим знаниям взяться, если подготовка многих слишком непродолжительна?
Чем же занимаются на 15-месячных курсах? В первые четыре месяца обучение затрагивает основы: будущего разработчика учат разбираться в типах данных, использовать различные алгоритмы для решения тех или иных задач, а уже потом начинается собственно написание кода на Python. Вслед за этим идет написание первых ученых программ и использование объектно-ориентированного программирования. После полусотни написанных программ речь идет уже о более продвинутых стадиях подготовки.
Вторая часть курсов занимает девять месяцев. На ней сперва учат бэкенд-разработке на Python и Django, затем — работе с SQL и базами данных, а потом — и фронтенд-разработке на JavaScript. Как мы видим, курсы временами выходят за пределы одного только Python: современному разработчику иногда нужны знания не только его базового языка программирования. В этой части курса нужно научиться верстать адаптивные страницы, создавать интерактивные веб-интерфейсы на JavaScript, использовать библиотеку React для фронтенда, поднимать веб-сервер на Python и понять логику взаимодействия фронтенда с бэкендом.
Затем начинается финальная третья часть — всего 2,5 месяца. На ней разработчика учат уже тестировать создаваемые им — или другими — приложения с помощью специальных фреймворков, создавать и использовать виртуальные машины для исполнения кода. В конце обучения предстоит выполнить десяток мини-проектов и один финальный крупный проект, показывающий, что теперь окончивший курсы способен к полностью самостоятельной работе.
Что должно получиться в итоге? Курсы не просто учат писать код на Python и JavaScript, но и выполнять самый широкий спектр задач — от подъема веб-сервера до созданий интерактивных интерфейсов приложений, сайтов Django и многого другого. В общем, на выходе мы получаем разработчика, умеющего решать широкий спектр задач с использованием самых разных алгоритмических подходов.
Конкретные приложения для Python могут быть самыми разными. Из-за упомянутой выше простоты и высокой производительности труда этот язык сейчас можно встретить и в бэкенде веб-серверов, той самой скрытой от глаз пользователя части интернета. Равным образом часто он используется при создании нейросетей или в научных вычислениях — особенно связанных с Data Science, поскольку создавать программы, способные быстро просеивать большие массивы данных в поисках нужного, на этом языке заметно проще, чем на других.
Чтобы понять огромную роль и широту применения Python в мире вокруг нас, можно просто полистать новости. Вот в Nature Astronomy выходит статья, где астрономы призывают коллег «не пользоваться Python». Почему?
Все дело в СО2: астрономы озаботились тем, что углеродный след человека в их профессии много больше, чем у обычного гражданина. Ведь для своих вычислений они часто используют суперкомпьютеры. Между тем, чем дольше работает та или иная программа, тем больше энергии расходует для ее выполнения компьютер. От этого отдельные ученые начали рекомендовать коллегам писать на C++.
С уверенностью можно сказать, что это так и останется в основном благим пожеланием. И слово «благое» здесь стоит взять в кавычки. Ведь каждый астроном не только непрерывно вносит свой вклад в выработку СО2 нашей цивилизацией — кроме этого, он, как ни странно, еще работает. Начав писать на C++, он успеет написать в два-десять раз меньшее число программ для своих целей — то есть реже сможет выпускать научные статьи и получать гранты на новые исследования. Кажущаяся энергоэффективность C++ непременно обернется падением производительности труда. Поэтому в жизни мы увидим все большее распространение Python во все новые сферы деятельности.
Собственно, именно это уже происходит: за 2015-2020 годы востребованность фулстек-разработчиков на Python выросла (по данным курса Skill Factory) в 2,27 раза, а средняя зарплата разработчиков на этом языке достигла 120 тысяч рублей в месяц даже при опыте работы один-два года. Сегодня главной проблемой остается даже не поиск собственно рабочих мест, а получение соответствующих навыков и знаний: подготовка подобных разработчиков пока происходит медленнее, чем рост рыночного спроса на них.
Оставьте заявку на курс “Профессия веб-разработчик на Python” со скидкой 50% по промокоду SCIENCE. Скидка действует до 15 октября 2020 года.
Международная команда специалистов во главе с сотрудниками Центра математического моделирования в разработке лекарств Первого МГМУ имени И. М. Сеченова выявила наиболее перспективные направления для исследований в области лечения аутоиммунных заболеваний. Команда первой провела систематический обзор для поиска всех опубликованных в научных работах математических моделей аутоиммунных патологий и выявила недостаток моделей, которые могут значительно ускорить разработку новых лекарств.
Американские ученые проанализировали данные о поедании фекалий животными, чтобы выяснить, какие причины стоят за этим поведением и какие закономерности можно проследить. В результате они разделили всю выборку более чем из 150 видов на семь категорий по тому, что заставляет зверей питаться таким сомнительным продуктом.
Работать под началом шефа-абьюзера тяжело, но свежее исследование показало, что бывают варианты похуже. Ученые выяснили, что еще негативнее на моральный дух и производительность труда сотрудников влияет, когда во главе команды стоит самодур, у которого вспышки агрессии непредсказуемо сменяются этичным поведением.
Международная коллаборация физиков под руководством ученых из Йельского университета в США представила самые убедительные на сегодня подтверждения существования нового типа сверхпроводящих материалов. Доказательство существования нематической фазы вещества — научный прорыв, открывающий путь к созданию сверхпроводимости совершенно новым способом.
Принято считать, что естественный спутник Земли возник в результате ее столкновения с другой планетой, но к этой версии есть вопросы. Теперь ученые предложили рассмотреть сценарий возможного захвата Луны притяжением Земли из пролетавшей мимо двойной системы.
Ученые из Аргентины в серии экспериментов проследили за поведением домашних собак во время разногласий между членами семьи и выявили у четвероногих питомцев ряд характерных реакций на конфликт.
Под рыжим верхним слоем с виду обычного камня открылся целый калейдоскоп довольно неожиданных оттенков. Это особенно интересно с учетом того, где лежит камень — в марсианском кратере, который по всем признакам когда-то был озером.
Международная коллаборация физиков под руководством ученых из Йельского университета в США представила самые убедительные на сегодня подтверждения существования нового типа сверхпроводящих материалов. Доказательство существования нематической фазы вещества — научный прорыв, открывающий путь к созданию сверхпроводимости совершенно новым способом.
Органические молекулы с пи-связью образуют очень устойчивые геометрии, которые не любят нарушаться. В 1924 году немецкий химик Юлиус Бредт сформулировал соответствующий запрет, вошедший в учебники химии. Тем не менее это в некоторых случаях возможно. В новой работе американские исследователи представили несколько «антибредтовских» соединений из класса олефинов.
Вы попытались написать запрещенную фразу или вас забанили за частые нарушения.
ПонятноИз-за нарушений правил сайта на ваш аккаунт были наложены ограничения. Если это ошибка, напишите нам.
ПонятноНаши фильтры обнаружили в ваших действиях признаки накрутки. Отдохните немного и вернитесь к нам позже.
ПонятноМы скоро изучим заявку и свяжемся с Вами по указанной почте в случае положительного исхода. Спасибо за интерес к проекту.
ПонятноМы скоро прочитаем его и свяжемся с Вами по указанной почте. Спасибо за интерес к проекту.
Понятно
Комментарии