Офер за 1 день в команду BetterMe (Frontend Hiring, JavaScript/React/Redux)
×Закрыть

Что нужно знать Python-разработчику в 2021 году

Здравствуйте! Меня зовут Павел Сушко. Я Senior Python Developer в компании LeverX Group. В 2021 году Python исполнится 30 лет. Согласитесь, серьезная дата. Однако и сегодня есть много вопросов, которые волнуют разработчиков.

В каких сферах Python будет особенно востребован? Сможет ли он стать популярнее Java? Может ли Python-разработчик обойтись без soft skills и реально ли стать идеальным «питонистом»?

Собрал для вас факты и последние новости, которые должен знать каждый Python-разработчик, если хочет оставаться востребованным специалистом в 2021 году.

Актуальность за счет универсальности

«Второй лучший язык программирования» — именно так сегодня о Python говорят в IT-сообществе. И это правда: если вы изучите различные рейтинги, то увидите, что Python занимает в них уверенное второе место. Временами даже выходит на лидирующую позицию, обгоняя C и Java.

Особенным этот язык делает его универсальность. Python можно использовать практически в любой сфере. Его активно применяют в веб-программировании, поскольку он позволяет разработать и запустить веб-приложение в самые короткие сроки, что актуально для стартапов.

Более широкое распространение Python получил в Data Science и Machine Learning. Сейчас есть немало новых библиотек с интерфейсами, которые просты в применении, ускоряют разработку и позволяют Junior-специалистам не знать сложной математики при решении базовых задач.

Язык постоянно развивается и совершенствуется. Если появляется какая-то технология, будьте уверены: новая библиотека на Python не заставит себя долго ждать.

Спрос на специалистов продолжит расти

Сейчас все чаще встает вопрос о том, не превращается ли Python в новый PHP. В свое время PHP был популярен как среди разработчиков, так и среди заказчиков, поэтому не было недостатка ни в вакансиях, ни в кандидатах.

Однако не стоит забывать, что PHP изначально был больше похож на динамический язык разметки. Привычные для языков программирования атрибуты появились в нем позже. Python же с момента своего появления развивался как язык программирования. Это позволяет строить оптимистичные прогнозы о его будущем.

Согласно Bloomberg, за последний год число стартапов выросло на 24,58%, а объемы инвестиций в них достигли отметки в $1,27 млрд, что на 61% больше прошлогодних показателей. Поскольку Python — удобный инструмент для стартапов, такие цифры говорят о росте спроса на Python-специалистов в 2021 году.

Сегодня нет предпосылок к снижению популярности и востребованности Python. Даже когда приходили другие языки (например, Go, который тоже предлагал сочетание простого синтаксиса, низкого порога входа и возможность написания конкурентного работающего кода), они не смогли подвинуть Python с его лидирующих позиций.

Повышение зарплат

Если проанализировать спрос на Python-разработчиков, то становится видно, что он непрерывно растет и за последний год увеличился в два раза. Согласно отчетам Code Platoon, вакансия Python-разработчика в 2020 году занимает первое место как по количеству открытых вакансий, так и по уровню зарплат.

Из анализа рынка, который провел DOU, также видно, что, несмотря на то, что Python в Украине пока не входит в топ-3 языков программирования, интерес к нему постоянно увеличивается. Только за последний год количество Python-разработчиков здесь выросло на 13,2%.

Причина тому проста: большинство гигантов, например Google, Yahoo! и IBM, в своих разработках постоянно используют Python. Спрос на таких специалистов резко вырос и в компаниях Instagram, Reddit, Tumblr, YouTube и Pinterest. Чтобы не отставать от лидеров индустрии, все чаще обращаются к нему и другие компании.

Кроме этого, будет расти и зарплата Python-разработчиков. Для наглядности рассмотрим медианные зарплаты специалистов из Украины, Беларуси и России.

Опираясь на данные сайтов DOU, dev.by и Habr, мы можем проследить, как изменялась заработная плата Python-разработчиков с конца 2018 года по 3-й квартал 2020-го. На графике с конца 2019 года четко виден стабильный рост, который наверняка продолжится благодаря интересу к этой специальности.

Востребованный Python-разработчик — какой он

На зарплату любого специалиста влияет множество факторов, и гарантия ее увеличения — постоянное повышение квалификации. Какими же знаниями и навыками должен обладать Python-разработчик?

Синтаксис, базы данных и фреймворки

Необходимый стек знаний зависит от общего уровня специалиста и от задач, которые перед ним поставлены. Однако, помимо общих частей синтаксиса, всегда полезно разбираться в особенностях языка: как он работает с внутренними структурами данных и конкурентной моделью, его возможные пути реализации.

