07.08.2022

Що повинен знати розробник Junior Python щоб влаштуватись на роботу

Сергій Немчинський
10 хвилин читання

Мова програмування Python входить до трійки найпопулярніших МП. Вона підходить для вирішення різних завдань, від створення невеликих додатків до корпоративних систем. Python працює на різних платформах та підтримує принципи об’єктно-орієнтованого програмування. Тому попит на розробників Python великий.

Багато програмістів-початківців обмірковують, чи варто братися за вивчення цієї мови. Крім самого процесу навчання, їх бентежить багато нюансів: чи потрібна вища освіта, які hard і soft скіли потрібні, які книги прочитати і про що запитуватимуть на співбесіді. Спробуємо відповісти на ці запитання.

Чи потрібна розробнику Python вища освіта?

Напевно, це найчастіше питання, яке ставлять майбутні розробники. Чи варто витрачати кілька років на ВНЗ, коли можна витратити півроку на вивчення мови програмування та працювати? На це питання немає однозначної відповіді. Поговоримо про плюси та мінуси вищої освіти для програмістів.

Витрачені роки

Чотири роки знадобиться відучитися у ВНЗ, щоб здобути ступінь бакалавра. Можливо, цей час можна використати ефективніше.

Застаріла програма

На те, щоб додати нові знання до програми ВНЗ, підуть місяці, а то й роки. За цей час знання застаріють, особливо в ІТ.

Некомпетентні викладачі

В ідеальному світі у вузах викладають круті фахівці, які добре володіють теорією та мають практичний досвід. Насправді досвід викладача може бути, скажімо м’яко, далеким від сучасних реалій.

Здавалося б, цих аргументів проти вищої освіти достатньо. Але є й інший бік.

Широкий кругозір

Це банально звучить, але програма ВНЗ розширює кругозір. Крім коду, корисно знати, як влаштовано суспільство, як функціонує економіка, що рухає політикою.

Фундамент професійних знань

Теоретичні знання погано монетизуються, але вони закладають основу професійного розвитку майбутнього програміста.

Навичка самонавчання

У ВНЗ студент звикає регулярно виконувати завдання, читати навчальну літературу, шукати додаткові джерела інформації. Якщо надалі доведеться вивчати щось ще, ці навички стануть у нагоді.

Диплом зі спеціальності

Багато розвинених країн мають програму імміграції Blue Card, за допомогою якої залучають кваліфікованих спеціалістів. Для підтвердження кваліфікації потрібні документи з роботи та диплом.

Нещодавно на сайті DOU проводилося опитування про освіту у IT-спеціалістів. З’ясувалося, що приблизно третина не має вищої освіти, і більше половини володарів дипломів працює не за спеціальністю.

Тож не робіть однозначних висновків. Працювати програмістом можна і без вищої освіти, але не можна сказати, що вона марна.

Вимоги до технічних навичок

Вимоги до технічних навичок junior python розробника постійно зростають. Парадокс: розробників не вистачає, а вхідний поріг збільшується. Індустрія намагається захиститися від недоучок, які приносять більше проблем, ніж користі. Що потрібно знати, щоб здолати вхідний поріг?

  1. Python, синтаксис, бібліотеки, алгоритми, структури даних і так далі.

Для позиції Python розробника це основний критерій. Обов’язково знати, де зберігається документація.

  1. Фреймворки, наприклад Django або Flask.

Розробник-початківець не повинен володіти всіма фреймворками. Досить вміти працювати з одним і знати назви інших, а також те, де вони використовуються.

  1. Базові знання HTML CSS.

Початківець програміст Python не повинен вникати у тонкощі фронт-енд розробки, але загальне уявлення необхідне.

  1. Реляційні бази даних.

SQLAlchemy, SQL, PostgreSQL, MySQL.

  1. Загальні засади роботи інтернету.

API, протоколи (http, https), JSON-RPC, Protocol Buffers, gRPC.

  1. Linux, а також один або кілька IDE.

Розробнику треба вміти налаштовувати робоче оточення самостійно.

Крім того, знадобляться такі знання та вміння:

  1. Agile\Scrum

Якщо навіть вам не доводилося працювати за цими методологіями, то хоча б ознайомтеся із загальними принципами.

  1. Git

Вміння працювати з системами контролю версій буде потрібно постійно.

  1. Мікросервіси

Детального знання мікросервісів від новачка не вимагатимуть, але розуміння їхньої роботи стане в нагоді.

Список навичок, які «добре» мати, можна продовжувати нескінченно. До нього увійдуть і Amazon Web Services, і хмарні технології, і Machine Learning. Словом, все, що ви знаєте на достатньому для роботи рівні, піде в плюс: головне, не забудьте додати ці скіли в резюме і згадати їх на інтерв’ю.

Які soft skills можуть стати в нагоді?

Про всяк випадок нагадаємо, що soft skills – це професійні навички, не пов’язані безпосередньо зі спеціальністю. Розвинені софт скіли потрібні і для пошуку роботи, і подальшого просування.

Англійська мова

IT всього світу говорить англійською. Довідкова література, нові технологи – все англійською. Крім того, цією мовою вам доведеться говорити з іноземними колегами, партнерами і навіть клієнтами. Без англійської ваше кар’єрне зростання буде повільним.

Спілкування

