Отже, Сергію, яким ментори бачать ідеального кандидата на програму?
1. Основи програмування
Перш за все, хочу звернути увагу на основи програмування. Окрім того, що заявник повинен знати хоча б одну мову програмування, потрібно бути знайомим із взагалі основами програмування. Мови програмування, як-то кажуть, have come and gone. Зникають існуючі і з’являються нові. Якщо ти програміст – зможеш вивчити і іншу мову. В нашій практиці доволі часто є випадки, коли стажери з нуля за 3 місяці “підіймають нову мову”. Тож до пункту про мови ми не маємо певних вимог.
А ось що може бути потрібним із бази: алгоритми та принципи їх побудови, методології програмування (ООП), багатопоточність, патерни проектування, базові конструкції та структури даних.
2. Мова програмування.
Про неї я вже говорив раніше. Тут пояснення зайві.
Але згадаю ще про фреймворки і бібліотеки. Досвід роботи із якимось фреймворком і знання бібліотек буде плюсом.
3. Linux
З цим у багатьох виникає питання, коли на співбесіді запитуємо про знання Linux. Навіщо???
Відповідаємо. Linux – невід’ємна частина розробки. Девелопер повинен вміти користуватися середовищем, в якому він пише програми, в якому працюють його колеги і 90% серверів.
Ми НЕ шукаємо знань системи на рівні системного адміністратора, досвіду траблшутінгу і вміння “зібрать ОС із сорців”. Але вільно почувати себе у консолі, оновити собі систему, встановити потрібне ПЗ, вміти керувати файлами, редагувати їх, налаштовувати права доступа, заходити віддалено на сервери через консоль. Це потрібно.
4. Мережі
Девелопери повинні розбиратися в тому, як взаємодіють та обмінюються даними наші пристрої та програми. Хоча б теоретично. Але досвід сотень співбесід показує зовсім протилежне. Заявники вважать себе програмістами, але як їх майбутня програма передає дані на сервер, на жаль, не мають уяви. Так, девелопери бувають різні, але в нашій компанії розробники працюють із технологіями, які потребують знання мереж. Тож питання по мережам – одне із обов’язкових на співбесіді.
Окремим підпунктом тут зазначу про безпеку. Якщо ви знайомі із алгоритмами шифрування, автентифікацією і розумієте, як безпечно передавати інформацію через мережу, ваші шанси потрапити на стажування зростають.
5. Бази даних
Що потрібно вміти? Створювати і налаштовувати БД, підключити програму до бази, відправляти запити на додавання, редагування та отримання інформації. Не пам’ятаю випадку, коли на програму ми взяли стажера, який не зробив в житті жодного SQL-запита.
Так, розумію, що на стажування приходять люди без досвіду, це цілком логічно. Але є курси (тут згадаю наш безкоштовний курс Linux&Networks), є PET-проєкти, є маса відео по темі. Можна подивитися і прийти на співбесіду, вже маючи певні знання.
6. GIT
Будь-який розробник працює із кодом, зберігає його, керує версіями коду, робить ревізію коду. Тож для роботи потрібно вміти працювати із системами контролю версій. В нашій компанії це GIT. Тож знання саме GIT буде плюсом, але якщо ви працювали із іншою системою і знаєте принципи, заповнити прогалини буде не важко.
Що треба? Завантажити код, зробити коміт, відновити версію, проаналізувати всі етапи проекту тощо. Git clone, git push, git pull, git commit, git merge, git fetch, git rebase.
7. Soft skills
Також ми беремо до уваги і софт-скіли. Хоч і вважається, що девелоперам софтскіли потрібні менше, ніж технічній підтримці, проджектам або бізнес-аналітикам, які набагато частіше спілкуються із клієнтами і замовниками, все одно. Працювати потрібно в команді, а це – в будь-якому випадку, комунікація.
8. Аналітичні скіли і жага до нових знань
Ми віддаємо перевагу кандидатам, які вміють думати, шукати оптимальні шляхи вирішення задач і прокачувати свій мозок. Саме тому при вступі заявники проходять тести на логіку і абстрактне мислення. Адже в програмі дуже багато залежить від вашої наполегливості та старанності. Важливо продемонструвати не лише знання, а саме прогрес, швидкість і якість професійного росту.
Отже підсумуємо, аби не витрачати і ваш час, і наш. Якщо у кандидата за плечима лише одні курси по веб-дизайну, знання лише CSS і HTML, шанси отримати запрошення на стажування дуже і дуже малі. Ми усвідомлюємо, що ідеальні кандидати зустрічаються рідко, і є випадки, коли таких кандидатів ми запрошуємо одразу на позицію в компанії. Але якщо говорити саме про стажування – то заповнити прогалини по одному або двом пунктам за 3 місяці реально, але не по більшій половині із них.
Тож поки є час – можна підтягнути знання, опанувати матеріал. Маємо кейси, коли заявник не потрапляв на стажування з першої спроби, закінчив курси Linux&Networks від нашого ж Навчального центру (ці курси безкоштовні і закривають більше половини із зазначеного вище), і з другої спроби успішно потрапляв у програму. Головне – бажання!