Если говорить о конкретных технологиях, то в веб-разработке вам будет полезно знать фреймворк Django — один из самых больших и функциональных сегодня. Если используете его уже не первый день, необходимо понимать, как работает его ORM (объектно-реляционное отображение).

Можно выбрать фреймворк Flask в связке со SQLAlchemy ORM. Его вряд ли можно назвать альтернативой Django: масштабы не те. Но Flask можно использовать как базу для конструктора, если разработчики не хотят или не могут применить Django. В таких случаях одной из частей конструктора становится именно SQLAlchemy ORM, поскольку реляционные базы данных и сегодня остаются надежным инструментом для работы с back-end, хранения и обработки данных. Их тоже будет полезно знать.

В бэкенд-разработке обычно используется реляционная база данных PostgreSQL. Одно из стандартных решений — MySQL. Стоит также обратить внимание на популярные NoSQL-инструменты, такие как MongoDB и DynamoDB.

Знание и понимание методологий разработки

Методологии разработки, или Agile-методологии, — это совокупность подходов к организации разработки. Сегодня существует множество вариантов их реализации.

Источник: Organize Agile, Consultancy.eu

На графике видно, что самая популярная форма сегодня — Scrum. Согласно статистике, ее использует более 80% компаний. Главная задача — оптимизация и повышение эффективности процессов разработки.

Однако не стоит забывать: ни один из методов не должен сковывать команду. Знание методологий определенно полезно при выстраивании рабочего процесса, но подход к работе должен подстраиваться под команду, а не наоборот.

Английский язык

Большинство представителей Python-комьюнити владеет английским. И даже если кто-то не является носителем этого языка, он все равно создает продукты, выступает с докладами и записывает подкасты на нем. Поэтому ваш английский должен быть хорош хотя бы на уровне восприятия.

Однако не стоит забывать, что любая IT-компания заинтересована в иностранных заказчиках, которые во время работы будут общаться с вами на английском языке. И здесь уже без умения говорить по-английски никак не обойтись. Вы должны уметь объяснить, что, как и зачем делаете. Это существенно сэкономит время вам, вашей команде и клиенту.

Многие IT-компании в качестве бонуса для своих сотрудников предусматривают бесплатные корпоративные курсы английского языка. Обращайте на это внимание во время поисков работы. Это отличная возможность совершенствовать свой уровень.

Soft skills

Первое, что ожидают от любого разработчика, — это умение работать в команде.

Поэтому понятие soft skills (гибкие навыки) включает в себя:

  • умение доносить свою мысль;
  • умение слышать собеседника;
  • спокойное отношение к конструктивной критике;
  • умение обсуждать и приходить к оптимальному решению.

Сегодня создать успешный программный продукт в одиночку практически невозможно, поэтому большинство проектов — это командная работа. Здесь без soft skills вам не обойтись. Они нужны каждому Python-специалисту для максимально эффективного взаимодействия с коллегами.

В целом в IT-индустрии нет предела совершенству, потому что эта сфера меняется каждый день и мотивирует постоянно учиться и оттачивать профессиональные навыки. В таких условиях сложно достичь идеала, ведь идеал — это «потолок», выше которого подняться уже нельзя. Но тот стек знаний, который я описал выше, в сочетании с soft skills точно поможет вам стать востребованным специалистом.

Что нужно знать в разрезе специализаций

Python — язык универсальный, именно поэтому он прижился во многих сферах ІТ.

Веб-разработка

К основным инструментам веб-разработки относятся Django и Flask. Также сюда стоит добавить популярные сегодня асинхронные фреймворки, начиная с базовой библиотеки Asyncio, ее реализации Aiohttp и заканчивая фреймворком FastAPI.

Если при разработке используются асинхронные фреймворки, то в качестве ORM снова выступает SQLAlchemy с асинхронными адаптерами для базы данных.

На сайте Real Python можно найти много полезной информации как о популярных фреймворках, так и о веб-разработке на Python в целом.

Также посоветую отличную книгу о Django — Two Scoops of Django 3.x: Best Practices for the Django Web Framework.

Data Science

Здесь вам пригодится базовый инструментарий — библиотеки pandas и NumPy, Jupyter Notebook. Если решили уйти в Machine Learning, обратите внимание на библиотеки Scikit-learn или более сложные PyTorch и Keras. Последняя — враппер над TensorFlow — популярной библиотекой от Google.

Более подробно о базовом инструментарии для Data Science можно узнать здесь. Есть и руководство для специалистов в области Machine Learning.

