Як стати Python-розробником. План дій для початківців
Python — одна з найпопулярніших мов програмування серед українських розробників, яка має широку сферу застосування. Мова має порівняно простий синтаксис і її легко вивчити, тому Python часто обирають новачки як першу мову для входу в ІТ.
У межах рубрики для початківців «Код професії» розповідаємо про те, як вивчити Python та знайти першу роботу. Для цього ми поспілкувалися з досвідченими Python-розробниками Володимиром Обризаном, Віталієм Мірошніченком, Сергієм Галабурдою і Михайлом Кашкіним та зібрали їхні поради в один матеріал.
Що таке Python
Python — інтерпретована об’єктноорієнтована мова програмування високого рівня зі суворою динамічною типізацією. Розробив її 1990 року Гвідо ван Россум.
Сфера застосування мови досить широка. Python використовують у веброзробці, для машинного навчання та роботи з даними, для автоматизованого тестування. На Python пишуть ігри, сервіси, вебзастосунки, крон-скрипти для бекапу, програми з юніт-тестування, з її допомогою навчають нейромережі. У проєктах Python застосовують і як основну мову програмування, і для створення розширень та інтеграції застосунків. Ще її активно використовують для створення прототипів майбутніх програм.
Згідно з останнім рейтингом мов програмування від DOU, Python — на
За цим посиланням можна подивитись середні зарплати Python-розробників з різним досвідом.
На момент публікації медіанна зарплата Python-розробника становить $2600. Зарплата Trainee: $330–900; Junior: $700–1163; Middle: $2000–3500; Senior: $4000–6000.
А тут можна переглянути відкриті вакансії в категорії Python. На момент публікації статті є 180 вакансій.
Чому мову Python варто обрати початківцю
Для новачків, які не мають досвіду програмування іншими мовами, вивчення Python є гарним способом освоїти частину базових концептів (таких як арифметичні операції, розгалуження, цикли, функції) мов програмування та прокачати логіку.
Розглянемо переваги мови для початківців за порядком:
- Python порівняно легко вивчити, у неї простий і зрозумілий синтаксис. Легко підключати сторонні бібліотеки.
- Є багато літератури, зразків коду, онлайн-курсів, відео, питань і відповідей на Stack Overflow, тому початківець не залишиться без інформації.
- Велика спільнота розробників, оскільки Python є однією з найпопулярніших мов. Це полегшує пошук ментора або відкритого чату підтримки.
- У Python-розробників є багато варіантів розвитку. Цю мову використовують для автоматизації рутинних справ системні адміністратори, інженери з тестування використовують Python для автоматизації тестування вебсайтів (Selenium), програмісти пишуть програми для ПК (PyQT), вебсайтів (Django), вебсервісів (Flask, FastAPI тощо), для обробки даних (Pandas, NumPy), навіть можна писати нові плагіни для великих програм (QGis, Gimp). І це не вичерпний перелік!
- На ринку праці є достатньо пропозицій роботи як в Україні, так і віддалено.
Більше про плюси та мінуси Python у порівнянні з іншими мовами ми писали у статті «Велика кількість бібліотек, сувора динамічна типізація та проста логіка. Розробники — про переваги та недоліки Python».
Оскільки ми бачимо, що мова підходить для початківців, перейдімо до питання про те, як її вивчити.
Які технології варто вивчити в межах Python
Насамперед треба опанувати синтаксис мови. Важливо, що мова розвивається, тому сьогодні потрібно вчити зразки коду, які розроблені для Python 3.10 або вище.
Також варто довідатись про:
- Алгоритми й структури даних, а також їхню реалізацію у стандартних пакетах мови Python.
- Багатопотоковість (concurrency) — для того, щоб дізнатися про програмування багатопотокових застосунків і те, чому у Python багатопотоковість обмежена.
- Flask, FastAPI — щоб створити свій перший сервіс для обробки HTTP-запитів.
- NumPy, pandas для роботи з даними та математичних розрахунків (візуалізація даних, множення матриць тощо).
Варто володіти такими інструментами:
- Black — автоматичне форматування коду програми.
- Pylint — перевірка базових правил написання коду, проєктування та підказка типових помилок e коді. Це важливо для початківців, тому що спочатку помилок буде дуже багато, треба, щоб цей інструмент вчасно підказав, де саме.
- Unittest, Pytest — автоматична перевірка програми. Гарні інструменти, щоб писати надійний код без логічних помилок.
- Mypy — перевірка коректного вживання типів.
- Git — система керування версіями файлів та спільної роботи.
Крім того, на вибір технологій впливає запит розробника. Якщо ви плануєте займатися аналізом даних або створенням штучного інтелекту, варто вивчати візуалізацію та обробку даних, а ще математику. Якщо хочете створювати застосунки, треба більше уваги приділити вивченню бібліотек і технологій, що пов’язані з бекендом, і багатопотоковості.
Якщо йдеться про професійне застосування мови, то в різних напрямах є свій обовʼязковий мінімум технологій.
Автоматизація тестування: unittest, pytest, Selenium, HTML, CSS.
Програмування для ПК: PyQT.
Розробка вебсайтів: Django, HTML, JavaScript, SQL.
Розробка вебсервісів: Flask, FastAPI, JSON, SQL.
Як краще вчити мову програмування — на курсах чи самостійно
Це питання є індивідуальним і відповідь залежить від можливостей, часу, бажання та інших факторів. Можна вивчити мову самостійно, на курсах або під час стажування в компанії.
Щоб легше було визначитись з тим, як краще навчатись, поговорімо про переваги та недоліки кожного зі способів.
Самостійне навчання
Переваги:
- Матеріалів в інтернеті багато, і є великий вибір доступних і якісних гайдів.
- Це безкоштовно або дешево (за вартістю книги чи підписки на певний ресурс).
- Швидкість і темп свого навчання ви контролюєте самі, можете займатися, коли вам зручно, і не підлаштовуватися під когось.
- Якщо ви вже маєте досвід у розробці, зможете витратити менше часу на вивчення мови, ніж якби пішли на курси, що тривають пів року чи рік.
- Можна власноруч обирати формат споживання інформації — відео або текстом.
Недоліки:
- Без ментора може бути складно розпізнати та зрозуміти свої помилки, а з кожною наступною нерозвʼязаною задачею може знижуватися і мотивація до навчання.
- Складно розібратися, що й за чим вчити, де і як знайти необхідні ресурси.
- Складно зрозуміти, чи досягли ви вже рівня, з яким можна йти на стажування чи шукати роботу.
- Вивчення мови може затягнутись, якщо немає навичок самоорганізації.
Досвідчені розробники радять знайти ментора, якщо ви обрали шлях самостійного вивчення мови. Оскільки на певному етапі ви можете потрапити в глухий кут і не знайти рішення. Крім того, часом самому важко побачити свої помилки, а ментор підкаже, як зробити код чистішим та якіснішим, пояснить особливості його написання на прикладі кожної окремої ситуації. Втім, хороший ментор — це дорого.
Курси
Переваги:
- Ви перебуваєте в колективі людей, які вивчають те саме, можуть поділитися знаннями та досвідом, допомогти уникнути блокерів чи проблем.
- У вас є викладач або ментор, який може дати відповіді на ваші запитання.
- Ви потрапляєте в оточення мотивованих людей, це дає змогу підтримувати належний рівень натхнення.
- Графік занять на курсі не дасть вам «забити» на навчання.
- Якщо курси проводить ІТ-компанія, то є великі шанси, що вас навчать саме того, що потрібно цій компанії, і ви зможете претендувати на стажування чи посаду в ній.
Однак розробники радять серйозно поставитися до вибору курсів: читати відгуки, розпитати тих, хто там навчався, довідатися про досягнення учнів, майбутнього викладача. Більше інформації про те, які в Україні є ІТ-курси та як їх обрати, ви можете знайти на DOU за тегом «курси». Радимо звернути увагу на статтю «Інструкція з вибору IT-курсів для початківців».
Недоліки:
- Курси — це дорого. Тривалі курси можуть коштувати як семестр навчання в престижному університеті, а такі гроші є не у всіх.
- Якщо ви недостатньо мотивовані, навчатися буде важко, а відставши від решти, є великий шанс все покинути.
- Курси не гарантують працевлаштування та карʼєри (самостійне навчання теж не гарантує, проте ви хоча б не платите за це гроші).
- Курси можуть тривати довго, близько року.
- На навчання потрібно буде знаходити час і підлаштовуватись під графік.
- Щоб потрапити на безкоштовні курси при ІТ-компаніях, потрібно мати базові знання та часто гарне володіння англійською.
Корисні ресурси для вивчення Python
«Learning Python» Марка Лутца. Є два томи: перший розповідає про синтаксис і базові можливості мови, другий — про об’єктноорієнтоване програмування. Книга велика — понад 1500 сторінок, автор має багато чого розповісти початківцю.
Офіційний туторіал мови, який від самого початку покроково демонструє можливості мови.
Pycharm Edu. Це безплатна версія середовища для розробки для Python. Тут є багато завдань для початківців з автоматичною перевіркою.
Learn Python in Y minutes. Довідник для вивчення мови.
LeetСode. Для розв’язування алгоритмічних задач.
LearnPython. Мінімалістичний інтерактивний туторіал.
Python for Absolute Beginners! Безплатний курс на Udemy для абсолютних початківців.
Python for Everybody Specialization. Безплатні курси з Python від Coursera.
Python Lectures. Набір лекцій з Python від Rajath Kumar у вигляді Jupyter notebooks.
Pylot.me. Курс Михайла Кашкіна для початківців.
Корисні статті на DOU
Що має знати Senior Python Back-end Developer. Аналіз вакансій в Україні та Каліфорнії.
Серія статей «Python дайджест».
Советы сеньоров: как прокачать знания junior Python.
Python Challenge, или Как я ознакомился с автоматизированным тестированием за месяц.
Безсерверні веб-застосунки на Python з використанням Lambda і Flask.
Як шукати роботу початківцю в Python
Перед пошуком роботи розробники радять реалізувати два-три простеньких проєкти й залити їх на GitHub. Можливість на етапі відбору кандидатів подивитись на код може стати вашою перевагою.
Також тренуйтеся розв’язувати задачки й будьте готові це робити під час інтерв’ю. Не відмовляйтеся виконувати тестове завдання. Зараз є безліч сервісів, де можна потренуватись. Наприклад: LeetCode, Codewars, HackerRank.
Підтягніть свою англійську. В реаліях українського ІТ-ринку гарна англійська значно збільшує шанси знайти роботу.
Ще одним альтернативним джерелом для досвіду може бути відкритий код програмного забезпечення. Періодично проєкти з відкритим кодом мають задачі для людей без досвіду, але з бажанням працювати. Іноді таку роботу навіть оплачують — вам потрібно серфити GitHub у пошуках цікавих проєктів і корисного досвіду.
✅ Що варто вказати в резюме
- Посаду, на яку ви претендуєте.
- Технології, з якими мали справу: навіть якщо це стандартні пакети Python.
- Усі завдання, які ви виконали, з указанням технологій і пакетів. Залийте свій код у публічний репозиторій на GitHub і вкажіть посилання. Наприклад: «Написав програму, яка читає CSV-файл виписки з карткового рахунку «ПриватБанку» та робить аналітику за різними групами витрат. Результат у вигляді Excel-файлу або png-графіка. Використав пакети: csv, pyexcel, Matplotlib, pytest, Pylint.
- Стажування, якщо десь проходили. Опишіть, що там робили, які були завдання та чого досягли.
- Курси та навчання, освіта. Вона не гарантує ваших знань, але показує рекрутеру, що ви хоча б орієнтуєтесь у сфері.
- Англійська мова — її знання на старті карʼєри може компенсувати прогалини в розумінні Python.
- Soft skills. Вміння працювати під тиском чи в стислі терміни, бути командним гравцем чи вирішувати конфлікти, заменеджерити певні процеси.
❌ Про що краще не писати
- Досвід, який взагалі не повʼязаний з позицією — не потрібно в резюме на фронтенд-розробника писати про те як, ви працювали барменом, офіціантом тощо.
- Негатив про попередню роботу чи колег — таких кандидатів намагаються уникати.
- Не припускайтеся граматичних помилок. Якщо сумніваєтесь, попросіть вичитати резюме редактора/коректора.
Більше про те, як написати хороше резюме, читайте в цих статтях:
- Як оформити резюме, щоб конкурувати з найкращими кандидатами. Поради на реальному прикладі.
- Как помочь работодателю выбрать ваше резюме. Советы тимлида.
- Як Junior-спеціалісту створити перше резюме. Покрокова інструкція з поясненнями.
Також варто перед підготовкою до співбесіди звернути увагу на статтю «Співбесіда з Python. 100+ запитань для Junior, Middle, Senior».
Роботу розробники радять шукати на Djinni та DOU. На DOU є розділ «Перша робота» з курсами, стажуваннями та вакансіями лише для початківців. Також варто створити акаунт в LinkedIn і додати в друзі якомога більше розробників та рекрутерів. Про те, як правильно заповнювати LinkedIn-профіль, читайте тут. Після перших відмов запитуйте в інтерв’юєрів, що варто підтягнути.
Бажаємо успіху у вивченні Python і віримо, що вам все вдасться!
Раніше ми писали про те, як вивчити JavaScript. Напишіть у коментарях, про яку мову ви б хотіли почитати наступного разу.