-
-
-
-
URL copied!
Автор: Віктор Мойсеєнко, Team Lead, Python speaker and trainer, conducted over 25 group training courses, Consultant, GlogbalLogic Ukraine.
В цій колонці ми розглянемо кілька питань: чому Python такий популярний сьогодні, у яких сферах він використовується та з чого почати вивчення цієї мови. Тож поїхали по черзі!
Чому Python користується популярністю?
Простота та легкість в написанні коду, а також при його читанні. Python - це мова програмування, якій легко навчитися, а ще головніше - навчити.
Швидкість розробки. На перший погляд, це не так вже і важливо, але час розробника - це гроші замовника. Як приклад, написати й розгорнути бекенд на Python можна набагато швидше ніж на будь-якій іншій мові (навіть швидше за Node.js). Тому ринок зацікавлений у Python. Корпорації на кшталт Google та Apple взагалі вже майже десятиліття більшість своєї внутрішньої розробки пишуть саме на цій мові.
Ком’юніті - любов до цієї мови зі сторони розробників створила величезне ком’юніті, яке активно підтримує перспективні проєкти, фреймворки, відповідає на складні питання на StackOverFlow, та розвиває мову.
Універсальність - ця мова на сьогодні є найбільш універсальною: на ній можна вчити програмувати дітей в школах, писати веб-додатки, сервіси, тестувати сайти чи програми, використовувати машинне навчання та програмувати пристрої для Internet Of Things.
Якщо я вивчу Python, у яких сферах я маю перспективи, чим цікавим зможу займатися?
Python це дуже гнучка мова, на ній пишуть ігри, сервіси, веб-додатки, крон-скрипти для бекапу, юніт тестування та з її допомогою навчають нейромережі. Та все ж, виділимо три основні напрямки:
Веб-розробка
Python один з лідерів в розрізі розробки веб-додатків та REST API сервісів - тут Python конкурує лише з Node.js. Це стало можливим завдяки масі перевірених часом фреймворків, серед яких:
- Django - популярний фреймворк-комбайн по принципу “все за ціною одного”. Для багатьох веб розробка почалась і “закінчилась” з вивченням лише цього одного фреймворку, бо в ньому є все необхідне для написання додатку будь-якої складності - від туторіального блогу до порталу (саме на Django був написаний Instagram). Тут є своя екосистема, структурованість, свій ORM та мова шаблонів. Для легкого “прикручування” REST API до Django проєкту існує чудовий пакет Django REST Framework.
- Flask - міні-веб-фреймворк. Тут вже інша ідеологія, ніж в Django - якщо в тому вся структура вже задана, у Flask розробник має сам її побудувати. І якщо в Django треба створити за допомогою утиліт ціле дерево директорій та файлів для проєкту та додатку, щоб створити початковий проєкт у Flask треба п’ять строк коду. І ще кілька, щоб прикрутити REST API за допомогою Flask-Restless.
- Aiohttp - майже повністю український проєкт. Для тих, кому цього мало, можна додати, що це повністю асинхронний HTTP як сервер, так і клієнт - тобто на ньому можна писати як супер швидкі веб-застосунки, так і скачувати/шукати щось в вебі. Багато проєктів, яким важлива швидкодія, переходять з традиційних на асинхронні фреймворки/технології (до речі, Django 3.x вже також може працювати в асинхронному режимі також).
Машинне навчання
Якщо в інших сферах можна знайти якісь альтернативи, то в цій Python на першому місці без варіантів. Так, для статистики та деяких задач є ще чудова мова R. Але для продакшен вона не дуже згодиться. Тому Python, який однаково зручно використовувати як для початкового концепту, так і для фінального. Ще важливим чинником для лідерства в цій області є (знову!) простота та гнучкість Python. Старі розробки для складних розрахунків, що були написані десятиліття назад на мовах С та Fortran були легко перенесені у Python. Google та Microsoft використовують цю мову як основну для машинного навчання.
За допомогою Python можна:
- Читати текст або визначати типи об’єктів на фото чи відео
- Спрогнозувати показники на біржах, вірогідність заторів на дорогах чи хвороби пацієнтів по даних їх аналізів
- Генерувати картинки чи змінювати відео в потоці
Зараз є такі основні/цікаві бібліотеки для машинного навчання:
- Numpy - “основа всього”, реалізація класів матриць/векторів та пов’язаних операцій
- Pandas - бібліотека для аналізу даних, майже повністю злизана з чудової мови R.
- Matplotlib - бібліотека для візуалізації даних, дуже стара та надпотужна з безліччю форматів та можливостей - навіть інтерактивних (як приклад, ось гра Сапер, написана на matplotlib). Єдиний мінус - ця бібліотека трохи складна, тому високо-рівневі бібліотеки на кшталт Seaborn набирають популярності.
- Scikit-learn, Kerras, PyTorch, TensorFlow - популярні пакети/фреймворки для реалізації різних алгоритмів машинного навчання - від лінійної регресії до нейромереж.
Автоматизоване тестування
Третя сфера застосовуваності Python. Знову ж таки завдяки простоті мови її зручно використовувати для написання автотестів. При цьому тестувальники фокусуються на самому тестуванні, а не на нюансах мови - тому не дивно, що Python один з лідерів і в цій області.
Є багато бібліотек/фреймворків для тестування. Серед тих, що постачаються відразу з Python - є проста, що дозволяє писати тести прямо в коді майже серед коментарів - doctest, так і потужна unittest, що є базою для тестів у багатьох проєктах. Є навіть такі, що перейшли з тестування на Java (JUnit) на Python. Перехід досить простий тому що обидві ці бібліотеки належать до одного сімейства xUnit, і в них дуже схожий API.
Але все більшою популярності набуває модерновий фреймворк Pytest, який є незалежним проєктом та дозволяє робити речі, не просто неможливі для unittest, а в деяких випадках - навіть просто фантастичні (наприклад, динамічні та параметризовані фікстури, маркери для тестів та багато іншого).
З чого варто почати, які ресурси для новачків?
В інтернеті є безліч ресурсів. Youtube переповнений короткими та довжелезними курсами та гайдами. Але якщо потрібний вивірений часом перелік ресурсів від зовсім простеньких до гарних курсів, то ось він:
- LearnPython - супер-мінімалістичний інтерактивний туторіал. Прекрасний варіант, якщо хочеться глянути на мову, спробувати базові методи. Має перелік тем, на кожну з яких треба десь 5 хвилин.
- Python for Absolute Beginners! - Безкоштовний курс на Udemi для абсолютних початківців.
- Python for Everybody Specialization - безкоштовні курси по Python від Coursera. Я чув гарні відгуки щодо них.
- My GitBook - матеріали для курсу по Python, який я веду в GlobalLogic.
- Python3 on SoloLearn - безкоштовний курс. На вигляд дуже простий, але покриває основні теми досить глибоко + є тести. Є мобільний додаток з таким же ім’ям - дуже гарно зроблений з оновлюваним контентом від користувачів.
- Python Lectures - набір лекцій по Python від Rajath Kumar у вигляді Jupyter notebooks. Мені ці лекції подобаються тому, що вони схожі на мої власні, які я використовую на курсі. Це інтерактивні Jupyter зошити (notebooks), які можна скачати і запускати локально, переглядаючи в браузері.
Ще дуже рекомендую підписатися та слідкувати за цими блогами:
- Codeguida - дуже файний український девелоперський блог. Гарні статті по Python.
- Python on Reddit - Python-меми та новини.
- Python Insider - Майже офіційний блог Python ком’юніті. Основні новини від головних розробників.
Як можна розвиватись, якщо ти вже Junior чи Middle розробник, але хочеш стати справжнім гуру?
Ніякі книжки чи курси не перетворять на крутого програміста. Тільки робота над проєктами допомагає рухатись вперед. Знайди чи придумай проєкт і працюй над ним. Де взяти ідею?
- Можливо, на поточному проєкті потрібна автоматизація якоїсь рутини? Завантаження файлу, пошук певних записів серед логів?
- Чи треба адмінку для моніторингу статусу когось чи чогось?
- Можливо треба веб база даних для книжок проєкту? Чи цікавих серіалів? Чи каталог мемів? База використовуваних віртуалок на проєкті?
- Може потрібен Telegram чи Slack бот, який буде допомагати запускати тести, білди чи повідомляти про помилки?
Якщо цього замало - ось ще купа ідей:
Кожний такий проєкт - це цікава задача, цікава подорож у світ. Тож час в дорогу! Бажаю вам приємної подорожі та сподіваюсь, що зміг зацікавити Python!
А якщо ви хочете ще гайдів - то можете прочитати про те, як робити перші кроки у вивченні BiGData: частина перша та частина друга.
Top Insights
Python: чому вивчати та з чого почати?
InsightsSoftwareAutomotiveCommunicationsConsumer and RetailFinancial ServicesHealthcareManufacturing and IndustrialMediaTechnologyТонкощі CV або Як скласти та куди надіслати,...
HRAutomotiveCommunicationsConsumer and RetailFinancial ServicesHealthcareManufacturing and IndustrialMediaTechnologyCI/CD для JS розробників. Частина перша – теорія
DevelopmentSoftwareAutomotiveCommunicationsConsumer and RetailFinancial ServicesHealthcareManufacturing and IndustrialMediaTechnologySoft and Hard Skills: Що важливіше? Розповідь одного...
HRAutomotiveCommunicationsConsumer and RetailFinancial ServicesHealthcareManufacturing and IndustrialMediaTechnologyТОП автори
Категорії блогів
Давайте співпрацювати
Схожі теми
Мережеві основи
Основні поняття мереж Мережі забезпечують зв'язок між комп'ютерами, пристроями та користувачами навіть на великих відстанях. Вони є основою для спільної роботи, комунікації та обміну ресурсами. Мережа — це система, у якій два або більше комп'ютерів та інших пристроїв з'єднані між собою для обміну даними та ресурсами. Вони можуть бути локальними (LAN), розширеними (WAN), бездротовими (Wi-Fi) … Continue reading Python: чому вивчати та з чого почати? →
Більше
Основи операційних систем
Windows, Linux, macOS: порівняння та особливості У світі комп'ютерів три операційні системи відіграють ключову роль: Windows, Linux та macOS. Кожна з цих систем має свої унікальні особливості та призначення, що робить їх популярними серед різних категорій користувачів. У цій статті ми розглянемо ці три операційні системи, їхні переваги та особливості. Windows Windows — найпопулярніша операційна … Continue reading Python: чому вивчати та з чого почати? →
Більше
Основи інформатики та програмування
Вступ до інформатики та IT-сфери Інформатика та технології інформаційної обробки є дверима в швидкоплинну та захоплюючу сферу — сферу інформаційних технологій (IT). У світі, де відсутність доступу до інформації може виявитися прогресивною перешкодою, розуміння основ інформатики та IT-сфери стає критичним для кожної людини. Що таке інформатика та IT-сфера? Інформатика — це наука про обробку та … Continue reading Python: чому вивчати та з чого почати? →
Більше
Як зберігати і підвищувати власну продуктивність в ІТ
Артур Мицко, Lead Software Engineer, GlobalLogic У компанії Globallogic я пройшов шлях від С++ trainee до Lead Software Engineer. Як зазвичай буває, коли людина приходить в ІТ-компанію вперше — все навколо нове та цікаве, ти не помічаєш як летить час. Чесно кажучи, в перші роки я не сильно то і відпочивав, переважно на свята. Це, … Continue reading Python: чому вивчати та з чого почати? →
Більше
Як покращити ресурсний стан через оточення
Катерина Васильєва, Senior HRBP, GlobalLogic Ресурсний стан як поняття, яке використовується в психології, медицині, спорті та інших галузях, описує психофізіологічний стан людини, який характеризується рівнем її енергії, витривалості, здатності до праці та концентрації уваги. Відповідно, ресурсний стан впливає на різні аспекти життя людини, і визначається різними чинниками, як то рівень фізичного здоров'я, ступінь стресу або … Continue reading Python: чому вивчати та з чого почати? →
Більше
Як стати .NET розробником. Перші кроки та поради
Олексій Глембицький, Senior Software Engineer, GlobalLogic Мене звати Глембицький Олексій, я .NET розробник в компанії GlobalLogic, а також проводжу вебінари та викладаю курси по мові програмування С#. І в цій статті я би хотів поділитись порадами, які допомагають моїм студентам опанувати мову програмування С# та стати .NET-розробниками. Про мову програмування C# та платформу .NET C# … Continue reading Python: чому вивчати та з чого почати? →
Більше
Як покращити презентації
Денис Братчук, Engineering Director, GlobalLogic Майже кожен з нас час від часу виступає із презентаціями чи доповідями, використовуючи як ілюстрацію слайди, створені в популярних офісних програмах, на кшталт PowerPoint або Google Slides. Менеджери проєктів створюють звіти про хід виконаних робіт, інженери презентують новітні технологічні рішення, керівництво звітує про досягнення фінансових цілей, а менеджери з продажів … Continue reading Python: чому вивчати та з чого почати? →
Більше
Від студента до Trainee-спеціаліста: історія випускника С++ GL BaseCamp
Почати шлях в ІТ під час навчання в університеті — ще той виклик, який вимагає наполегливості і постійної практики. Сергій Піскурський, студент та Trainee Specialist GlobalLogic, приєднався до компанії після проходження С++ GL BaseCamp. Хлопець поділився досвідом навчання перед курсом та підготовки до С++ GL BaseCamp. Чому ти вирішив вивчати С? Коли я почав думати … Continue reading Python: чому вивчати та з чого почати? →
Більше
Share this page:
-
-
-
-
URL copied!