На сайте Coursera есть хороший курс от компании «Яндекс». Также можно попробовать свои силы на курсе Data Scientist with Python.

DevOps Engineering

Python также применяется в различных DevOps-приложениях. Одни из самых известных оркестраторов — Ansible и Fabric, которые стоит взять на заметку веб- и бэкенд-разработчикам, поскольку идеология DevOps подразумевает единство знаний о разработке и доставке кода.

Automation QA Engineer

Python может выступить и в качестве скриптового языка, который поможет автоматизировать проверку качества. Для этой цели в нем есть различные библиотеки, например враппер над Selenium, который тестирует и проверяет графические интерфейсы.

Для пополнения знаний о тестировании на Python можно изучить подкаст Test & Code.

Инструменты, которые важно знать всем Python-разработчикам

Существуют инструменты, которые с языком программирования либо никак не связаны, либо связаны частично. В первую очередь это система контроля версий Git.

Важно знать и интегрированные системы разработки. Одно из самых популярных коммерческих решений на рынке — PyCharm, но всегда можно найти альтернативу, например Visual Studio Code.

Не стоит забывать о важности инструментов для контроля качества кода. Это статические анализаторы кода, анализаторы типов, юнит-тестирование. Python-комьюнити предоставило много хороших вариантов для этих задач, например PyTest.

От Junior до Senior: как стать опытным специалистом

Чтобы подготовиться к интервью, можно заранее изучить список вопросов, но без опыта и знаний все равно не обойтись, а они не возникают в нашей голове по щелчку пальцев. Для всего нужно время.

Junior

Если вы новичок и пришли на собеседование, от вас будут ждать знания синтаксиса языка и понимания его особенностей; основные принципы работы с тем фреймворком, который необходим для проекта: это и настройка, и базовые структуры. И, конечно же, умение пользоваться своим собственным инструментом. Это начальные знания Gitflow или умения работы с ветками в Git.

Если вы начинаете свой путь в веб-разработке, будет плюсом знать, как работает Request-response- и RESTful-архитектура.

Помимо этого, даже если вы Junior, не надо забывать о таком понятии, как инженерная культура. Во время написания кода помните о его чистоте и о тех людях, которые тоже будут с ним работать. Вы же не хотите, чтобы они потом вспоминали вас плохими словами?

Middle

Middle-разработчик должен хорошо знать свои инструменты — фреймворк и набор его функций, дополнительные библиотеки.

Работа с документацией неизбежна на любом из уровней, но Middle подразумевает, что разработчик при решении базовых задач обращается к ней реже или четко знает, где можно найти необходимую информацию.

Уровень Middle — это также возможность решать определенные бизнес-задачи, например реализация больших фич, самостоятельно либо с минимальным вмешательством со стороны старших коллег.

Senior

Это широкий кругозор, глубокое знание инструментов, их концептуальное понимание и умение принимать глобальные стратегические решения при разработке. Кроме того, возможность быть наставником, то есть вести либо всю команду, либо отдельных разработчиков в правильном направлении.

Если же вы планируете строить карьеру Python-разработчика в США и дорасти там до уровня Senior, полезно будет заранее изучить тамошние требования к специалистам.

Где искать опыт и знания

Накапливать знания можно разными способами: самостоятельно, изучая учебники, видеогайды и подкасты; с помощью ментора, который будет направлять. Но ничто не помогает расти профессионально так, как живой опыт работы на проектах. Вы можете совместить его с занятиями с ментором, чтобы у вас было плечо, на которое можно опереться в случае тупика или ошибки.

Работа на проекте хороша еще и тем, что дает опыт выполнения бизнес-задач. За каждой из них кроется реальная потребность. Как правило, это нетривиальный случай, который подталкивает специалиста к исследовательской работе и стимулирует расширение его кругозора.

Если говорить о теоретической подготовке, то в первую очередь стоит обратиться к официальной документации Python, где содержится хорошее руководство для новичков. Также я бы порекомендовал следующие ресурсы:

Codecademy — платформа с интерактивными курсами, которая подойдет всем новичкам. Вы узнаете о том, как писать код на Python. А также сможете пройти несколько практических уроков.

Automate the Boring Stuff with Python — книга, которая будет полезна и новичку, и опытному разработчику. В каждой главе рассматриваются решения, которые можно автоматизировать с помощью Python.

A Byte of Python — электронная книга для начинающих, благодаря которой удастся разобраться в основах языка.

Essential Reads for Any Python Programmer — сборник советов для разработчиков, которые переходят на Python с других языков.

