
Дізнайтесь більше про нові кар'єрні можливості в EchoUA. Цікаві проекти, ринкова оплата, гарний колектив. Надсилайте резюме та приєднуйтеся до нас.
Ринок праці в області IT знаходиться на підйомі, навіть незважаючи на кризу; особливо потрібні старші розробники або, як говорять в IT, senior-розробники. Постійна затребуваність на ринку, високі зарплати, по-справжньому складні і серйозні завдання, повага колег по індустрії – незмінні атрибути senior-ів. Що треба зробити, щоб стати senior-ом? Які навички треба мати? Як можна стати кращим у своїй роботі і гордитися нею? Про ці і багато інших питань ми поспілкувалися із старшими розробниками і виділили для вас 5 якостей і 20 найкорисніших порад, які допоможуть і вам стати старшим розробником.
Які якості відрізняють старшого розробника?
- Уміння бачити систему “згори” і мати широкий погляд на проект. Будь-який проект розробляється для того, щоб вирішувати якісь бізнес-цілі, і вірною ознакою старшого розробника буде те, що він може бачити в системі не лише модулі і класи, але і бізнес-процеси, і людей, що беруть участь в них, – користувачів системи. Це обов’язково при плануванні архітектури проекту.
- Висока міра відповідальності. Відповідальність проявляється не лише в якісному виконанні своїх завдань, але і в готовності брати на себе відповідальність за проект в цілому: побачити можливі проблеми і вузькі місця, по можливості оптимізувати роботу системи, а якщо такої можливості немає, то вчасно розказати проблеми керівництву і запропонувати можливі шляхи вирішення.
- Уміння донести свою думку. Частенько senior-розробник не лише пише код, але і виконує обов’язки тімліда. Окрім цього, на ньому нерідко лежить завдання контролю і навчання інших розробників, введення новачків на проекті в курс справи, проведення code review і тому подібне. Усе це вимагає певних комунікативних навичок і здатності донести свою точку зору. Мало знати правильне рішення, треба уміти обгрунтувати його і пояснити команді.
- Знання стека технологій. Стежити за розвитком свого стека технологій в IT-ландшафті, що постійно міняється, просто необхідно. Необхідно стежити за оновленнями, новим функціоналом і версіями, бути в курсі оптимальних рішень типових завдань, грамотно використати їх своєму коді і рекомендувати команді.
- Загальна ерудиція, креативність і “гуманітарність”. В першу чергу це стосується, звичайно, технічної ерудиції: знання мов, технологій, уміння розгортати проекти або настроювати робоче середовище. Проте старшому розробникові, та і взагалі будь-яким розробникам потрібно пам’ятати, що для машини немає таких понять, як зручність або краса, технології взагалі вимушені підлаштовуватися під людську обмеженість і недосконалість. Здатність побачити нетипові рішення, привнести свій досвід з реального світу, буде це хобі, захоплення або просто звичка дізнаватися нове, в реалізації рішення, що розробляється, дуже сильно допомагає в розробці.
Що треба робити, щоб дорости до senior-а?
- Писати код. Дуже багато коду: деякі речі приходять тільки з досвідом. Великим плюсом буде різноманітність, і чим більше різних проектів – тим краще. Корисною буде участь у великих проектах, безцінний досвід принесе робота з високонавантаженими системами. Тут треба відмітити, що в продуктових компаніях, де команда роками працює над одним проектом, не вимагається бути в курсі багатьох різних речей, треба знати проект і свій фронт завдань, але знати його дуже добре. У великих компаніях завжди є різнопланові завдання і можливість спробувати себе в тому, чим раніше не займався, тут згодиться знання різних мов і платформ. “Кожному, звичайно, своє, але різноманітність – це дуже великий плюс, тому що дозволяє дізнаватися щось нове, залишаючись в тій же команді,” – ділиться враженнями наш розробник.
- Працювати в сильній команді. Професійно рости можна тільки тоді, коли ти тягнешся за кимось, хто розумніший і досвідченіший, причому набагато краще, якщо це не Стів Джобс або Борн Страуструп, а хтось з твоїх колег. Включається мотивація не підводити тих, хто тебе цінує. Необхідно спілкуватися усередині команди. Якщо ти крутишся у своїх думках, то не зможеш отримувати нові ідеї і точки зору, швидко знаходити найефективніші рішення. Необхідно обговорювати завдання і проблеми, запитувати, вчитися.
- Накопичувати готові рішення. Чим більше у тебе готових рішень для різних проблем і завдань, тим більше ти цінний як фахівець, тим швидше ти працюєш.
- Завжди бачити виклик у вирішуваних завданнях. Професіонал – це не той, хто робить тільки цікаву роботу, а той, хто будь-яку роботу зможе зробити для себе цікавою.
- Викладати. Викладання відмінно допомагає укласти матеріал в голові, знайти пропуски у власних знаннях. Відповідаючи на питання учнів, ти доходиш до думок, які навряд чи прийшли б в твою голову просто так. Необхідність аргументувати свою позицію також дуже добре розвиває і комунікаційні навички, такі необхідні в ефективній командній роботі.
- Мати довідкові ресурси. Якщо мати джерело довідкових ресурсів, то потім не доведеться терміново шукати інформацію де потрапило. Неможливо знати і пам’ятати абсолютно все, але це і не потрібно, якщо ти знаєш, де знайти потрібну тобі інформацію. Накопивши ресурсів (книг, сайтів, форумів) з хорошими матеріалами по різних технологіях, ти зможеш в рази прискорити свою роботу.
- Бути в курсі подій у світі IT. Мови і технології постійно міняються, виходять нові версії, з’являються нові підходи. Хороший розробник повинен “варитися в цьому” і бути в курсі усіх останніх подій. Є різні способи зробити це – брати участь в конференціях, проходити сертифікації і майстер-класи, спілкуватися з людьми, читати тематичні форуми. Кожен з них має свої переваги і недоліки, але суть не міняється: про усі останні зміни необхідно знати.
- Експериментувати. Нові ідеї і підходи необхідно перевіряти на практиці – це єдиний спосіб зрозуміти, чого вони варті. Щоб щось побудувати, потрібно 10 разів щось зламати. Правда, краще це робити не на продакшені у замовника і не за день до релізу, але загалом буває дуже корисно задіяти свою креативність.
- Знати гарячі клавіші і робити максимум за допомогою клавіатури. Ну і в цілому – оптимізувати свої робочі процеси. Сюди ж відноситься і десятипальцевий метод друку. Ти просто почнеш все робити швидше, іноді в рази.
- Добре розбиратися з інструментами. IDE, відладчик і робота в команді будуть відмінною підмогою для підвищення ефективності!
- Вивчити англійську. Це корисно будь-якому розробникові, але для senior-а просто обов’язково, в т.ч. навички розмовної мови. Причин тому дуже багато: від того, що більша частина цікавих статей, вартих конференцій і книг виходить на англійській, до того, що листи і специфікації на твоєму проекті можуть бути тільки на цій мові, а замовники, з якими в Noveo регулярно зідзвонюються, можуть не знати ні слова по-українськи.
- Бути гнучким. Senior-розробник повинен пам’ятати, що все міняється, і бути готовий змінити власну думку. “Якщо ти був правий рік тому – це зовсім не означає, що ти правий і зараз”. Треба визнавати свої помилки. Часто люди цього не роблять із-за зарозумілості і страху втратити авторитет, це неправильно. Треба уміти не лише виправити наслідки своєї помилки, але і визнати, що ти був не правий.
- Відпочивати. Якщо увесь час займаєшся чимось одним – швидко перегораєш. І навпаки, якщо відволікаєшся, то після повернення працюєш ефективніше. Це стосується взагалі будь-якого програміста. Дуже корисно подорожувати: це не лише розширює кругозір, але і допомагає поглянути на звичні речі і питання під іншим кутом. Дуже круто займатися спортом. А взагалі корисні будь-які хобі.
- Не лише брати, але і віддавати. І не лише тому, що це саме по собі здорово, але і з цілком корисливою метою – перевірити, наскільки твій код хороший і корисний для інших людей. Це може бути аккаунт з opensource-кодом на GitHub або відповіді і рекомендації на тематичних сайтах ніби Stack Overflow.
Ну і наостанок – чого робити не варто:
- Зупинятися на досягнутому. Навіть якщо ти досягнув багато чого.
- “Абияк не можна писати ніколи!”
- Боятися помилитися. На жаль, за винятком очевидних випадків, вчаться тільки на власних помилках.
- Писати код вдома! Давайте мозку відпочити.
Київ, Харків, Одеса, Дніпро, Запоріжжя, Кривий Ріг, Вінниця, Херсон, Черкаси, Житомир, Хмельницький, Чернівці, Рівне, Івано-Франківськ, Кременчук, Тернопіль, Луцьк, Ужгород, Кам'янець-Подільський, Стрий - за статистикою саме з цих міст програмісти найбільше переїжджають працювати до Львова. А Ви розглядаєте relocate?