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

Зрозуміло, що вивчаючи програмування всі починають з коду, мов, структур, алгоритмів і подібних технічних аспектів. Проте писати чистий, добре структурований код, що виконує бізнес задачі - недостатньо. Особисто я на співбесідах дивлюсь не лише на те, який крутий спеціаліст (мова про hard skills), а й те чи комфортно мені було б працювати разом. Під цим “комфортно працювати” я маю на увазі - soft skills. Набір навичок, про який піде мова далі досить універсальний і певно потрібен для будь-якої роботи та й зокрема просто життя. То які ж soft skills потрібні Software Engineer?

➡️ Problem Solving ( вміння вирішувати проблеми / задачі)

Це однозначно та навичка, яку я отримала навчаючись в Ecole 42 (UNIT Factory). Сенс в умінні визначити задачу, генерувати ідеї вирішення, обрати одну з них і реалізувати. Для мене особисто це ще й розуміння що будь-яку задачу можна вирішити - питання лише в ресурсах, які для цього потрібні (час, люди, кошти і не тільки).

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

І ще, мені здається, що це саме те питання де любов до математики може бути дуже корисною. Якщо в школі ви з захватом брались за складні рівняння / нерівності і готові були пробувати різні підходи до рішення - то це воно! (А потім ще коли й відповідь збігається з підказкою наприкінці підручника, то це ж неймовірно)

➡️  Вміння комунікувати

Сподіваюсь, що стереотип про програміста, який сидить сам в темній кімнаті вночі і працює (бажано ще в капюшоні 🤣) вже зникає. Якщо ви бачили моє відео, про робочий день - то мабуть знаєте, що протягом дня є багато колів (дзвінків) для уточнення, узгодження вимог / дизайнів і тд. Спілкуватись з колегами потрібно постійно. У зв’язку з цим, добре було б навчитись пояснювати як технічні моменти так і просто донести свою точку зору. Також варто розуміти, як не конфліктувати. Список можна продовжувати, але суть наче зрозуміла.

➡️  Командна робота

Пункт, що тісно пов’язаний з попереднім :) Яким крутим розробником ви б не були - треба вміти працювати в команді: розділяти задачі та обов’язки, довіряти одне одному, давати зворотній зв'язок по роботі колег. У мене досі бувають моменти - “та я все сама зроблю”. Бо так я точно відповідаю за якість роботи і контролюю кожен момент. Але такий підхід не працює у великих проектах. Та й взагалі все на собі не витащити - це прямий шлях до вигорання. Знаєте, це як будувати будинок самому, цеглина за цеглиною. Можна, але навіщо? Це займе купу часу і зусиль, до того ж є люди, які знаються на питанні краще за вас.

➡️ Time management

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

➡️ Креативність