Google’s Python class — ресурс для тех, кто хочет изучить язык на профессиональном уровне. Он подойдет специалистам, которые уже имеют базовые знания о Python и хотят их расширить. Здесь найдете видеолекции, текстовые материалы и упражнения по коду.

Fluent Python — книга, в которой много интересной информации как о технической стороне реализации языка, так и о встроенных библиотеках.

Python Weekly — еженедельная рассылка с главными новостями из мира Python.

TutsPlus — руководство, которое пригодится и новичкам, и ветеранам Python. Здесь найдете множество ресурсов для изучения языка. Можно даже составить свой учебный план, чтобы точно знать, когда и к какому источнику обратиться.

Что принесет Python-разработчикам 2021 год: прогнозы и ожидания

Из года в год Python-разработчики ждут улучшения производительности языка. С этим ожиданием мы входим и в 2021 год. Даже сам создатель Python в своем Twitter написал, что хотел бы, чтобы язык работал быстрее на любой платформе.

Сюда можно добавить и желание отказаться от работы с GIL (Global interpreter lock), однако это нетривиальная задача, которая вряд ли будет решена в этом году.

В 2021-м Data Science и Machine Learning останутся в тренде и продолжат двигать процессы разработки вперед. Не станет этот год последним и для веб-разработки, потому что стартапы все еще нуждаются в быстро разработанных прототипах.

Также напомню: в 2020 году закончилась поддержка второй версии Python. К сожалению, не все проекты и даже библиотеки организовали переезд на новую версию. Исходя из этого, вряд ли стоит тратить время на изучение особенностей второй версии, но стоит держать в уме, что, возможно, вам придется перевести продукт, проект или библиотеку на третью, поэтому на всякий случай держите в закладках документацию и руководство о том, как это сделать.

В остальном же в 2021 году Python продолжит давать разработчикам большую свободу выбора в направлениях для развития.

Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті.

👍НравитсяПонравилось16
В избранноеВ избранном15
Подписаться на автора
LinkedIn

Похожие статьи




Підписуйтесь: SoundCloud | Google Podcast | YouTube


42 комментария

Подписаться на комментарииОтписаться от комментариев Комментарии могут оставлять только пользователи с подтвержденными аккаунтами.

Python давно устарел, потому что не учитывает новые проблемы вследствие резкого торможения прогресса аппаратных возможностей компьютеров.
Принципиальный рост производительности процессоров и объёмов памяти не происходит уже лет 10. Ранее известное правило «закона Мура» (в 2 раза не реже чем каждые 2 года) перестало работать. Оперативная память так и не дешевеет с 2012, колеблясь вверх-вниз в 2 раза). Как на это всё реагирует Питон? А никак — всё та же тупая интерпретация, заставляя процессор делать на 1% нужной работы 99% бессмысленной, потери памяти на всякие дескрипторы, и прочая и прочая.

Для сравнения, даже для более кошмарного Javascript, для конкурирующего Ruby — есть качественный JIT. Для новых языков-конкурентов — Nim, Julia... — или компиляция изначально, или обязательный JIT. Для Python есть только PyPy, который JITит не целевую программу, а собственный интерпретатор(!), давая, конечно, рост раза в 3 на задачах стиля «веб-сервер» / «сервер текстового взаимодействия», но это копейки по сравнению с возможным. И не надо вспоминать NumPy с компанией, или частные затычки вроде Cython и Numba — там, где они что-то дают, другой язык дал бы ещё больше.

Качество поддержки разработчика у Питона тоже ниже плинтуса. Во всех нормальных языках давно есть, например, требование предопределения используемых переменных. В Питоне описка в названии далеко не всегда ловится даже статическими анализаторами — а интерпретатору тем более пофиг, пока не взорвётся уже при работе. Динамическая типизация — интерпретатору никогда заранее не известен тип данного и нельзя устранить проверку этого типа (дорого, неэффективно). Огромное количество проблем, которые даже в Javascript ловятся всякими strict mode при парсинге, в Python могут быть отловлены только тестами. При одинаковых задачах, эффективность разработчика на Python в разы ниже разработчика на другом аналогичном языке. Статические анализаторы слабы и ловят единицы процентов проблем.

Использование языка, который принципиально делает всё, чтобы не компилироваться — становится преступлением против цивилизации и экологии. Я обычно скептичен по отношению к подобным плачам, но Питон — отличная мишень для Греты Тунберг, надо подумать подсказать ей.

Главное, что надо знать Python-разработчику в 2021 — это слинять на что-то другое, пока его не начали бить те, кому нечем платить за электричество, сожранное неэффективным сервером. Тех же, кто предлагает его учить — надо самих «учить» уже сейчас.

