Уведомления
Авторизуйтесь или зарегистрируйтесь, чтобы оценивать материалы, создавать записи и писать комментарии.
Авторизуясь, вы соглашаетесь с правилами пользования сайтом и даете согласие на обработку персональных данных.
- 23.09.2020
- Редакция Naked Science
-
29 432
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 года.
В архивах английского поместья столетиями пылилась ничем не примечательная книга учета XVI века. Никто не подозревал, что внутри ее переплета скрываются фрагменты пергамента с историями, которые переписывали монахи семь веков назад. Тайна раскрылась, когда архивариус заметил странные символы на обложке. Так началось расследование, объединившее разных ученых. Исследователи три года пытались прочитать текст, не прикасаясь к нему. Теперь они представили результат своего труда — мир получил два ранее неизвестных эпизода о волшебнике Мерлине, короле Артуре и рыцаре Гавейне.
Могут ли истории о далеких галактиках и технологиях будущего объединить человечество? Согласно новому исследованию ученых из Китая, научная фантастика, вызывающая чувство благоговения, усиливает ощущение глобальной взаимосвязи между людьми.
Американские зоологи задались вопросом: как можно улучшить условия содержания птиц в неволе? Они добавили в лабораторные клетки подстилку из искусственной травы, чтобы птица могла питаться в знакомой среде, а не из стандартной миски. Опыты проводили на воробьях — исследователи несколько недель замеряли их реакцию на стресс. Результаты показали, что искусственная трава может улучшить состояние птиц в неволе, но переселять их потом не стоит.
Ученые из Сколтеха исследовали разнообразие молекул, которые могут образовываться из атомов кислорода и углерода. Помимо широко известных углекислого и угарного газов, моделирование обнаружило две сотни экзотических, но относительно стабильных соединений этих двух элементов, многие из которых не были описаны ранее. Этот класс веществ представляет интерес для исследований космоса, аккумуляторных технологий, биохимии и — неожиданным образом — для разработки промышленной взрывчатки и ракетного топлива. Как оказалось, некоторые из открытых веществ при распаде будут высвобождать более 75 процентов взрывной энергии тротила.
В РТУ МИРЭА разработали систему контроля и управления доступом (СКУД) на основе нейронных сетей для распознавания лиц. Эта технология предназначена для повышения безопасности на объектах с повышенными рисками, таких как критическая информационная инфраструктура в сферах энергетики, транспорта, здравоохранения, связи, финансов и промышленности, от которых зависит функционирование целых отраслей и страны.
Antares и Exlabs подписали соглашения о сотрудничестве в разработке космического зонда с ядерным двигателем. В ее рамках разработчики планируют вывести реактор в космос уже в 2020-х годах — впервые в XXI веке.
Когда пара расстается, многие люди продолжают испытывать чувства к своим бывшим. Если разрыв произошел по инициативе другой стороны и отношения длились много лет, полностью «забыть» еще недавно близкого человека может быть непросто. Существует мнение, что и после расставания привязанность к экс-партнерам в какой-то мере сохраняется. Впрочем, согласно другой точке зрения, со временем эта эмоциональная связь ослабевает и утрачивается. Разобраться, как происходит на самом деле и сколько времени может потребоваться на полный эмоциональный разрыв с бывшими возлюбленными, взялись психологи из Иллинойсского университета в Урбане-Шампейне (США).
В двойственных, или обратимых, изображениях зритель может увидеть разные объекты в зависимости от того, на каких деталях концентрируется его внимание. Среди известных примеров таких рисунков — иллюзия «кролик-утка», сочетающая двух животных, и обратимая ваза (или ваза Рубина), которая может казаться двумя силуэтами лиц, если сосредоточиться на фоне. В соцсетях и популярных СМИ часто публикуют подобные картинки, утверждая, что по тому, какое изображение человек видит в первую очередь, можно судить о его личностных чертах и особенностях мышления. Двое психологов из Великобритании недавно проверили, так ли это на самом деле.
Масштабный анализ геномов показал, что вид Homo sapiens возник в результате смешения двух древних популяций. Они разделились полтора миллиона лет назад, а затем воссоединились до расселения по миру.
Вы попытались написать запрещенную фразу или вас забанили за частые нарушения.
ПонятноИз-за нарушений правил сайта на ваш аккаунт были наложены ограничения. Если это ошибка, напишите нам.
ПонятноНаши фильтры обнаружили в ваших действиях признаки накрутки. Отдохните немного и вернитесь к нам позже.
ПонятноМы скоро изучим заявку и свяжемся с Вами по указанной почте в случае положительного исхода. Спасибо за интерес к проекту.
ПонятноМы скоро прочитаем его и свяжемся с Вами по указанной почте. Спасибо за интерес к проекту.
Понятно
Комментарии