Великі завдання не робляться самотужки. Хороший розробник має бути командним гравцем та вміти ефективно спілкуватися. Товариші за командою, менеджмент, представники замовника — з усіма цими людьми вирішуватимуться робочі питання, а без розвинених комунікативних навичок це складно.

Дисципліна

Приходити вчасно на роботу та на мітинги, вчасно звітувати про завдання, відповідати на листи протягом дня — здавалося б, нескладно, але скільки молодих фахівців цим нехтує!

Керування часом

Це частина загальної дисципліни, але окремо хотілося б наголосити на необхідності work-life балансу. Розробник, який не відпочиває та нічим не цікавиться, окрім програмування, може швидко вигоріти.

Загальна адекватність

Описати цей скіл непросто. Але рекрутери зазвичай відстежують особливості поведінки кандидата на співбесіді. Якщо у вас є екстравагантні звички, наприклад, вдома ви працюєте роздягненим, краще це не показувати.

Звичайно, це далеко не всі корисні soft skills, але ці ми вважаємо ключовими.

Що питатимуть на співбесіді?

Співбесіда складатиметься з кількох етапів. На початковому етапі питання найзагальніші – вас запитають, на яку ви позицію претендуєте, та інші елементарні речі. Рекрутеру потрібно переконатися, що роботу шукаєте ви, а не ваша мама. Важко повірити, як часто це трапляється, особливо у програмістів-початківців.

Потім буде нетехнічний етап співбесіди. Вас спитають, чому ви обрали цю мову програмування, де вчилися, чи є у вас досвід роботи, словом, перевірять бекграунд.

Питання «Ким ви бачите себе через п’ять років» теж ставлять на цьому етапі. Так рекрутери намагаються з’ясувати, наскільки ви амбітні та націлені на професійне зростання. До речі, у цій частині співбесіди можна згадати участь у хакатонах та інших галузевих івентах.

Частина питань спрямована на те, щоб оцінити софт скіли, які ми описали раніше. Рівень володіння англійською, стресостійкість, підхід до розв’язання задач – все враховується. Можуть спитати, чому ви обрали саме цю компанію. Тому корисно перед співбесідою прочитати, що це за компанія та підібрати пару аргументів.

А потім на вас чекає технічне інтерв’ю. Є безліч способів його проведення та сотні питань, які вам можуть поставити.

Загальні питання: влаштування комп’ютера, принципи роботи інтернету. Тут доречно розповісти про мережеві протоколи і що відбувається, коли в рядку пошуку набираєш google.com.

Основи програмування: найчастіше запитують основні принципи ООП. Якщо можливо, додайте до опису принципів приклади практичного застосування.

Python: масиви і як вони влаштовані, основні алгоритми сортування, тип даних, способи пошуку. Не обійдеться без питань щодо фреймворків. Швидше за все, ваш технічний інтерв’юер ставитиме досить складні питання. Не засмучуйтеся, якщо на якесь питання не буде відповідей: інтерв’юер не намагається вас завалити, а перевіряє межі ваших знань. Швидше за все вам запропонують тестове завдання. Попросять його вирішити чи описати, як би ви його вирішували.

Навички створення коду: які IDE ви знаєте, чи вмієте їх встановлювати, підключати бібліотеки та плагіни тощо.

Бази даних: які основи ви знаєте, з якими працювали, які їх особливості.

Які знання будуть плюсом

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

Наприклад, якщо у роботі компанії значне місце займає Data Science, то у junior python розробника будуть запитувати про знання математики, аналізу, теорії ймовірностей. Вище ми писали, що це вивчають у профільних вузах, але цілком реально освоїти основи самому.

Якщо у вас є навчальні чи особисті проекти, перед співбесідою їх варто викласти на Git або ваш сайт, щоб показати на інтерв’ю. Добре, якщо демонстрація коду супроводжуватиметься розповіддю про те, яке завдання вирішував цей проект.

Загалом ми б рекомендували на початку пошуку роботи проаналізувати свої знання та скіли та скласти список. Некорисних знань немає, треба лише вміти їх правильно застосовувати.

Які книги потрібно прочитати Junior Python розробнику

Головне ім’я, яке має знати розробник Junior Python — Марк Лутц. Він написав серію книг про розробку на Python, включаючи Python Pocket Reference. Цей кишеньковий довідник краще читати в оригіналі, і в ньому містяться відповіді та підказки майже на всі питання, що можуть виникнути у недосвідченого розробника.

Ще одна базова книга для розробників-початківців — «Програмуємо на Python» Майкла Доусона. Автор пропонує освоїти основи мови, створюючи прості ігри. Досвідченим розробникам ця книга не стане в нагоді, а ось для початківців цілком підійде.

А ось книга Марка Саммерфілда Python на практиці підійде і для досвідчених програмістів. Ми її рекомендуємо ще й тому, що в ній описуються патерни проектування та правила їхнього використання для створення гарного коду.

Висновок

Наразі ситуація на ринку IT-кадрів складається на користь претендентів. Світу потрібно більше програмістів, тому тямущих людей буквально відривають із руками. Навіть програміст-початківець може легко знайти роботу, якщо докладе зусиль.

Для junior python розробника найкращий шлях — освоїти основи мови Python, познайомитися з фреймворками та базами даних, прочитати кілька книг за спеціальністю та попрацювати над розвитком софт скіллів. Після цього можна розпочинати пошуки роботи, і дуже скоро пошук увінчається успіхом.