PS: я сейчас пишу на Python. Вынужденно. Но я знаю и говорю, что это плохо.

причем, вот второй массовый — php, но над которым работают, в том числе и над интерпретатором:
синтетические тесты
benchmarksgame-team.pages.debian.net/...​/fastest/php-python3.html
показывают что и между интерпретаторами — есть разница.

о всех нормальных языках давно есть, например, требование предопределения используемых переменных

это да, пусть и динамическая типизация — но не хватает объявления и пыху...

и нельзя устранить проверку этого типа

по идее, должны бы появляться синтаксические конструкции, прагмы, указывающие интерпретатору что вот этой переменной тип известен
но думаю есть там сложности

эффективность разработчика на Python в разы ниже разработчика на другом аналогичном языке

а тут — зависит от размера проекта, дисциплины на нем, и архитектурных принципов.

Огромное количество проблем, которые даже в Javascript ловятся всякими strict mode при парсинге

мое мнение — ЯП должен быть гибридным — когда надо — можно указать тип, для статической проверки типа, когда не надо — var, val, any, mixed тип

php двигается в эту сторону
www.php.net/...​ge.types.declarations.php
и прагма
//declare(strict_types=1);
если надо отключить попытки автоприведения типов

не надо — не используй, ляпай код на пыхе как раньше
надо, серьезный проект и подход — врубай, и пусть вебремесленники как-то попавшие в команду взвоют :)

Python как понимаю — пока не особо развивается в этом направлении: требований промышленной разработки ПО

показывают что и между интерпретаторами — есть разница.

У PHP, насколько я знаю, есть JIT. Видимо, он и влияет. Интересно с этой точки зрения увидеть бы сравнение с PyPy.

по идее, должны бы появляться синтаксические конструкции, прагмы, указывающие интерпретатору что вот этой переменной тип известен
но думаю есть там сложности

Оно уже есть — пишется в духе

def foo(x: int, y: list)

a: str = «goodbye cruel world»

но не хватает воли дать хотя бы на уровне модуля или функции потребовать обязательности объявления (как было implicit none в Фортране).

мое мнение — ЯП должен быть гибридным — когда надо — можно указать тип, для статической проверки типа, когда не надо — var, val, any, mixed тип

Ну да, как в C#

int x = 2;

var x = 2;

ну и типы variant, где требуется явная динамика. Хотя, естественно, var x: int = 2 лучше (это менее важный тут вопрос, но стиль объявлений C слишком чреват боком).

Python как понимаю — пока не особо развивается в этом направлении: требований промышленной разработки ПО

Да, и это становится сильнейшим недостатком.

У PHP, насколько я знаю, есть JIT.

да, в 8ом появился.
и улучшены средства для написания расширений на нативном коде

Видимо, он и влияет

Нет. Интерпретатор php начиная с 7ой версии обошел значительно интепретатор питона

гуглить
Как мы сделали PHP 7 в два раза быстрее PHP 5

картинка
hsto.org/...​nb58tbgkftxkwegfktjto.png

Интересно с этой точки зрения увидеть бы сравнение с PyPy.

да, погуглю, интересно, как PHP 8 с активным JIT себя покажет

Оно уже есть — пишется в духе

и в пыхе есть. но в рантайме то что — вот в чем вопрос

Да, и это становится сильнейшим недостатком.

Руби как понимаю немало именно из-за тормозного интерпретатора уступил место Ноде. да и с пыха стало неинтересно переходить

Но Питон — преподается кругом :) Вот молодое поколение и накачивает популярности
Программисты ж уже! а выучить второй ЯП — это ж... у-у-у, для программиста сложно.

PS: я сейчас пишу на Python. Вынужденно. Но я знаю и говорю, что это плохо.

ахахахаха

Вот и другие пишут вынужденно, и вопрос стоит о том что учить, а не учить ли вообще.

Если начали о проблемах — прошу конкретики, реальные кейсы. А то вижу только много текста и паники. хейт хейт хейт.

А то вижу только много текста и паники. хейт хейт хейт.

Значит, учитесь читать. Хейт пока поступил от вас.

Вот и другие пишут вынужденно

И это надо менять — если Питон не меняется, надо с него уходить.

И это надо менять — если Питон не меняется, надо с него уходить.

вас же никто не держит, можете уходить.

Мне, как человеку заинтересованному в python, и другим таким же, все же хочется увидеть примеры реальных кейсов. Тогда будет реальный повод задуматься.

Если же у вас что-то не компилируется может проблема не в языке программирования? проблемы с типизацией никакие не проблемы, это фишка языка. для javaфилов есть модуль typing, а также нормальные IDE. Нужны нативные типы — пишите на С.

