Python входить до топу найпопулярніших мов програмування не тільки в Україні, але й у світі. Вона підходить для розв’язання різних завдань: від створення невеликих застосунків для персонального використання і до побудови великих корпоративних систем.
Python працює майже на всіх сучасних платформах і підтримує мультипарадигмальне програмування, що робить її універсальним інструментом бізнесу. Тому попит на розробників Python великий і навряд чи він зменшиться, адже ця тенденція тільки зростатиме, а системи штучного інтелекту та Data Science лише збільшують попит на фахівців такого виду діяльності.
Що потрібно знати Python Junior розробнику для успішного працевлаштування?
Багато програмістів-початківців, обираючи мову програмування, ставлять перед собою такі питання:
1. Чи зможу я осягнути цю мову?
2. Чи актуальна вона зараз?
3. Як швидко я зможу почати працювати?
Крім самого процесу навчання, їх бентежить багато нюансів:
1. Чи потрібна вища освіта?
2. Які hard і soft скіли потрібні?
3. Які книги прочитати та які сайти подивитись?
4. Про що запитуватимуть на співбесіді?
Нижче я спробую відповісти на ці запитання.
Чи зможу я осягнути цю мову?
Так! А чому ні? Python – одна з найпростіших мов, яка дасть вам змогу розпочати свій шлях до професії програміста з найменшою кількістю зусиль.
Основною концепцією цієї мови є спрощення синтаксису, що полегшує роботу програміста. Більшість складних речей, які виконуються на інших мовах за допомогою сотень рядків, тут можуть бути виконані лише за 2-3 рядки. Налагодження та використання додаткового програмного забезпечення буде приємним бонусом для початківця.
Чи актуальна мова Python зараз?
Мова програмування Python є однією з найпопулярніших мов у світі. Розробку і вдосконалення цієї мови підтримують найбільші світові компанії, такі як Google, Amazon та Microsoft.
Python стала невіддільною частиною великої кількості програмного забезпечення, і зараз уже неможливо уявити собі звичні нам речі, такі як замовлення таксі через застосунок чи доставка їжі додому, без використання цієї мови.
Як швидко я зможу почати працювати?
На це запитання у мене однозначної відповіді не буде. Усе залежить повністю від вас.
Знань, щоб виконати відносно нескладні задачі, такі як написання ботів або скриптів для роботи інших програм, буде вдосталь вже через 2 місяці.
Повноцінно потрапити в комерційну розробку можливо вже після пів року навчання. Але не слід забувати про те, що сучасним програмістам треба знати не тільки мову програмування, а ще й додаткові інструменти, які використовуються під час розробки.
Чи потрібна розробнику Python вища освіта?
Напевно, це найчастіше запитання, яке ставлять майбутні розробники. На нього немає однозначної відповіді, але ми можемо назвати плюси та мінуси вищої освіти для програмістів.
Мінуси
Витрачені роки
Вам знадобиться 4 роки навчання у ВНЗ, щоб здобути ступінь бакалавра.
Можливо, цей час можна використати ефективніше, але ніхто не забороняє працювати вже під час навчання.
Застаріла програма
На те, щоб додати нові знання до програми ВНЗ, підуть місяці, а то й роки. За цей час знання застаріють, особливо в ІТ. І це є найскладнішим фактором.
Дійсно, сучасні освітні заклади не дуже встигають за потребами бізнесу, але якщо ви ще навчаєтесь в університеті, то ухвалили правильне рішення. Вже кілька років поспіль програми навчання з інформаційних технологій відпустили з-під сильного контролю та надали можливість бізнесу диктувати свої потреби.
Некомпетентні викладачі
В ідеальному світі у вишах викладають круті фахівці, які добре володіють теорією та мають практичний досвід. Насправді досвід викладача може бути далеким від сучасних реалій. І це дійсно так. Ви можете натрапити на викладача, який ще стояв у першоджерел інформаційних технологій і писав перші програми за допомогою лампочок. І хоча це поважні люди з неймовірним досвідом, вони вже далекі від реальності.
Є небагато людей, які мають релевантний досвід і готові працювати за неконкурентну заробітну платню. Хоча зараз багато IT-спеціалістів працюють у ВНЗ з метою підготовки якісніших кадрів для своїх IT-компаній.
Плюси
Широкий кругозір
Це банально звучить, але програма ВНЗ розширює кругозір. Крім коду, корисно знати, як влаштовано суспільство, як функціонує економіка, що рухає політикою. Зараз ви, скоріш за все, не будете працювати просто програмістом, який сидить за комп’ютером і не бачить нічого навколо.
Розуміння, як працюють більшість суспільних інститутів, дає змогу програмістам знаходити цікавіші та корисніші способи використати свої знання. Україна вже кілька років поспіль є лідером у світі з таких технологічних напрямів як FinTech, SocialTech, HealthTech та eGoverment.
Фундамент професійних знань
Теоретичні знання погано монетизуються, але вони закладають основу професійного розвитку майбутнього програміста. Якщо вивчити лише одну мову програмування, цього буде недостатньо для успішної кар’єри, адже програмістам часто потрібно бути гнучкими та знати, як функціонують різні технології. Без них буде складно вивчати щось нове, а з часом, через велике навантаження на роботі, ви скоріш за все не зможете ефективно вивчати щось, що далеке від вашої експертизи.
Навичка самонавчання
У ВНЗ студент звикає регулярно виконувати завдання, читати навчальну літературу, шукати додаткові джерела інформації. Програміст постійно навчається, технології змінюються і майже кожні декілька місяців потрібно дізнаватися щось нове. Якщо не закласти фундамент таких звичок на старті вашої професії, то далі буде набагато складніше.
Диплом зі спеціальності
Працювати програмістом можна і без диплома. Нещодавно на сайті DOU проводилося опитування про освіту IT-спеціалістів. З’ясувалося, що приблизно третина не має вищої освіти й більша частина володарів дипломів працює не за спеціальністю.
Але якщо ви забажаєте зростати далі та ставати вже керівниками, то вам знадобиться підтвердження вашої кваліфікації й диплом може допомогти у цьому.
Також багато розвинених країн мають програми імміграції, таких як Green Card, за допомогою яких залучають кваліфікованих спеціалістів. Для підтвердження кваліфікації потрібні документи з роботи та диплом. І хоча український диплом державного зразка не сильно цінується у країнах Північної Америки, але у Європі він є доволі вагомим.
Вимоги до технічних навичок
Вимоги до технічних навичок Junior Python-розробника постійно зростають.
Парадокс: розробників не вистачає, а вхідний поріг збільшується. Індустрія намагається захиститися від поганих профі, які приносять більше проблем, аніж користі.
Що потрібно знати, щоб подолати вхідний поріг?
- Python, синтаксис, бібліотеки, алгоритми, структури даних і так далі. Для позиції Python-розробника це – основний критерій. Також потрібно обов’язково знати, де зберігається документація.
- Фреймворки, наприклад Django або Flask. Розробник-початківець не повинен володіти усіма фреймворками. Досить вміти працювати з одним і знати назви інших, а також те, де вони використовуються.
- Базові знання HTML CSS. Початківець у Python не повинен вдаватися у тонкощі frontend-розробки, але загальне уявлення йому необхідне.
- Реляційні бази даних. SQLAlchemy, SQL, PostgreSQL, MySQL.
- Загальні засади роботи Інтернету. API, протоколи (http, https), JSON-RPC, Protocol Buffers, gRPC.
- Linux, а також один або кілька IDE. Розробнику треба вміти налаштовувати робоче оточення самостійно.
Крім того, знадобляться такі знання і вміння:
- Agile\Scrum. Якщо навіть вам не доводилося працювати за цими методологіями, то хоча б ознайомтеся із загальними принципами.
- Git. Вміння працювати з системами контролю версій буде необхідне постійно.
- Мікросервіси. Докладного знання мікросервісів від новачка не вимагатимуть, але розуміння їхньої роботи стане в пригоді.
Список навичок, які було б добре мати, можна продовжувати нескінченно. До нього увійдуть і Amazon Web Services, і хмарні технології, і Machine Learning.
Словом, все, що ви знаєте на достатньому для роботи рівні, буде плюсом. Головне, не забудьте додати ці скіли у резюме і згадати їх на інтерв’ю.
Soft skills, якими має володіти Junior Python Developer
Англійська мова
IT всього світу говорять англійською. Довідкова література, нові технології – все англійською. Допоки все перекладуть на українську, вже з’являться нові технології й усе розпочнеться спочатку. Крім того, цією мовою вам доведеться говорити з іноземними колегами, партнерами та навіть клієнтами.
Без англійської ваше кар’єрне зростання буде повільним і розмір вашої заробітної плати також буде під питанням. Не знаючи англійської мови, ви, скоріш за все, будете працювати на проєктах, де вона не дуже потрібна, а це замовники з країн, де рівень заробітної плати не буде відповідати вашим потребам.
Комунікація
Великі завдання не виконуються самотужки. Хороший розробник має бути командним гравцем і вміти ефективно спілкуватися. Товариші за командою, менеджмент, представники замовника – зі всіма цими людьми вирішуватимуться робочі питання, а без розвинених комунікативних навичок це буде складно.
Дисципліна
Приходити вчасно на роботу та мітинги, звітувати про завдання, відповідати на листи протягом дня, здавалося б, нескладно, але скільки молодих фахівців цим нехтує!
Керування часом
Це частина загальної дисципліни, але окремо хотілося б наголосити на необхідності work-life балансу. Розробник, який не відпочиває та нічим не цікавиться, окрім програмування, може швидко вигоріти.
Звичайно, це далеко не всі корисні soft skills, але ці є ключовими.
Якi запитання можуть бути на співбесіді?
Процес співбесіди складатиметься з кількох етапів.
На початковому етапі вам ставлять загальні запитання. Наприклад, яку позицію ви розглядаєте, й інші прості деталі. Один із головних моментів – це переконати рекрутера, що ви зацікавлені у пошуку роботи та хочете працювати саме в цій компанії.
Далі вас чекає нетехнічний етап співбесіди. Тут вас питатимуть, чому ви обрали саме цю мову програмування, де навчалися і чи маєте досвід роботи.
Також будуть розглядати вашу освіту і професійний стаж. Запитання типу: «Як ви бачите себе через 5 років» теж можуть прозвучати. Це роблять для з’ясування вашої амбітності та зосередженості на професійному зростанні. На цьому етапі можна згадати про вашу участь у хакатонах та інших спеціалізованих заходах.
Частина запитань спрямована на оцінку вашої «м’якої» компетентності, про яку ми говорили раніше. Сюди входить рівень володіння англійською, ваша здатність до стресостійкості, підхід до розв’язання завдань.
Також можуть поставити запитання щодо ваших мотивів працювати саме в цій компанії, тому цілком доцільно перед співбесідою ознайомитися з діяльністю компанії та підготувати кілька обґрунтувань.
Потім на черзі буде технічне інтерв’ю. Існує безліч підходів і низка запитань, які можуть прозвучати. Загальні питання можуть стосуватися налаштування комп’ютера, принципів роботи Інтернету й основ програмування.
Основи програмування – це основний напрям питань. Ймовірно, вас питатимуть про основні принципи ООП (Об’єктноорієнтованого Програмування). Особисто я обожнюю питати саме цей розділ, бо він відображає не тільки технічні знання, а ще й гнучкі навички, такі як вміння комунікувати, описувати складні речі простими словами й стресостійкість. Якщо у вас є можливість, додайте до опису приклади практичного застосування цих принципів.
Python – це ключовий напрям питань. Вас, можливо, попросять розповісти про масиви та їхню структуру, основні алгоритми сортування, типи даних і методи пошуку. Ще неможливо уникнути запитань щодо різних фреймворків.
Ймовірно, ваш технічний інтерв’юер додасть деякі глибокі запитання. Не засмучуйтеся, якщо на якесь із них не знайдете відповіді – інтерв’юер буде намагатися випробувати інші межі ваших знань.
Імовірно, вам запропонують тестове завдання для вирішення чи описання того, як ви його вирішили б. Не можна проігнорувати й ваші навички у написанні коду. Вас можуть запитати про використовувані вами IDE, вашу здатність до їх налаштування, додавання бібліотек, плагінів тощо.
Завершується співбесіда оцінкою ваших знань баз даних. Вам можуть поставити запитання про основи роботи з ними, який ваш досвід у роботі з різними базами даних, щодо їхніх особливостей.
Які знання будуть плюсом?
Компанія, яка шукає нових співробітників, не просто орієнтується на розробників, але й шукає людей, здатних ефективно розв’язувати актуальні бізнес-завдання. Тому під час співбесіди звертатимуть увагу на теми, які мають прямий зв’язок із цими завданнями.
Зрозуміти, що це будуть за теми, ви можете просто дізнавшись більше про цю компанію, оскільки її спеціалізація напряму формує низку завдань, які виконуватиме програміст. Наприклад, компанія з електронної комерції буде орієнтуватися на написання інтернет-магазинів, а компанії з ринку GameDev будуть орієнтовані на створення ігор.
Наприклад, якщо Data Science має важливе значення у роботі компанії, то для вас, як для початківця Python-розробника, буде важливо відповісти на запитання щодо вашого розуміння математики, аналізу даних і теорії ймовірностей. Як ми раніше згадували, ці теми розглядаються у спеціалізованих вишах, але ви також маєте змогу опанувати основи самостійно.
Якщо у вас є навчальні або особисті проєкти, рекомендується підготувати їх до співбесіди, виклавши на GitHub або на вашому вебсайті. Важливо продемонструвати свій код і навички й супроводити це поясненнями щодо того, які конкретні завдання ви розв’язали у межах цих проєктів.
Загалом на етапі пошуку роботи важливо проаналізувати свої знання та навички, скласти списки інтересів. Кожний вид знань може бути корисним, важливо тільки знати, як їх відповідно використовувати.
Які книги потрібно прочитати Junior Python-розробнику?
- Головне ім’я, яке має знати Junior Python, – Марк Лутц. Він написав серію книг про розробку на Python, включно з Python Pocket Reference. Цей кишеньковий довідник краще читати в оригіналі. В ньому містяться відповіді та підказки майже на всі питання, які можуть виникнути у недосвідченого розробника.
- Ще одна базова книга для розробників-початківців автора Майкла Доусона – «Програмуємо на Python». Автор пропонує освоїти основи мови, створюючи прості ігри. Досвідченим розробникам ця книга не стане в пригоді, а ось для початківців цілком підійде.
- А ось книга Марка Саммерфілда «Python на практиці» підійде і для досвідчених програмістів. Ми її рекомендуємо ще й тому, що в ній описуються патерни проєктування та правила їхнього використання для створення гарного коду. Якщо ви не полюбляєте такі посібники, то можете ознайомитись із книгами «Пришвидшений курс Python» від Еріка Маттеса й «Автоматизація рутинних задач із Python» від Ела Сваргейта.
Якщо ж говорити про сайти, то тут побажання у кожного програміста доволі прості:
Перш за все, це сама документація Python. Її можна знайти на офіційному сайті цієї мови. Якщо ви шукаєте альтернативний варіант, то я можу рекомендувати звернутися до такого сайту, як w3school. Тут ви зможете знайти всі потрібні вам знання та навіть більше. Єдине, чого тут буде не вистачати, – практики.
Висновок
Наразі ситуація на ринку IT-кадрів складається на користь претендентів. Світу потрібно більше програмістів, тому профі завжди в попиті. Навіть програміст-початківець може легко знайти роботу, якщо докладе зусиль.
Для Junior Python-розробника найкращий шлях – освоїти основи мови Python, ознайомитися зі фреймворками та базами даних, прочитати кілька книг за спеціальністю й попрацювати над розвитком soft skills. Після цього можна розпочинати пошук роботи, і дуже скоро він може увінчатися успіхом.