Уведомления
Авторизуйтесь или зарегистрируйтесь, чтобы оценивать материалы, создавать записи и писать комментарии.
Авторизуясь, вы соглашаетесь с правилами пользования сайтом и даете согласие на обработку персональных данных.
- 10.11.2020
- Березин Александр
-
3 651
Мясо «Пайтона»: чем овладеет разработчик самого популярного языка программирования
Сегодня инфопространство переполнено предложениями по обучению программированию. Пандемия и подстегиваемое «торжество удаленки», с одной стороны, повысили интерес к таким рабочим местам. С другой — в эпоху нестабильности доходов носителей традиционных профессий хочется найти такую сферу (и прилагающиеся к ней навыки), которые буду востребованы при любой погоде. Один из таких курсов предлагает SkillFactory — и он касается разработчика на Python. Расскажем о нем подробнее.
Универсальный трамплин в мир программирования
В отличие от многих языков, Python поддерживает более чем одну парадигму программирования. Например, он одновременно поддерживает и объектно-ориентированный и структурный подходы, и аспектно-ориентированное и функциональное программирование.
Что конкретно имеется в виду? Структурное программирование — такая парадигма, в которой программа — это иерархическая структура блоков. Появилась она еще в конце 60-х и с тех времен остается важнейшим элементов кодинга в принципе. Согласно структурному подходу, «правильная» программа (без goto) включает три типа основных управляющих конструкций: последовательность, ветвление и цикл (плюс подпрограммы).
Объектно-ориентированный подход — с одной стороны, развитие структурного, с другой — некоторый отход от него. В нем базовый элемент программы — это объекты, каждый из которых является представителем некоего класса, а у каждого класса есть иерархия наследования: то есть один класс данных может наследовать данные и особенности другого, «родительского» класса.
А в аспектно-ориентированном программировании код разделяют по функциональному признаку на модули, что позволяет проще управлять крупными программами. Функциональный подход к программированию предполагает вычисление результатов функций от исходных данных и результатов других функций — без явного хранения состояния программы. Такой подход характерен для Lisp.
Все эти особенности обычно «разбросаны» по нескольким разным языкам: допустим, аспектно-ориентированный подход в том или ином виде можно найти в C / C++, функциональный — в Lisp и так далее. Сочетание всех этих подходов в одном языке — безусловно сильная сторона Python. Обучающийся ему человек в итоге при необходимости сможет проще осваивать другие языки программирования, где есть один из этих подходов. Напротив, тот, кто знает язык программирования, где части этих подходов нет, столкнется с бо́льшими проблемами при переходе на другой язык.
Другая его необычная сторона — динамическая типизация (тип переменной определяется в момент присваивания значения). А при изменении значения может меняться тип данных. За счет этого в различных участках программы одна и та же переменная может принимать значения разных типов — что заметно упрощает ее использование в целом ряде ситуаций. Во многих случаях программа работает с меняющимся окружением, с данными переменных типов.
Несмотря на то что Python использует сразу все эти подходы, его синтаксис все равно остается простым и понятным — в том числе потому, что для выделения блоков кода здесь применяются отступы, а не скобки. Выходит, тот, кто изучал его, получит сразу и «универсальный трамплин», оттолкнувшись от которого в будущем, сможет при желании освоить и другие языки. В то же время само освоение этого трамплина будет не слишком сложным.
Веб-разработка: какие пути открывает этот язык здесь
Одна из важнейших областей конкретного Python — это именно веб-разработка, в первую очередь — веб-программирование. И здесь перед изучающим язык человеком открываются два пути. Во-первых, он может работать с бэкендом веб-приложений, используя сам нативный Python или же применяя популярные фреймворки, например Django. (Фреймворк — это ПО, облегчающее разработку и объединение разных компонентов большого программного проекта). Кстати, на курсах SkillFactory вы овладеете не только самим Python (и JavaScript), но и освоите упомянутый выше Django (а равно и React, и SQL).
Обычно разработку делят на фронтенд и бэкенд. Первый отвечает за интерфейс, с которым работает конечный пользователь, а второй — за «начинку», программный «движок» продукта. Python сам по себе оптимизирован под бэкенд, но это вовсе не значит, что он им и ограничивается. Как мы уже отмечали, именно это делает этот язык оптимальным для подготовки фулстек-разработчика. Такие кодеры по окончании соответствующего курса смогут разбираться во всем объеме проекта: и во фронтенде, и в бэкенде. Причем такие возможности они получат сразу после выхода на работу — даже в тот момент времени, когда их собственный опыт в разработке будет ограничиваться учебными проектами.
Именно поэтому SkillFactory предлагает желающим пройти курс «Профессия Fullstack-разработчик на Python». Его программа разработана так, чтобы за 15 месяцев на практике вы освоили больше 20 видов конкретных инструментов для будущего веб-разработчика. По итогам этого курса вы сможете как создавать работающие «лицом к лицу с пользователем» небольшие приложения, так и развивать большие и масштабируемые проекты с позиции бэкенд-разработчика (порталы, веб-сервисы, интернет-магазины).
Кстати, во время обучения на курсе вы создадите семь сквозных (на протяжении обучения) и один итоговый проект, которые затем сможете добавить в портфолио — чтобы не приходить к будущему работодателю с пустыми руками.
Машинное обучение, искусственный интеллект и Python
Еще одно важнейшее поле конкретных навыков после овладения этим языком — машинное обучение и разработка AI на Python. Среди конкретных инструментов, которые может изучать «пайтонист» (впрочем, по-русски их называют и «питонистами»), — библиотеки типа TensorFlow, созданной исследовательской группой Google Brain с использованием Python.
Сам Google активно использует эту библиотеку для программирования и обучения нейронных сетей. На сегодня это одна из основных магистральных троп в области разработки искусственного интеллекта. Другая известная библиотека на Python — Scikit-learn. Она, кроме того, использует включения Cython. Это язык программирования, являющийся «мостиком» между Python и С-подобными языками. На нем просто написать модуль С/С++ кода для Python.
Разработчик может работать в нем так же, как и в обычном Python, с сохранением все той же «человеческой» простоты синтаксиса. Но если надо, в Cython можно напрямую вызвать функции С/С++. При нужде код Cython преобразуется в С/С++ код для последующей компиляции и потом может использоваться как расширение «обычного» Python или как независимое приложение со встроенной библиотекой выполнения Cython.
Как уже знает читатель, Python более производителен: времени на написание кода на нем надо примерно в два-три раза меньше, чем для такого же объема кода на С/С++. Так зачем же в машинном обучении или строительстве нейросетей может быть нужен «гибрид» Python и С? Ответ достаточно прост: в целом ряде систем, обрабатывающих огромное количество данных, может быть важна скорость.
Приложение на Android в норме не обрабатывает гигабайты данных за раз, а вот нейросеть, обучающая машину Waymo рулить без водителя, получает иной раз по много гигабайт исходных данных в минуту. Кроме того, нужные для этого компьютеры роботизированных автомобилей тратят до 500 ватт-часов в час на свою работу. Написав отдельный (но часто употребимый) модуль на С/С++, можно ускорить его работу и снизить энергетические затраты на исполнение кода.
Изучение таких «гибридных» подходов в принципе полезно и самому «питонисту»: с ними он будет лучше готов к работе в более масштабном проекте, где часто требуется взаимодействие с теми, кто пишет на С-подобных языках.
Машинное обучение и нейросети — одно из ключевых направлений работы программистов ближайших 10-20 лет. Причина — в огромной значимости для будущего беспилотных автомобилей и иной роботизированной техники (беспилотные комбайны, летающие дроны). Во всех этих областях солидный дефицит специалистов, и разработки по ПО беспилотников на основе нейросетей активно ведутся в самых разных местах, включая Россию («Яндекс»).
Big Data и Python: неизбежные партнеры
Другая крупная область использования Python — работа с «большими данными». Бигдата — это, как правило, исходно неструктурированные по типам массивы данных огромных размеров. До последнего десятилетия извлечь из нее что-то практически значимое не удавалось: не было эффективного ПО для обработки таких массивов. Между тем зачастую только в них можно найти ответ на вопрос о конкретных предпочтениях потребителей или о том, как лучше решать инженерные задачи по созданию новой техники.
Сегодня ситуация совсем иная, и именно популярность работы с большими данными — одна из причин того, что Python в прошлом году стал самым популярным языком программирования. Ведь специально, чтобы облегчить их обработку и первичный анализ, в этом языке программирования есть несколько мощных и популярных библиотек: например, для анализа и визуализации данных, а также для прогнозирования тенденций, вытекающих из этих данных.
Изучая этот язык, вы сможете освоить библиотеку с открытым исходным кодом SciPy, куда входят модули для математических, инженерных и научных вычислений в самых разных областях. Научиться визуализировать данные поможет Matplotlib — одна из самых популярных библиотек в этой области. Другая библиотека, PANDAS, сопроводит вас в первичном анализе информации.
На протяжении курсов вы так или иначе столкнетесь с тем, что Python позволяет и готовить датасеты (исходные наборы данных) к анализу, и интерпретировать их результаты моделированием на основе машинного обучения. Для упрощения анализа данных в Python можно использовать специальные команды: чтобы, скажем, исключить повторяющиеся значения в массиве информации или выявить какие-то тренды в нем же. Другой важный конкретный навык при работе с большими данными с пользованием Python — организация «конвейеров» сборки и обработки информации (data pipelines).
Даже администраторы облачных данных могут использовать Python — например, чтобы проверять подлинность конечных пользователей с помощью специального приложения на Python.
Разумеется, это далеко не все, чему можно научиться на курсах SkillFactory: еще там можно стать датасайнтистом (специалистом в изучении больших данных), тестировщиком ПО, а также разработчиком приложений на Android. Все эти специальности в наше время также востребованы, а количество вакансий по ним существенно превышает число соискателей.
Вперед, в объятия Python’a?
Вышеперечисленное — далеко не все области применения Python. Его используют для написания игр и 3D-графики, программ для обработки аудио, видео, изображений и многого другого. Все это значит, что для человека, овладевшего навыками программирования на таком языке, проблем с востребованностью не будет. Поэтому, если хотите быть спокойными за свое будущее, стоит записаться на курс «Профессия Fullstack-разработчик на Python» в SkillFactory.
Следует отметить, что до 15 ноября 2020 года действует промокод Разработчик, скидка по которому на все курсы SkillFactory — 45%. Она применима не только курсов по Python, но и курсов тестировщика ПО, датасайнтиста и разработчика на Android.
Астрономы зарегистрировали необычную вспышку под названием «быстрый радиовсплеск» — мгновенный выброс сильнейшего радиоизлучения. Причем случился он в галактике, где они, по имеющимся представлениям, не должны происходить.
Согласно расхожему мнению, которое появилось под влиянием идей автора книги «Психокибернетика» Максвелла Мольца, новую привычку можно выработать за 21 день повторений. Реалистичность трехнедельного срока ранее уже ставили под вопрос. Теперь систематический обзор имеющихся исследований по теме подтвердил, что это миф. Сколько же времени на самом деле нужно, чтобы изменить поведение и закрепить более полезный для здоровья образ жизни?
Эмираты начали создавать солнечную электростанцию мощностью больше любой другой в мире. Чтобы решить «сильнейший вызов» нестабильности такого электроснабжения, в королевстве пойдут на необычный шаг: на станции установят крупнейшую на планете литиевую накопительную систему. Несмотря на это, равномерной поставки энергии добиться не удастся.
Сниженная концентрация внимания у молодежи побуждает педагогов к внедрению новых, более увлекательных методик, способных поддерживать интерес к обучению у поколения Z. Проведенный на Филиппинах эксперимент показал, что использование специализированных мемов может положительно влиять на успеваемость учеников и их отношение к дисциплине.
Фотография костей, уничтоженных во Второй мировой войне, помогла открыть новый род хищных динозавров
Сотрудник Палеонтологического музея в Мюнхене, копаясь в архивах, обнаружил ранее неизвестную фотографию неполного скелета динозавра, найденного в Египте в 1914 году. Через 30 лет кости уничтожила бомбардировка, но до разрушений их успели описать и отнести к виду гигантских хищных ящеров. Однако новая фотография запечатлела уникальный гребень на носу динозавра и прочие особенности, на основе которых ученые открыли новый род.
Опрос среди владельцев собак показал, какие преимущества и недостатки, связанные с наличием питомцев, представляются людям наиболее существенными.
Многие предпочитают вступать в романтические отношения с людьми примерно своего возраста, но есть и пары с существенной возрастной разницей. Международная группа ученых недавно на крупной выборке людей проследила за изменениями возраста партнеров на старте отношений в разные годы жизни.
По распространению сейсмических волн в недрах Земли геологи словно «сканируют» планету и обнаруживают все больше интересных особенностей ее внутреннего строения. Недавно очередное такое исследование заставило ученых особенно внимательно рассмотреть то, что скрывается под Тихоокеанской литосферной плитой.
Ученые из Троицкого института инновационных и термоядерных исследований, МФТИ и МЭИ совершили значительный прорыв в области защиты материалов от экстремальных тепловых нагрузок, характерных для условий управляемого термоядерного синтеза.
Вы попытались написать запрещенную фразу или вас забанили за частые нарушения.
ПонятноИз-за нарушений правил сайта на ваш аккаунт были наложены ограничения. Если это ошибка, напишите нам.
ПонятноНаши фильтры обнаружили в ваших действиях признаки накрутки. Отдохните немного и вернитесь к нам позже.
ПонятноМы скоро изучим заявку и свяжемся с Вами по указанной почте в случае положительного исхода. Спасибо за интерес к проекту.
ПонятноМы скоро прочитаем его и свяжемся с Вами по указанной почте. Спасибо за интерес к проекту.
Понятно
Комментарии