Качество поддержки разработчика у Питона тоже ниже плинтуса. Во всех нормальных языках давно есть, например, требование предопределения используемых переменных. В Питоне описка в названии далеко не всегда ловится даже статическими анализаторами — а интерпретатору тем более пофиг, пока не взорвётся уже при работе. Динамическая типизация — интерпретатору никогда заранее не известен тип данного и нельзя устранить проверку этого типа (дорого, неэффективно).

Как жаль что в 2021 еще не изобрели писать тесты..

Как жаль что в 2021 еще не изобрели писать тесты..

Как жаль, что вы не умеете читать написанное открытым текстом:

Огромное количество проблем, которые даже в Javascript ловятся всякими strict mode при парсинге, в Python могут быть отловлены только тестами.

На этом можно закрывать ветку на год (вряд ли вы раньше научитесь читать, а до этого продолжать бессмысленно).

слив засчитан. чего и стоило ожидать.

....есть такая штука, которую мы, джависты, называем Jython...

фишки питона 3 — поддерживает?

кажется нет
Only version 2.7 of Python can be supported at present (but watch this space for a 3.x version)
github.com/jython/jython

....есть такая штука, которую мы, джависты, называем Jython...

Да, была такая штука. Потому что уже в 2019 году 3/4 библиотек перестали поддерживать Py2. Ну и где реализация для Py3? «Эх, хвост, чешуя, не поймал я ничего»?

Я ещё на IronPython посматривал, он хоть чуть свежее обычно, но у него свои проблемы и вообще дотнет под линукс всегда где-то нужно постоянно подтачивать напильником.

Фіча яку я пиляю дозволяє розширяти наш продукт скріптами та іншими системами — це переважно щоб можна було використовувати моделі побудовані дата саєнтістами. І я спостерігаю, що наші клієнти від дрібних до корпорацій переважно використовують Python, а ті хто ще ні — хочуть викинути свої R/MatLab/... і перейти на Python. І для таких цілей (створення та каталогізація моделей) Python схоже дуже добре підходить — в ньому все просто і на ньому можна взяти і почати писати не читаючи мануалів.

Вірю. Але це окрема дуже специфічна ніша, і перебіг з інших мов повʼязан з недоліками тих засобів, а не з перевагами Python. Вже маючи навіть 1-2 екрани коду поверх numpy/pandas/etc. починаються постійні скарги на те, що треба методом тику визначати кожного разу тип результату — скаляр, матриця, двовимірний масив...

а какой-то язык прореагировал с 2012 года? наоборот ведь, идея теперь в том, что процессор дешевый, можно загружать как угодно, убыстрять не нужно, все равно упираемся в ио или в глупые тупые вычисления на фортране, которые не поменялись с затертого года и везде одинаковы.

а какой-то язык прореагировал с 2012 года?

Усовершенствование JIT в Ruby, Javascript, PHP. Значительная оптимизация PHP по производительности. Добавление статической типизации в Javascript посредством Typescript. Развитие Rust. Развитие Go. Улучшения C++.

И не с 2012 надо считать, а немного раньше (2012 это уже второй этап, когда память начала упираться в предел). C11, C++11 получили средства многонитевой синхронизации — если бы продолжалось ускорение по частоте, никто бы об этом всерьёз не задумался. Когда там массово пошли двухъядерные процессоры на десктопах — с 2006?

наоборот ведь, идея теперь в том, что процессор дешевый, можно загружать как угодно, убыстрять не нужно

Как только подходим ко всяким видео — тут же начинается: кэши оптимизируй, в SIMD нужные команды, и прочая и прочая. Или вот про Redis: как раз в IO не упёрлись, а проблема уже есть.

или в глупые тупые вычисления на фортране

Фортран, как ни странно, из-за своей тупизны тут даже полезнее C++. Если бы последний позволял задать контекст [[aliasing=never]] где программист уверен — сравнялись бы.

Усовершенствование JIT в Ruby, Javascript, PHP.

...

Это ведь только нарратив такой. Альтернативный нарратив — связка С++ и Питона оказалась настолько успешной, что практически вытеснила языки с «виртуальной машиной» на поле конкуренции с плюсами по производительности и с питоном по экспрессивности. и там и там — пока проигрыш.

альянс Питон-С++ причем, довольно уникален и по разным причинам повторить нельзя, нужно либо совсем уже Ц, что напряг, либо отказываться от фишечек — джитов, тредов, функциональщины, виртуальной машины, обьектной модели, напряг короче.

разве не более убедительно? и в пример — абсолютно невзлетевшая Джулия, проигравшая питону с пандами.

