Вісім помилок, яких я припускався, коли був джуніором

На початку кар'єри розробника часто буває страшнувато: перед тобою постають незнайомі проблеми, багато чого потрібно навчитися і доводиться ухвалювати складні рішення. І в деяких випадках ми помиляємося в цих рішеннях. Це цілком природно, і гризти себе із цього приводу не варто. А ось що варто робити, то це запам'ятовувати свій досвід на майбутнє. Я — розробник-сеніор, який припустився свого часу безліч помилок. Нижче я розповім про вісім найсерйозніших із них, які зробив, коли був ще новачком у розробці, і поясню, як їх можна було уникнути.

Вісім помилок, яких я припускався, коли був джуніором

Взяв перше, що запропонували

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

А знайти роботу, тим часом, непросто. Людей, які претендують на вакансії джуніорів, дедалі більше. Доводиться складати ульотне резюме, Проходити через цілу серію співбесід, і нерідко весь цей процес сильно затягується. З огляду на все це не дивно, що будь-яка пропозиція про роботу викликає бажання вчепитися за неї обома руками.

І все ж таки це може виявитися поганою ідеєю. Моя перша робота була далека від ідеалу як у плані професійного зростання, так і в плані задоволення від процесу. Розробники керувалися девізом "і так зійде", і особливо напружуватися не було прийнято. Всі намагалися звалити вину один на одного, і мені часто доводилося зрізати кути, щоб укластися в дуже стислий термін. Але найгірше — я абсолютно нічого не вчився.

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

І це була велика помилка.

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

  • Пошукайте інформацію про компанію. Подивіться сайти з відгуками, загляньте на офіційний сайт, просто пошерстіть Інтернет і позбирайте відгуки. Так ви краще зрозумієте, чи відповідає компанія вашим потребам та цілям.
  • Розпитайте знайомих. Якщо хтось із вашого кола працював на цього роботодавця або знає когось із штату, поговоріть з ними особисто. З'ясуйте, що їм подобалося, що не подобалося і як вони загалом оцінюють досвід.

Не ставив потрібних питань на співбесідах

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

  • Запитайте про процес розробки (яким методологіям вони слідують? чи проводиться інспекція коду? які застосовуються стратегії розгалуження?)
  • Запитайте про тестування (які тести проводяться? чи є спеціальні люди, які займаються лише тестуванням?)
  • Запитайте про корпоративну культуру (наскільки все неформально? чи передбачена якась підтримка для джуніорів?)

Не визначився із траєкторією руху

Безперечно, шлях до становлення досвідченого розробника сильно петляє. Зараз є можливість вибирати з багатьох мов, фреймворків та інструментів. Моя помилка на початку кар'єри полягала в тому, що я намагався опанувати все. Як не смішно, це призвело тільки до того, що я ні в чому особливо не просунувся. Спершу схопився за Java, потім за JQuery, далі перейшов до C#, від нього - до C++... Замість того, щоб вибрати одну мову і кинути на неї всі сили, я скакав з п'ятої на десяту, просто за настроєм. Можу запевнити вас, це вкрай неефективна схема навчання.

Я б досяг кращих результатів і швидше б рухався кар'єрними сходами, якби відразу визначився з траєкторією, тобто певним набором технологій, і зосередився на них. Наприклад, якщо ви фронтендер, освойте JavaScript, CSS/HTML і якийсь фреймворк, на ваш вибір. Якщо займаєтеся бекендом, знову ж таки, візьміть одну мову і проштудируйте її як слід. Необов'язково мати і Python, і Java, і C#.

Так що сфокусуйтеся, визначтеся з напрямком та складіть план, який дозволить вам стати професіоналом на обраному шляху (ось дорожня картаяка може вам у цьому допомогти).

Витончувався в коді

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

Ні. Це серйозна помилка, яку я і сам припускався, і частіше, ніж хотілося б, бачу в роботі інших джуніорів. Їм дуже властиво винаходити велосипед чи шукати складні рішення у спробі блиснути знаннями.

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

Забув, що є життя поза кодом

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

Причина такої поведінки частково полягала у моєму прагненні зробити все максимально швидко. Адже насправді мені слід було б зрозуміти, що робота — довгостроковий процес і за рідкісними винятками сьогоднішні недоробки спокійно переносяться на завтра. Дуже важливо періодично перемикатися та згадувати, що життя не вичерпується роботою – є друзі, сім'я, хобі, розваги. Само собою, якщо вам подобається сидіти до світанку над кодом - заради бога! Але коли це вже не в радість, зупиніться і задумайтеся, чи не час зайнятися ще чимось. Адже ми не останній день працюємо!

Уникав казати: «Я не знаю»

Застрягти в процесі вирішення якоїсь проблеми чи виконання завдання — справа звичайна, з цим стикаються навіть найсеніористіші сеніори. Коли я був джуніором, я казав: «Я не знаю» рідше, ніж слід, і в цьому був неправий. Якщо хтось із керівництва запитував мене, а я не знав відповіді, я намагався напустити туману, замість просто визнати це.

Мені здавалося, якщо я скажу: «Не знаю», у людей складеться враження, ніби я взагалі не розуміюся на тому, що роблю. Насправді це зовсім не так, всеведучих не буває. Тому якщо вас запитують про щось, чого ви не знаєте, так і кажете. У такого підходу відразу кілька плюсів:

  • Це чесно - ви не вводите запитуючого в оману
  • Є шанс, що вам пояснять, і тоді ви дізнаєтесь щось нове
  • Це викликає повагу – не кожен здатний визнати, що йому щось невідомо

Поспішав просунутися

Ви, мабуть, чули приказку: «Перш ніж тікати, навчися ходити». Вона ніде така не актуальна, як у сфері веб-програмування. Коли вперше влаштовуєшся кудись джуніором, так і хочеться взяти бика за роги і відразу взятися за якийсь великий складний проект. Прослизають навіть думки про те, як би швидше заробити підвищення до наступного рівня!

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

Моя помилка полягала в тому, що я розгнівався на ці дрібні завдання і це відволікало мене від роботи. Запасіться терпінням, робіть усе, що попросять, на совість, і незабаром вам перепаде щось цікавіше.

Не включався до спільноти та не обзаводився зв'язками

Розробники мають чудову спільноту: вони завжди готові допомогти, дати зворотний зв'язок і навіть підбадьорити. Програмування - складна штука і часом дуже вимотує. Для мене період роботи джуніором пройшов би простіше, якби я від початку почав активно спілкуватися з колегами.

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

Виберіть співтовариства, які викликають у вас інтерес — серед варіантів можу назвати freeCodeCamp, CodeNewbies, 100DaysOfCode — і вливайтесь! Також можете відвідувати місцеві мітапи у себе в місті (пошукайте meetup.com).

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

На цьому все, дякую за увагу!

Джерело: habr.com

Додати коментар або відгук