Как только подходим ко всяким видео — тут же начинается: кэши оптимизируй, в SIMD нужные команды, и прочая и прочая. Или вот про Redis: как раз в IO не упёрлись, а проблема уже есть.

вот тоже да — при всей своей радости, идея специализированных инструкций в ЦПУ оказалась не очень удачной, возвращаемся к отдельному чипу/отдельным кешам/отдельным интерфейсам
то есть удачи Вам, если правда думаете что JIT в джаваскрипте позволит кому-то обрабатывать видео на джаваскрипте, ага.

про редис тред слишком умный на вид, вникать нужно — вряд ли у них индекс влезает в кеш, и оно все равно, по-идее, «быстрый процессор ждет медленной памяти», разве нет?

Фортран, как ни странно, из-за своей тупизны тут даже полезнее C++.

это, по-моему, не вопрос 2021 года. lapack на фортране потому что он на фортране, если вдруг кому-то прийдет в голову его переписывать (невероятно) — это будет точно на плюсах, и частью проекта будет — добавить в плюсы все что нужно (если нужно).

то есть удачи Вам, если правда думаете что JIT в джаваскрипте позволит кому-то обрабатывать видео на джаваскрипте, ага.

Ааааа это из Упанишад? Я такого сочетания не предлагал и не намекал. Хотя вообще-то доля возможности (не идеально, но лучше тупого питона без сишной поддержки) тут есть.

абсолютно невзлетевшая Джулия, проигравшая питону с пандами.

Она медленно разгоняется, но шансы взлететь ещё есть и заметные.

связка С++ и Питона оказалась настолько успешной, что практически вытеснила языки с «виртуальной машиной» на поле конкуренции с плюсами по производительности и с питоном по экспрессивности. и там и там — пока проигрыш.

Если «экспрессивность» это про проблемы поиска «а какого же типа блин оказалась эта херня?», то я согласен. Если про что-то другое — то не очень. На самом деле жаль, что в мире Unix не выстроено что-то вроде связки Groovy — Java/C#/F# - C++/CLI, которая позволяет практически бесшовно сделать все переходы уровней и, к тому же, нормальную диагностику (ну-тко расскажите как отлаживать бутерброд из Python/C++... ну да, логи наше всё...)

либо отказываться от фишечек — джитов, тредов, функциональщины, виртуальной машины, обьектной модели, напряг короче.

Вот именно что у MS эти фишки сильно лучше построены — но из-за чрезмерной привязки всего бутерброда к Windows и закрытых лицензий это всё осталось инопланетными реалиями.

при всей своей радости, идея специализированных инструкций в ЦПУ оказалась не очень удачной

Это в сравнении с чем, собственно? GPU? Или сказками про FPGA?

про редис тред слишком умный на вид, вникать нужно — вряд ли у них индекс влезает в кеш, и оно все равно, по-идее, «быстрый процессор ждет медленной памяти», разве нет?

Не-а — если бы было умно построено. Фактически все time series DB построены на том, что когда последовательно бежишь по памяти, она оказывается ну реально быстрой (а если помогаешь подсказками «вот это можно пока выкинуть из кэша» то вообще). Тут и kdb+, и MemSQL, и другие похожие. А вот когда в одной нитке занимаешься 100500 разных действий в разных местах и совсем разного характера — жди проблем.

и частью проекта будет — добавить в плюсы все что нужно (если нужно).

Не согласятся.

Если «экспрессивность» это про проблемы поиска «а какого же типа блин оказалась эта херня?», то я согласен. Если про что-то другое — то не очень.

я, как для меня неожиданно выяснилось, против: в Г нельзя засабмитить код без pytype линта, к тому же почти весь код с аннотациями PEP-484 — выяснилось, что такого рода проблемы я бы решал в джупитере. Собственно экспрессивность, наверное, это вот это — несколько недель и совершенно посторонний человек уже машет шашкой в юпитере, отлаживает распознавание образов в питорче.

На самом деле жаль, что в мире Unix не выстроено что-то вроде связки Groovy — Java/C#/F# - C++/CLI, которая позволяет практически бесшовно сделать все переходы уровней

я тут тоже с другой стороны, очень жаль что в связку с java или .net очень сложно запихнуть что-нибудь странное :)

Это в сравнении с чем, собственно? GPU? Или сказками про FPGA?

в сравнении с каким то более высокоуровневым интерфейсом — ну и да, GPU, вот эти всякие bnns, mpscnn, matrix accelerators. Заставлять обычные компиляторы векторизировать код все равно ведь не получилось хорошо — вообщем-то для обычного, не маньячного, программиста, simd сейчас практически харам — абсолютно непредсказуемо

про редис нужно больше почитать, я честно говоря, не представляю в теории как можно сделать db cpu bound.

добавить в плюсы все что нужно (если нужно).
Не согласятся.

переписать лапак и наследие фортрана ~= O(убедить комитет^(e*pi))

в Г же бродит текст «Python considered harmful» от не-помню-кого, с 3-х символьным емейлом. текст упоминает мытарства саппортеров Mondrian даже во времена Гвидо в Г, а также всё то, о чём выше пишет netch. текст сохранился? к сожалению, за пределами компании я его не находил. видимо, последствия публикации могли быть неприятно политическими.

мне очень нравится коммент к этому тексту, где другой трехбуквенный говорит, что мондриан был бы таким же говном и на любом другом языке.

потому что автор Гвидо? Critique ведь такой реакции не вызвал

изначально писался в расчёте, что потом перепишем

насколько у меня хватает опыта, такие штуки (не-продакшен тулзы для SDLC) очень сложно писать — все ругаются, все знают как его лучше писать и «как надо», бюджет в десять раз меньше чем все думают, «успеха» никакого нет.
(Мондриан, кроме Гвидо это, вероятно, два миддла, с-р-и, тпм, и юай дизайнер — хорошо еще, если все они не на «общественных началах»)

Розумію, що можу когось образити, але на мою думку і з мого досвіду Python не треба вчити щоб писати на ньому. Ну хіба що це ваша перша мова програмування. Я ось є основним контріб’ютором в цей Python-проект — github.com/tableau/TabPy. Ним користуються десятки тисяч клієнтів (скоріше за все більше) — це про всяк випадок. І мені вдається його писати не знаючи Python в тому сенсі, що я ніколи його спеціально не вчив.

Тобто це мова з логічним синтаксисом на які легко писати і яку легко читати. А коли треба зробити щось хоч трошки синтаксично складне то стековерфлоу нормально допомагає.

Також, це вже до автора, коли я бачу тайтл Senior Python Developer то перше як я це розумію — це Senior Developer який пише Python, але не ясно для чого це виділяти. І лише потім згадую, що це так в Україні прийнято в тайтлі вказувати одну з технологій поточного проекту.

Ваш Senior C++ C# Java TypeScript Python SQL Windows Linux Mac Developer.

не треба вчити щоб писати на ньому

...існує думка, що тому, хто знає українську мову, мови програмування вчити не треба, так як предикативність української мови ( і відповідного мислення) робить для нас доступними всі мови «з коробки»...

вопрос к автору: чем отличается набор необходимых знаний в 2021 от знаний в 2020? Другими словами: что нового?

на подобную тему, только для фронта есть frontend developer handbook 2019, содержимое ее подойдет и для 2022 имхо.
Статья кликбейт.

черт — это SEO статья — не теряйте времени

и еще важно знать все гендеры.

В чому фішка статті :-) ?

например PyTest

Slash anyone?

Одно из самых популярных коммерческих решений на рынке — PyCharm

Але не забувати, що JetBrains — російська компанія, що надала один з векторів атаки для злому SolarWinds.

„JetBrains s.r.o. is a Czech software development company” — каже Вікіпедія

А Luxoft швейцарська, так.

Це як «EPAM Systems — американська ІТ-компанія, виробник замовного програмного забезпечення...»

Значить треба користуватись крякнутою версією — ні копійки окупантам!

Це як мати незахищений секс з повією, але не платити, бо в неї сифіліс.

що надала один з векторів атаки для злому SolarWinds.

Спеціально? Видала дірку в своєму продукті?

Вони заперечують, але з росіянами завжди так: брешуть, як тільки відкриють рота.

Если при разработке используются асинхронные фреймворки, то в качестве ORM снова выступает SQLAlchemy с асинхронными адаптерами для базы данных.

«с асинхронными адаптерами» читати як «там повна дупа без транзакцій».

Вимоги для Junior’ів значно вищі ніж зазначені в статті. Вакансії для Python дуже сильно різняться одна від одної за стеком технологій і бібліотек. Універсальність мови тут виступає зворотною стороною медалі. Відповідно тестові завдання для джуніорів можуть бути кардинально несхожі

«Второй лучший язык программирования»

Графіки по зп зі зростом +1к$ за рік.
Вимоги до джуніора, як до школяря, який прочитав статтю по програмуванню на 5 абзаців.
Та і взагалі статтю навіть розносити не хочеться, рівень випуску ТСН, чи публікації жіночого журналу

омг, реклама курсів від яндекс. Ви серйозно?

Подписаться на комментарии